diff options
| -rw-r--r-- | lexers/LexNim.cxx | 32 | 
1 files changed, 21 insertions, 11 deletions
| diff --git a/lexers/LexNim.cxx b/lexers/LexNim.cxx index 52a8c7fd7..109b3547b 100644 --- a/lexers/LexNim.cxx +++ b/lexers/LexNim.cxx @@ -75,6 +75,26 @@ bool IsNewline(const int ch) {      return (ch == '\n' || ch == '\r');  } +bool IsFuncName(const char *str) { +    const char *identifiers[] = { +        "proc", +        "func", +        "macro", +        "method", +        "template", +        "iterator", +        "converter" +    }; + +    for (const char *id : identifiers) { +        if (strcmp(str, id) == 0) { +            return true; +        } +    } + +    return false; +} +  constexpr bool IsTripleLiteral(const int style) noexcept {      return style == SCE_NIM_TRIPLE || style == SCE_NIM_TRIPLEDOUBLE;  } @@ -419,17 +439,7 @@ void SCI_METHOD LexerNim::Lex(Sci_PositionU startPos, Sci_Position length,                      sc.SetState(SCE_NIM_DEFAULT);                      if (style == SCE_NIM_WORD) { -                        if (0 == strcmp(s, "proc")  -                            || 0 == strcmp(s, "func")  -                            || 0 == strcmp(s, "macro")  -                            || 0 == strcmp(s, "method")  -                            || 0 == strcmp(s, "template")  -                            || 0 == strcmp(s, "iterator")  -                            || 0 == strcmp(s, "converter")) { -                            funcNameExists = true; -                        } else { -                            funcNameExists = false; -                        } +                        funcNameExists = IsFuncName(s);                      } else {                          funcNameExists = false;                      } | 
