You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've noticed a peculiarity in regards to how the Ruby lexer styles colons. A literal that starts with a colon is of course a symbol, but colons are used in other contexts as well, most notably for hash literals, like this snippet from the Ruby docs:
options={font_size: 10,font_family: "Arial"}
If you put this in Geany, it will style the colons as symbol literals and not as operators as it should.
This is more important for the Ruby-like static language Crystal, in which the Ruby lexer is almost totally sufficient--aside from the fact it only supports primary keywords and not secondary, class, or type keywords--where this notation is used for named tuples, as well as for type annotation for functions: def square(n: Int32): Int32
TL;DR: A colon at the start of a word should indicate a symbol literal, but a colon by itself or at the end of a word should be styled as an operator or punctuation.
The text was updated successfully, but these errors were encountered:
Hum, I don't know ruby but IIUC with your example it's the correct behavior, see Scintilla bugs #1006 and 1810, and this mailing list item.
If those aren't right, please report a bug to Scintilla with a link to official Ruby documentation supporting your request, as it would change a current behavior that was introduced on purpose (IIIUC your request).
I've noticed a peculiarity in regards to how the Ruby lexer styles colons. A literal that starts with a colon is of course a symbol, but colons are used in other contexts as well, most notably for hash literals, like this snippet from the Ruby docs:
If you put this in Geany, it will style the colons as symbol literals and not as operators as it should.
This is more important for the Ruby-like static language Crystal, in which the Ruby lexer is almost totally sufficient--aside from the fact it only supports primary keywords and not secondary, class, or type keywords--where this notation is used for named tuples, as well as for type annotation for functions:
def square(n: Int32): Int32
TL;DR: A colon at the start of a word should indicate a symbol literal, but a colon by itself or at the end of a word should be styled as an operator or punctuation.
The text was updated successfully, but these errors were encountered: