It looks like there is a 30,000-character limit in the user-defined keyword list groups. Is there any way to easily extend this? I have a keyword list of about 75,000 characters (including the spaces between each list entry). I imagine this goes beyond a configuration limit and requires some source code alteration...
Why don't you break it into smaller lists?
I there is a limit, it is hardcoded into Scintilla's code. For obvious reasons, there is no desire to distribute a modified Scintilla component, although there would be quite a few other, even better reasons for that.
I have also the same problem. I have 4 lists of around 20000 words (not just characters) which I would like to insert in my custom language in Notepad++. I think that even expanding the size to 65000 characters wouldn't be enough to fit the 4 lists. Maybe you guys know a solution.
I found it:
The controls used in the UDL panels to type word lists in are stock edittext Windows controls. They have a default 32767 size limit.
By sending them the EM_LIMITTEXT message, the limit can be made at least 64k; I have to check whether values >65535 are honored.
at least I learn from CChris that there is a way to double the capacity of the Keywords list to 65000 and that for my mega long lists I will have to wait for a modification of the Scintilla's code
Directly modify the wordlists in userDefineLang.xml. At least this will bypass the text edit hurdle.
But then, don't touch the language using the UDL panel, because the list would be loaded and truncated at that point. I hope that simply displaying the UDL panel won't hurt - didn't try that.
I tried that last week (sorry for not getting back here!). When I try to put ~75k characters in keyword list 3, npp crashes when I start it. Thinking about your earlier post that there may be a limit near 64k, I tried splitting the list into two sets and manually adding them to keyword lists 3 and 4, but that didn't work either. I can provide dump files if that will help anyone.
So it seems like there might be a limit to the total number of keywords in a language (in addition to the 30k textedit limit). That might make my alternative suggestion moot (add more keyword lists). I noticed some posts in the past couple days on adding spellchecker capability; maybe that's a work around for me. I could define a custom 'dictionary' with my keywords. Of course, that doesn't provide for highlighting in real time...
Can you send the dump files to donho? That will help him figuring it out, if he didn't .already.
Yeah, I have two other groups defined already, and I could split this group into about 3 logical sets, but the largest would still be 50,000 charaters, so I would need two groups (with identical formatting) for that one (making 4 groups total).
I just realized that my followup post from yesterday was in the wrong thread:
> An alternate (maybe ever preferable) solution would be to
> increase the number of keyword lists that can be defined.
> Then I could break my list into several subsets of 30,000
> characters or less and have control over the formatting for
> each subset. Thanks for any tips!
i also have this problem. my keywords mostly have Tibetan unicode characters however.
there are about 87,000 characters in unicode,
however once they are converted to the character references that store in the xml file, they add to more than 216,000 characters.
has anyone found some solution yet?
this is the limitation of Windows edit box (the little text box you type keywords in UDL).
You must split your keywords into groups less than 30.000 bytes.
That shouldn't be a problem in new UDL, as you have even more keyword types (currently 8, but even more in the future).
You may want to have a higher limit (below 64k), posibly configurable. Send EM_LIMITSIZE to the controls to enforce it.
Great info !!!
I already added it to RELEASE branch for UDL 2.1. All keyword edit boxes are now extended to hold 128k.
You can find beta version on UDL thread:
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.