mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-08-27 04:38:26 +02:00
Release 5.5.5 (https://www.scintilla.org/scintilla555.zip) Released 25 February 2025. Remember selection with undo and redo. Controlled with SCI_SETUNDOSELECTIONHISTORY. Feature #1273, Bug #1479, Bug #1224. Serialize selection type and ranges with SCI_GETSELECTIONSERIALIZED and SCI_SETSELECTIONSERIALIZED. For Win32, update Direct2D and DirectWrite interfaces used to 1.1 and add a lower-level approach to calling DirectWrite 1.1 by specifying SC_TECHNOLOGY_DIRECT_WRITE_1. Since Windows Vista does not support these API versions, Scintilla o longer supports DirectWrite on Windows Vista and will fall back to using GDI. Fix segmentation of long lexemes to avoid breaking before modifiers like accents that must be drawn with their base letters. For wrapping, try to break lines without separating letters from modifiers. For GTK on Windows, replace reverse arrow cursor with hand as reverse arrow was small in scaled modes. Bug #2460. Fix bug on Qt where double-click stopped working when Scintilla instance had been running for weeks. Release 5.4.3 (https://www.scintilla.org/lexilla543.zip) Released 25 February 2025. C++: Fix evaluation of != in preprocessor condition. Issue #299. Modula-3: Allow digits in uppercase identifiers. Issue #297. Pascal: Fix asm style extending past end. Issue #295. Python: Fix detection of attributes and decorators. Issue #294, Pull request #302. Ruby: Implement substyles for identifiers SCE_RB_IDENTIFIER. Ruby: Recognize name as SCE_RB_DEFNAME in def when `::` used as well as `.`. Issue #300. Close #16235
93 lines
2.6 KiB
Plaintext
93 lines
2.6 KiB
Plaintext
0 400 400 #!/usr/bin/env node
|
|
1 400 400
|
|
0 400 400 // A demonstration program
|
|
0 400 400 #include <stdio.h>
|
|
2 400 401 + #if 0 /* */
|
|
0 401 401 | #define DUMMY() \
|
|
0 401 401 | if (1);
|
|
0 401 400 | #endif
|
|
1 400 400
|
|
0 400 400 // Test preprocessor expressions with parentheses
|
|
2 400 401 + #if ((0))
|
|
0 401 401 | a
|
|
0 401 401 | #elif ((1))
|
|
0 401 401 | b
|
|
0 401 400 | #endif
|
|
1 400 400
|
|
2 400 401 + /** @file LexCPP.cxx
|
|
0 401 401 | <file>
|
|
0 401 401 | <file >filename</file>
|
|
0 401 401 | LexCPP.cxx.
|
|
0 401 401 | </file>
|
|
0 401 400 | **/
|
|
1 400 400
|
|
2 400 401 + /** Unknown doc keywords so in SCE_C_COMMENTDOCKEYWORDERROR:
|
|
0 401 401 | @wrong LexCPP.cxx
|
|
0 401 401 | <wrong>filename</wrong>
|
|
0 401 401 | Next line should not start a keyword but before 5.4.1 did and caused bad styling or a crash depending on range lexed
|
|
0 401 401 | <
|
|
0 401 400 | **/
|
|
1 400 400
|
|
0 400 400 #define M\
|
|
1 400 400
|
|
0 400 400 \
|
|
1 400 400
|
|
1 400 400
|
|
0 400 400 // Test preprocessor active branches feature
|
|
1 400 400
|
|
2 400 401 + #if HAVE_COLOUR
|
|
0 401 401 | // Active
|
|
0 401 400 | #endif
|
|
2 400 401 + #if NOT_HAVE_COLOUR
|
|
0 401 401 | // Inactive
|
|
0 401 400 | #endif
|
|
1 400 400
|
|
2 400 401 + #if FEATURE==2
|
|
0 401 401 | // Active
|
|
0 401 400 | #endif
|
|
2 400 401 + #if FEATURE==3
|
|
0 401 401 | // Inactive
|
|
0 401 400 | #endif
|
|
1 400 400
|
|
2 400 401 + #if VERSION(1,2)==3
|
|
0 401 401 | // Active
|
|
0 401 400 | #endif
|
|
2 400 401 + #if VERSION(1,2)==4
|
|
0 401 401 | // Inactive
|
|
0 401 400 | #endif
|
|
1 400 400
|
|
0 400 400 #undef HAVE_COLOUR
|
|
2 400 401 + #if HAVE_COLOUR
|
|
0 401 401 | // Inactive
|
|
0 401 400 | #endif
|
|
1 400 400
|
|
0 400 400 #define MULTIPLY(a,b) a*b
|
|
2 400 401 + #if MULTIPLY(2,3)==6
|
|
0 401 401 | // Active
|
|
0 401 400 | #endif
|
|
1 400 400
|
|
0 400 400 #define ONE 1
|
|
2 400 401 + #if ONE != 1
|
|
0 401 401 | // Inactive
|
|
0 401 400 | #endif
|
|
1 400 400
|
|
2 400 401 + int main() {
|
|
0 401 401 | double x[] = {3.14159,6.02e23,1.6e-19,1.0+1};
|
|
0 401 401 | int y[] = {75,0113,0x4b};
|
|
0 401 401 | printf("hello world %d %g\n", y[0], x[0]);
|
|
1 401 401 |
|
|
0 401 401 | // JavaScript regular expression (14) tests
|
|
0 401 401 | let a = /a/;
|
|
0 401 401 | let b = /[a-z]+/gi;
|
|
0 401 401 | /a|b/i.test("baby");
|
|
0 401 401 | // arrow function
|
|
0 401 401 | () => /a|b/i.test("baby");
|
|
1 401 401 |
|
|
0 401 401 | // Escape sequence (27) tests
|
|
0 401 401 | printf("\'\"\?\\\a\b\f\n\r\t\v \P");
|
|
0 401 401 | printf("\0a \013a \019");
|
|
0 401 401 | printf("\x013ac \xdz");
|
|
0 401 401 | printf("\ua34df \uz");
|
|
0 401 401 | printf("\Ua34df7833 \Uz");
|
|
0 401 400 | }
|
|
1 400 400 |