aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexers
diff options
context:
space:
mode:
authorJad Altahan <xviyy@aol.com>2019-01-30 11:35:01 +1100
committerJad Altahan <xviyy@aol.com>2019-01-30 11:35:01 +1100
commit08db4d86352f05d8aafcefde3f5e196951c35616 (patch)
tree7671fe9868f3ed55b2b629eec70e7584b6c93fa8 /lexers
parentb54e26a3dc5cdfbd6d49a1dd0b0c29dbab386044 (diff)
downloadscintilla-mirror-08db4d86352f05d8aafcefde3f5e196951c35616.tar.gz
Backport: Feature [feature-requests:#1261]. Enhance the styling of backticks in Nim
Backport of changeset 7244:a5c65813871a.
Diffstat (limited to 'lexers')
-rw-r--r--lexers/LexNim.cxx23
1 files changed, 19 insertions, 4 deletions
diff --git a/lexers/LexNim.cxx b/lexers/LexNim.cxx
index c85efd293..8506593f6 100644
--- a/lexers/LexNim.cxx
+++ b/lexers/LexNim.cxx
@@ -454,6 +454,18 @@ void SCI_METHOD LexerNim::Lex(Sci_PositionU startPos, Sci_Position length,
sc.ForwardSetState(SCE_NIM_DEFAULT);
}
break;
+ case SCE_NIM_FUNCNAME:
+ if (sc.ch == '`') {
+ funcNameExists = false;
+ sc.ForwardSetState(SCE_NIM_DEFAULT);
+ } else if (sc.atLineEnd) {
+ // Prevent leaking the style to the next line if not closed
+ funcNameExists = false;
+
+ sc.ChangeState(SCE_NIM_STRINGEOL);
+ sc.ForwardSetState(SCE_NIM_DEFAULT);
+ }
+ break;
case SCE_NIM_COMMENT:
if (sc.Match(']', '#')) {
if (commentNestLevel > 0) {
@@ -527,7 +539,10 @@ void SCI_METHOD LexerNim::Lex(Sci_PositionU startPos, Sci_Position length,
}
break;
case SCE_NIM_BACKTICKS:
- if (sc.ch == '`' || sc.atLineEnd) {
+ if (sc.ch == '`' ) {
+ sc.ForwardSetState(SCE_NIM_DEFAULT);
+ } else if (sc.atLineEnd) {
+ sc.ChangeState(SCE_NIM_STRINGEOL);
sc.ForwardSetState(SCE_NIM_DEFAULT);
}
break;
@@ -631,10 +646,10 @@ void SCI_METHOD LexerNim::Lex(Sci_PositionU startPos, Sci_Position length,
}
// Operator definition
else if (sc.ch == '`') {
- sc.SetState(SCE_NIM_BACKTICKS);
-
if (funcNameExists) {
- funcNameExists = false;
+ sc.SetState(SCE_NIM_FUNCNAME);
+ } else {
+ sc.SetState(SCE_NIM_BACKTICKS);
}
}
// Keyword