diff options
| author | Jad Altahan <xviyy@aol.com> | 2019-03-09 08:15:45 +1100 |
|---|---|---|
| committer | Jad Altahan <xviyy@aol.com> | 2019-03-09 08:15:45 +1100 |
| commit | 729c6eb81d8433c75d310ea321371bd9b709ff19 (patch) | |
| tree | 7c7a7ebed3901c93cb0b22f0f94331e007127778 /lexers/LexNim.cxx | |
| parent | 81b76f7f8952f1fc9c0c14a4c26842e141466625 (diff) | |
| download | scintilla-mirror-729c6eb81d8433c75d310ea321371bd9b709ff19.tar.gz | |
Backport: Feature [feature-requests:#1268]. Improve the styling of numbers in Nim
Improvements for SCE_NIM_NUMBER.
Backport of changeset 7310:3710c193b696.
Diffstat (limited to 'lexers/LexNim.cxx')
| -rw-r--r-- | lexers/LexNim.cxx | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/lexers/LexNim.cxx b/lexers/LexNim.cxx index 78b6cf9e8..face10271 100644 --- a/lexers/LexNim.cxx +++ b/lexers/LexNim.cxx @@ -369,8 +369,8 @@ void SCI_METHOD LexerNim::Lex(Sci_PositionU startPos, Sci_Position length, sc.Forward(2); } } else if (sc.ch == '.') { - if (sc.chNext == '.') { - // Pass + if (IsADigit(sc.chNext)) { + sc.Forward(); } else if (numType <= NumType::Exponent) { sc.SetState(SCE_NIM_OPERATOR); break; @@ -391,7 +391,10 @@ void SCI_METHOD LexerNim::Lex(Sci_PositionU startPos, Sci_Position length, } } } else if (sc.ch == '_') { - break; + // Accept only one underscore between digits + if (IsADigit(sc.chNext)) { + sc.Forward(); + } } else if (numType == NumType::Decimal) { if (sc.chPrev != '\'' && (sc.ch == 'e' || sc.ch == 'E')) { numType = NumType::Exponent; @@ -592,7 +595,7 @@ void SCI_METHOD LexerNim::Lex(Sci_PositionU startPos, Sci_Position length, if (sc.state == SCE_NIM_DEFAULT) { // Number - if (IsADigit(sc.ch) || (IsADigit(sc.chNext) && sc.ch == '.')) { + if (IsADigit(sc.ch)) { sc.SetState(SCE_NIM_NUMBER); numType = NumType::Decimal; @@ -703,15 +706,6 @@ void SCI_METHOD LexerNim::Lex(Sci_PositionU startPos, Sci_Position length, // Operators else if (strchr("()[]{}:=;-\\/&%$!+<>|^?,.*~@", sc.ch)) { sc.SetState(SCE_NIM_OPERATOR); - - // Ignore decimal coloring in input like: range[0..5] - if (sc.Match('.', '.')) { - sc.Forward(); - - if (sc.chNext == '.') { - sc.Forward(); - } - } } } |
