diff options
-rw-r--r-- | doc/ScintillaHistory.html | 5 | ||||
-rw-r--r-- | include/SciLexer.h | 1 | ||||
-rw-r--r-- | include/Scintilla.iface | 4 | ||||
-rw-r--r-- | lexers/LexAsm.cxx | 13 | ||||
-rw-r--r-- | src/Catalogue.cxx | 1 |
5 files changed, 20 insertions, 4 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 372cccfa8..9ec40881f 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -443,6 +443,7 @@ </tr><tr> <td>Robert Gieseke</td> <td>Mike M</td> + <td>nkmathew</td> </tr> </table> <p> @@ -473,6 +474,10 @@ DirectWrite on Windows. </li> <li> + Additional assembler lexer variant As(SCLEX_AS) for Unix assembly code which uses '#' for comments and + ';' to separate statements. + </li> + <li> Fix crashes and other bugs in Fortran folder by removing folding of do-label constructs. </li> <li> diff --git a/include/SciLexer.h b/include/SciLexer.h index 1101bf226..cb4079b8c 100644 --- a/include/SciLexer.h +++ b/include/SciLexer.h @@ -125,6 +125,7 @@ #define SCLEX_KVIRC 110 #define SCLEX_RUST 111 #define SCLEX_DMAP 112 +#define SCLEX_AS 113 #define SCLEX_AUTOMATIC 1000 #define SCE_P_DEFAULT 0 #define SCE_P_COMMENTLINE 1 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index 8eac156fb..7040b63a9 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -2658,6 +2658,7 @@ val SCLEX_STTXT=109 val SCLEX_KVIRC=110 val SCLEX_RUST=111 val SCLEX_DMAP=112 +val SCLEX_AS=113 # When a lexer specifies its language as SCLEX_AUTOMATIC it receives a # value assigned in sequence from SCLEX_AUTOMATIC+1. @@ -3247,8 +3248,9 @@ val SCE_SCRIPTOL_IDENTIFIER=12 val SCE_SCRIPTOL_TRIPLE=13 val SCE_SCRIPTOL_CLASSNAME=14 val SCE_SCRIPTOL_PREPROCESSOR=15 -# Lexical states for SCLEX_ASM +# Lexical states for SCLEX_ASM, SCLEX_AS lex Asm=SCLEX_ASM SCE_ASM_ +lex As=SCLEX_AS SCE_ASM_ val SCE_ASM_DEFAULT=0 val SCE_ASM_COMMENT=1 val SCE_ASM_NUMBER=2 diff --git a/lexers/LexAsm.cxx b/lexers/LexAsm.cxx index b327ce5f2..37a4efe35 100644 --- a/lexers/LexAsm.cxx +++ b/lexers/LexAsm.cxx @@ -150,8 +150,10 @@ class LexerAsm : public ILexer { WordList directives4foldend; OptionsAsm options; OptionSetAsm osAsm; + int commentChar; public: - LexerAsm() { + LexerAsm(int commentChar_) { + commentChar = commentChar_; } virtual ~LexerAsm() { } @@ -183,7 +185,11 @@ public: } static ILexer *LexerFactoryAsm() { - return new LexerAsm(); + return new LexerAsm(';'); + } + + static ILexer *LexerFactoryAs() { + return new LexerAsm('#'); } }; @@ -342,7 +348,7 @@ void SCI_METHOD LexerAsm::Lex(unsigned int startPos, int length, int initStyle, // Determine if a new state should be entered. if (sc.state == SCE_ASM_DEFAULT) { - if (sc.ch == ';'){ + if (sc.ch == commentChar){ sc.SetState(SCE_ASM_COMMENT); } else if (IsASCII(sc.ch) && (isdigit(sc.ch) || (sc.ch == '.' && IsASCII(sc.chNext) && isdigit(sc.chNext)))) { sc.SetState(SCE_ASM_NUMBER); @@ -457,4 +463,5 @@ void SCI_METHOD LexerAsm::Fold(unsigned int startPos, int length, int initStyle, } LexerModule lmAsm(SCLEX_ASM, LexerAsm::LexerFactoryAsm, "asm", asmWordListDesc); +LexerModule lmAs(SCLEX_AS, LexerAsm::LexerFactoryAs, "as", asmWordListDesc); diff --git a/src/Catalogue.cxx b/src/Catalogue.cxx index b7f816d76..41d5d5489 100644 --- a/src/Catalogue.cxx +++ b/src/Catalogue.cxx @@ -80,6 +80,7 @@ int Scintilla_LinkLexers() { LINK_LEXER(lmAbaqus); LINK_LEXER(lmAda); LINK_LEXER(lmAPDL); + LINK_LEXER(lmAs); LINK_LEXER(lmAsm); LINK_LEXER(lmAsn1); LINK_LEXER(lmASY); |