Are you seriously bragging to this list about how you engage in coder dick-size comparisons? I'm guessing you think you won the one you're sharing, or you wouldn't be sharing it. But then, we already knew social skills weren't your strong suit. Guess it's a nice break from the usual Russian propaganda and Holocaust denial, at least. On Mon, Sep 19, 2016 at 5:06 AM, Zenaan Harkness <zen@freedbms.net> wrote:
There are times when subtlety is useful, but at other times, you just have to be blunt.
Below is a reminder to some kind folks of this simple fact.
For the full conversation, see here:
"fails to open Microsoft UTF-16LE file (MSO Word CUSTOM.DIC dictionary file) #1238" https://github.com/geany/geany/issues/1238
----- Forwarded message from Zenaan Harkness <zen@freedbms.net> ----- Date: Mon, 19 Sep 2016 22:00:23 +1000 From: Zenaan Harkness <zen@freedbms.net> To: geany/geany <reply+0001f84495f53a7fe80377703ee092 211dad5da016c7dbfe92cf0000000113f78b7692a169ce0a976e18@reply.github.com> Subject: Re: [geany/geany] fails to open Microsoft UTF-16LE file (MSO Word CUSTOM.DIC dictionary file) (#1238)
On Mon, Sep 19, 2016 at 04:18:14AM -0700, elextr wrote:
Should be easy, and should also be how the program is implemented.
and how do you keep all this updated and in sync with changes to the buffer as its edited?
The layered model - the bottom layer is the text/ raw utf8 stream.
The next layers are the indexing layers for various purposes as and when needed.
An index is not just an array of "locations" of course since when the underlying text stream is inserted into or deleted from (in terms of bytes, not graphemes), then of course the corresponding index in the upper layer also needs to be updated.
Now because when an index point gets updated it is that all subsequent index points also need to be updated, a tree structure for the indexes is required.
And because the underlying layer can change, even it needs to be represented by a tree structure (various blocks of text are the leaves of the tree).
This is basic Comp Sci - thus the "easy" bit. The text editor data structure is really the simplest useful program, and the data structures needed to handle "large" (anything other than trivial sized) text files, are well understood, well studied, and highly optimized.
At least, that's how a superior programmer would implement it ;)
Most of the features you describe are handled by the Scintilla editing component which is a separate project at www.scintilla.org and I am sure they would be delighted to hear how a "superior" programmer would re-implement their library. :)
Ah ok. An external dependency.
Well :)
Guess who needs to advise them their data structures are inferior then hey? :D
Enjoy the ride, and to ease your communications with your upstream dependency, I suggest being exceptionally blunt with your "inferior structures" communications, and to top it off, don't stop at the code but go on to point large accusatory fingers at the personal life choices of the programmers involved.
That should speed up the re-implementation.
----- End forwarded message -----