litdev1 / SB-IDE

SB-Prime
https://litdev.uk
GNU General Public License v3.0
18 stars 1 forks source link

Comment highlighting #8

Closed triksterr closed 1 year ago

triksterr commented 4 years ago

In the editor window I have find one mistake: if I turn a line of code into a comment manually and then use Context menu (right mouse) -> "Un-Comment line", I see green and italic code line without leading "\'". The reverse sequence is the same.

triksterr commented 4 years ago

By the way (about shortcuts), in the new SB the keyboard shortcut "Ctrl +?" - comments / uncomments a line of code.

litdev1 commented 4 years ago

Thanks - will look at these

litdev1 commented 4 years ago

I cannot reproduce or do not follow exactly how to reproduce this issue.

I did add "Ctrl +?" hotkey.

triksterr commented 4 years ago

I cannot reproduce or do not follow exactly how to reproduce this issue.

I just checked version 1.1.7 - there I can not reproduce this error. Probably it was present only in version 1.1.6. I hope it is fixed.

I did add "Ctrl +?" hotkey.

It is OK! Thanks! :)

triksterr commented 4 years ago

I caught it!

I enter any string: "kljkljkj". Then I execute the context menu command "Comment lines". I see green italic font in the string. Then I delete the first comment symbol in string manually. I see: green italic font in the string is not changes. IDE version 1.1.7

string

litdev1 commented 4 years ago

Yeh, the lexer only updates every so often then when the line changes or a character is added based on event that it receives. Looks like this happens when there is only one line and a quirk of the lexer (Scintilla) and not really worth the effort to try to treat as a special case.

triksterr commented 4 years ago

lll There are multi strings...

litdev1 commented 4 years ago

mmm - I can only seem to reproduce on a line without CR (return new-line), which is always the last line and maybe considered a line that hasn't been finished yet?

triksterr commented 4 years ago

Probably the problem is that the lexer "does not know" how to fully work with Russian (and probably all another languages) letters. The code in original MS SB IDE can be written in any language.

Now I am completing the educational extension library in Russian - for Russian children. This extension library works in MS SB IDE. I have not tested it in SB-Prime yet.

triksterr commented 4 years ago

I think You need to add this secuence into all Regex rules: "а-яА-ЯёЁ". And maybe to do something else... :)

litdev1 commented 4 years ago

This is tricky again since I can't reproduce anything that is a significant issue - as soon as any line is ended (e.g. return) it updates comments correctly for me.

Russian letters have nothing to do with what comes after a ' for a comment.

All keywords etc have no russian characters, only possibilities are (after comments, inside quotes or variable names) - none of which are affected by the regex syntaxing.

So I am missing something and therefore have no place to start 'fixing'.

Since you have got the code, can see the issue and think you have a solution, have a go.