This project is read-only.

UpdateUI Event bugged for back-tab?

Oct 24, 2013 at 10:15 PM
Edited Oct 24, 2013 at 10:16 PM

I have currently a problem with the UpdateUI Event. I use this Event to implement custom Brace Highlighting and everything works fine, except for one specific case. I use this Event:
scintilla1.NativeInterface.UpdateUI += (s, e) =>
    // Display if the Event was triggered
    textBox1.Text = counter.ToString();
Now, I start the program and add one char. Then I press two times tab. Until now everything fine. But when I now press shift-tab to tab one indentation back, the UpdateUI Event does not get fired, although the selection changed (the caret moved back one indentation).

How can this bug be fixed?

Feb 20, 2014 at 4:49 PM
Wow, that's a really obscure bug, but you're absolutely right. I can confirm the problem. The issue is with the native SciLexer.dll library. With the ScintillaNET 2.6 release we ship version 3.2.3 of SciLexer.dll. Looking through the Scintilla release history at it looks like this problem got fixed in version 3.3.8. To verify that, I downloaded the most current version of the SciLexer.dll from the Scintilla website (version 3.3.9) and tested it and was able to confirm that this issue has been fixed in that version and I now get the UpdateUI event on Shift+Tab.

I'm pretty sure that we'll be upgrading the SciLexer.dll we ship with ScintillaNET to the latest and greatest version soon but until then you'll have to do as I did and swap out your SciLexer.dll with a newer one. You can get an x86 (32-bit) build of SciLexer.dll in the SciTE Windows package from the Scintilla website. If you need a 64-bit (x64) build of SciLexer.dll you might have to do it yourself.