Eventhough this is my own IDE, I have a dislike list about it :
[>_<] When loading a file for the 1st time, I need to create all lines at once, and flatten each line, which takes a lot of time for thousands lines files (could be a minute). There is a dilemma about this process. If I flatten it at file loading, it takes too much time. If I flatten it later at their first appearance on the screen, there is chug upon page scrolling, if most of them aren’t flattened yet. If I don’t flatten them at all, it’s a slideshow, not interactive anymore.
[>_<] To avoid text regeneration for files were previously opened, I created .bam cache. Those .bam’s are also exist at the same time in RAM as BamStream, so it consumes so much RAM, and several hundreds MB of disk space (10 MB for 200 KB file).
[>_<] Since text flattening takes so much time for thousands lines, it’s impossible to highlight multiple-lines string. Say I typed three quotes, then it means I have to highlight (means regenerate) the rest of the lines (could be thousands). Shoooooot, who has the patience for that ?
[>_<] If I select many lines and copy, then paste them, I have to wait again. eeewwwww…
So, it’s a very very pathetic situation, and limiting my IDE to do things I need, it only makes me mad.
Then I realized that I’m just circling around the REAL problem, which is slow flatten process, which does so much things.
But, wait…,
there is still hope, and I hope it’s not too late for a new year present.
[b]Here I present v0.1, and NOT without any good reason, since…
[size=150]ALL
THINGS
IN
THAT
LIST
ABOVE[/size]
[/b]
[size=200][color=blue]HAVE
GONE !![/size]
Why didn’t I do it this way since the first place ?
I can’t believe I’d been a morron for almost a year.
Here’s how it’s done now :
[^_^] Letters quads in a line are generated by directly creating 1 geom and a vertex data and fill it with their vertices. Even in Python, it’s faster than flattening (in C++) colorScaled letters quads.
For 5000+ text lines) :
(hilighter_ON) : 15% faster
(hilighter_OFF) : 17% faster
And once I generate the text in C++, it can go 4.5x (avg.) faster than that. YYhhhhaaaahahahaha…
[b][^^][/b] only onscreen text lines are generated
[b][^^][/b] if a text line is already displayed, it won’t be regenerated again upon editing other line or page scrolling, unless it must be differently highlighted
[X] Now, loading any file takes only a couple seconds.
[X] It’s now RAM and disk friendly, since the text regeneration is not so expensive, so I don’t need .bam cache.
You can freely remove your hundreds-MBytes “docsTextCache” directory.
OTHER UPDATES :
[X] fixed indentation notch closeup viewport’s sort order
[X] fixed unindent : if the selected lines are already flushed left, it won’t be recorded in edit history, so if undone, it’ll be restored correctly
[X] fixed a bug in exception handler
[X] the user alerter code is called only if the erroneous file is successfully loaded
[X] smarter break line undo
[X] Replace remembers what the current file was, since other file might be set as current one when it causes a runtime error.
[X] added wildcards in Find
[X] added context menu in the workspace
[X] improved submenu placement
[X] since I don’t need to save each text line anymore, I can switch the hilighter on and off anytime I want.
[X] changed some highlighter colors
REFACTORED syntax highlighter :
[1] now ignores single quotes inside triple quotes, and escaped quotes inside quotes (both single and triple)
[2] numeric characters are highlighted, integer and float use different color
[3] docstring (triple quoted) uses different color than ordinary string (single quoted)