aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexers/LexCPP.cxx
AgeCommit message (Collapse)AuthorFilesLines
2021-01-29Remove Lexilla files from ScintillaNeil1-1785/+0
2020-05-01Make lambdas noexcept.Zufu Liu1-1/+1
2020-04-13Hide implementation of EscapeSequence and use const. Add tests for escapeNeil1-13/+12
sequences.
2020-04-13Replace islower function and add tests for JavaScript regular expressions.Neil1-3/+2
2020-04-13Use constexpr and noexcept, reduce headers and use C++ versions, harmonize typesNeil1-12/+10
a bit.
2019-12-22Define ILexer5 with methods for retrieving name, ID, and property values.Neil1-4/+17
Implement ILexer5 on object lexers. Implement ILexer5 on LexerSimple wrapper for function lexers.
2019-03-23Simplified preprocessor conditional styling code, renamed 'active' to 'inactive'Neil1-33/+63
as that is more correct, added comments and helper methods, removed lines that had no effect. Behaviour unaltered.
2019-03-23Fix warnings from MSVC Code Analysis.Neil1-35/+44
2019-01-15Treat "#if(" as preprocessor directive "#if" followed by operator "(".Neil1-1/+1
2018-12-12Bug [#2069]. LexerCPP: modernize int to std::string conversionJannick1-3/+1
* LexCPP.cxx (LexerCPP::EvaluateTokens): Use std::to_string to convert int to std::string.
2018-12-12Bug [#2069]. LexCPP: fix bug in arithmetic calculation by adding precedence ↵Jannick1-5/+9
levels The precedence for the implemented arithmetic operators +,-,%,*,/ is added, such that the calculations produce the correct results honoring the standard precedence levels. * Replace characterset setArithmeticOp by setAddOp and setMultOp. * Replace precedence precArithmetic by precMult and precAdd * (EvaluateTokens): Apply new precedences. This fixes the bug in the arithmetic calculation: // lines with 'false' should not be highlighted, // those with 'true' should be. #if 1 + 2 * 3 == 9 false #endif #if (1 + 2) * 3 == 9 true #endif #if 1 + 2 * 3 == 7 true #endif #if 1 == 5 % 2 true #endif #if 6 - 7 == -1 true #endif #if 25 / 5 * 5 == 25 true #endif #if 1 + 2 * 3 % 2 == 1 true #endif #if 1 + 2 * 3 % 2 == 2 + 1 false #endif
2018-12-04Bug [#2062]. Interpret continued preprocessor lines correctly by reading all ofNeil1-10/+20
the logical line.
2018-09-24Bug [#2045]. LexCPP: Fix 'elif' token lengthhuki1-1/+1
2018-09-18Guard against shifting by negative amount as that is undefined behaviour.Neil Hodgson1-1/+5
2018-06-04Use const and noexcept, initialize, avoid casts and improve variable name.Neil1-29/+29
2018-06-04Use lambda in preference to function object.Neil1-10/+2
2018-04-14Undo some changes that snuck in the last change set.Neil1-7/+7
2018-04-14Make some changes recommended by clang-tidy.Neil Hodgson1-9/+10
2018-03-16Remove line-end white space.Neil1-2/+2
2017-09-11The Scintilla namespace is always active for internal symbols and for the lexerNeil1-2/+0
interfaces ILexer4 and IDocument.
2017-08-28Bug [#1966]. "defined A" removes "A" before replacing "defined" with value.Jannick1-0/+1
2017-08-28Bug [#1966]. #define A is treated as #define A 1.Jannick1-0/+2
2017-08-28Bug [#1966]. Default value of 0 for undefined preprocessor symbols.Jannick1-2/+2
2017-07-17Fix signed / unsigned comparison warnings.Neil1-4/+4
2017-07-17Mark overriding methods as "override".Neil Hodgson1-4/+4
2017-07-17Implement style metadata for some languages.Neil1-6/+81
Add some helper methods to SubStyles for finding style metadata of substyles.
2017-06-22Add style metadata methods with null implementations.Neil1-0/+12
2017-06-22Merge Ilexer and ILexerWithSubStyles into ILexer4 to avoid need for versionNeil1-4/+4
checking in 4.0. Use lvRelease4 ID.
2017-04-09Further use of range-for.Neil1-9/+9
2017-04-07Prefer C++ static cast over C-style casts.Neil1-3/+3
2017-04-06Added const to some lexers.Neil1-21/+21
2017-03-04Use C++11 keyword "override" for methods in lexers that override an interface.Neil1-21/+21
2016-11-05StyleContext no longer needs mask argument.Neil1-1/+1
Remove warning suppression pragma no longer needed for Perl's StyleContext.
2016-08-30Feature [feature-requests:#210]. Allow folding on #else and #elif.Neil1-2/+13
2016-08-20Use const reference parameter when it can prevent extra copies.Neil1-1/+1
2016-04-23Fix a bug with multi-line strings with line continuation where the string styleActiveState1-0/+3
overflowed after an edit.
2016-03-03CPP: Add support for folding on `(` and `)`Colomban Wendling1-2/+2
Feature [feature-requests:#1138].
2015-11-20Remove line end whitespace.Neil1-3/+3
2015-07-30Use Sci_Position / Sci_PositionU for variables in lexers that representJoe Mueller1-28/+28
positions and line numbers and may be widened to 64-bits in a future release.
2015-07-20Use Sci_Position when required to implement interfaces.Neil1-8/+8
2015-05-12Bug [#1719]. Fix #undef directive.Neil1-3/+2
2015-04-22Fix highlighting empty backquote strings (``) in cpp lexerJiří Techet1-1/+0
The sc.Forward() is performed once more at the end of the function and performing it here causes the second ` is skipped in ``. Probably caused by copy-pasting the code above and not realizing this one reads just a single character.
2015-02-19Implement lexer.cpp.verbatim.strings.allow.escapes.Neil Hodgson1-1/+8
2014-11-28LexCPP: Also fold on square bracketsColomban Wendling1-2/+2
This allows to fold on array literals for languages like JavaScript that use square brackets to declare array literals. This should not change much for languages that only use square brackets for array indexation as the large majority of the time the open and close brackets are placed on the same line in these cases.
2014-06-19Bug [#1614]. Don't crash on incomplete macro definition "#define x(".Neil Hodgson1-1/+3
2014-05-31Safer handling of "#define X" which caused fault in debug build with Visual C++.Neil1-1/+1
2014-05-24Header include statements are now in a standardised order with that orderNeil1-1/+1
defined in scripts/HeaderOrder.txt.
2014-05-24Fix raw string recognition so that R"xxx(blah)xxx" is styled as SCE_C_STRINGRAW.Neil1-3/+11
2014-01-20Fix typos in comments (lexers)Stefan Weil1-2/+2
2014-05-14Limit iterations when expanding macros in case a macro is recursive such asNeil1-1/+4
#define MAC(x) MAC(x+1) Also fixes macros that are co-recursive with other macros.