There are a few issues we need to address regarding SciLexer before release. They are all just cosmetic issues with Ruby syntax highlighting in Ruby. The problem is with the actual library, and is not fixed. Unfortunately, this bug has been present for a while, and there is no future outlook on it being fixed, as can be seen here where one of the developers basically says he has no interest in fixing it.
Here is a little list of the syntax highlighting errors that occur:
- Keywords after the keyword "def" do not colorize, specifically "def self.method_name".
- The keywords "if", "unless", "until", and "while" do not colorize when used after the first word of a line.
- In Ruby range operators ".." and "...", the first dot inherits the color of a number, not an operator.
Now we all know that these issues are fixable, as RMXP and most other programs that use SciLexer have the issue fixed, but unfortunately I cannot fix this on the Python side. The problem is with the optimized way Scintilla searches for what it need to colorize, not any type of rule that can be defined via its Python wrapper, at least as far as I know. As you may have noticed, Gemini suffered from the same problem. I tried replacing the build of SciLexer with the each one of RMXP ,RMVX, and Notepad++ SciLexers, all to no avail. Although some bugs like the "def self.whatever" were fixed, it caused a slew of other coloring bugs, so I didn't use it.
Anyways, I'm just posting this up to make you all aware. Hopefully SOMEONE on the team who is good with C++ can check into what it would take to get this fixed. ;)
I know that with SOMEONE you are referring to me. :P
I can take a look at that actually. Are the rules defined as grammar with regex or do I have to mess around with the Scintilla source and recompile the DLL? I don't know what other coloring bugs there are with Notepad++'s Scintilla, but I found it much easier to work with than RMXP. If we're going to use that one as base, it might not be a bad idea if you can find these problems.
After you have that information, make me a task, put up all relevant information (including the list of problems from this post) and assign it to me. I will take care of it.
I have to look into wxPython's implementation actually. I think the scintilla library is part of the actual wx source, and not just a file distributed with it. I will need to research this a bit more before giving you anything definitive.