X12 Lexer not colourising properly when there are no function groups in the Envelope
Weird I didn't see notifications for this! Sorry for my delay. (That's me issue, not you, just explaining my lack of followup). Yes, you do raise good points. For my own purposes, I'd just need the ability to load / access text. Accessing text is already needed by lexers, so really only adding a SetText method would do for me. But I understand that brings in the need for a lot more, like enabling undo history etc. The altenative I thought of was to create a zero sized invisible window, configure...
Creating a Docpointer without a Scintilla window
I hadn't spotted the test files - that's a really nice feature. The folding was doing a fine job of keeping track of the indent as it went on - but a bad job of getting the previous lines indent when it was folding from a later point. That caused the problem you mentioned of disappearing folds - and it was from an earlier version as you suspected. The NULL->""s are fixed, as is the variable shadowing. To the test file, I've added an extra function group, and each function group gets a varying number...
Updated X12 lexer for better bad terminator handling
I found the code that makes it work for SciTE: LRESULT CALLBACK CreditsWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (uMsg == WM_GETDLGCODE) return DLGC_STATIC | DLGC_WANTARROWS | DLGC_WANTCHARS; This only allows characters and arrow keys in to the scintilla control in the first place. This may be fiddly for me to implement, but fiddly is fine. This feature request can be closed as "shoo!". Regards, Iain. From: Neil Hodgson [mailto:nyamatongwe@users.sourceforge.net] Sent: 13 May...
Well, that's not true - there could be cutting of text, selecting text then typing, or pasting in text. But there is a limited list. I am not exactly sure how this would appear in a notification from SCN_MODIFYATTEMPTRO though! For adding of text (usually just one character), it would be easy - nm->ch. For removal of text, you could have a position / length pair. Of course, that runs into trouble with multi-select + delete... So I can see why this has not been implemented! Maybe I am best leaving...
CWnd* pChild = new CWnd; if (!pChild->Create(L"Scintilla", L"", WS_CHILD | WS_TABSTOP | WS_VISIBLE | WS_BORDER, CRect(40, 10, 30, 30), pParentWnd, 100)) { delete pChild; return nullptr; } pChild->SendMessage(SCI_CLEARCMDKEY, SCK_TAB); I already had WS_TABSTOP set, and it's not tabbing out regardless of whether I have cleared SCK_TAB or not. But I shall dig into SciTE and see what "magic" I have missed. /Iain. From: Neil Hodgson [mailto:nyamatongwe@users.sourceforge.net] Sent: 13 May 2020 00:14 To:...