Преглед на файлове

Update to Scintilla 3.6.3.

Martijn Laan преди 1 година
родител
ревизия
21daa5cc76
променени са 5 файла, в които са добавени 80 реда и са изтрити 18 реда
  1. 71 14
      Components/ScintInt.pas
  2. BIN
      Files/isscint.dll
  3. 3 3
      Projects/Src/CompForm.pas
  4. 3 1
      Projects/Src/CompScintEdit.pas
  5. 3 0
      whatsnew.htm

+ 71 - 14
Components/ScintInt.pas

@@ -1,7 +1,7 @@
 unit ScintInt;
 
 {
-  Delphi translation of Scintilla.h from Scintilla 3.4.4
+  Delphi translation of Scintilla.h from Scintilla 3.6.3
   created by Jordan Russell and updated by Martijn Laan
 }
 
@@ -39,6 +39,7 @@ const
   SCWS_INVISIBLE = 0;
   SCWS_VISIBLEALWAYS = 1;
   SCWS_VISIBLEAFTERINDENT = 2;
+  SCWS_VISIBLEONLYININDENT = 3;
   SCI_GETVIEWWS = 2020;
   SCI_SETVIEWWS = 2021;
   SCI_POSITIONFROMPOINT = 2022;
@@ -60,8 +61,15 @@ const
   SCI_SETBUFFEREDDRAW = 2035;
   SCI_SETTABWIDTH = 2036;
   SCI_GETTABWIDTH = 2121;
+  SCI_CLEARTABSTOPS = 2675;
+  SCI_ADDTABSTOP = 2676;
+  SCI_GETNEXTTABSTOP = 2677;
   SC_CP_UTF8 = 65001;
   SCI_SETCODEPAGE = 2037;
+  SC_IME_WINDOWED = 0;
+  SC_IME_INLINE = 1;
+  SCI_GETIMEINTERACTION = 2678;
+  SCI_SETIMEINTERACTION = 2679;
   MARKER_MAX = 31;
   SC_MARK_CIRCLE = 0;
   SC_MARK_ROUNDRECT = 1;
@@ -155,6 +163,7 @@ const
   SC_CHARSET_MAC = 77;
   SC_CHARSET_OEM = 255;
   SC_CHARSET_RUSSIAN = 204;
+  SC_CHARSET_OEM866 = 866;
   SC_CHARSET_CYRILLIC = 1251;
   SC_CHARSET_SHIFTJIS = 128;
   SC_CHARSET_SYMBOL = 2;
@@ -178,6 +187,7 @@ const
   SC_CASE_MIXED = 0;
   SC_CASE_UPPER = 1;
   SC_CASE_LOWER = 2;
+  SC_CASE_CAMEL = 3;
   SCI_STYLEGETFORE = 2481;
   SCI_STYLEGETBACK = 2482;
   SCI_STYLEGETBOLD = 2483;
@@ -235,7 +245,12 @@ const
   INDIC_DOTBOX = 12;
   INDIC_SQUIGGLEPIXMAP = 13;
   INDIC_COMPOSITIONTHICK = 14;
-  INDIC_MAX = 31;
+  INDIC_COMPOSITIONTHIN = 15;
+  INDIC_FULLBOX = 16;
+  INDIC_TEXTFORE = 17;
+  INDIC_IME = 32;
+  INDIC_IME_MAX = 35;
+  INDIC_MAX = 35;
   INDIC_CONTAINER = 8;
   INDIC0_MASK = $20;
   INDIC1_MASK = $40;
@@ -247,6 +262,15 @@ const
   SCI_INDICGETFORE = 2083;
   SCI_INDICSETUNDER = 2510;
   SCI_INDICGETUNDER = 2511;
+  SCI_INDICSETHOVERSTYLE = 2680;
+  SCI_INDICGETHOVERSTYLE = 2681;
+  SCI_INDICSETHOVERFORE = 2682;
+  SCI_INDICGETHOVERFORE = 2683;
+  SC_INDICVALUEBIT = $1000000;
+  SC_INDICVALUEMASK = $FFFFFF;
+  SC_INDICFLAG_VALUEFORE = 1;
+  SCI_INDICSETFLAGS = 2684;
+  SCI_INDICGETFLAGS = 2685;
   SCI_SETWHITESPACEFORE = 2084;
   SCI_SETWHITESPACEBACK = 2085;
   SCI_SETWHITESPACESIZE = 2086;
@@ -334,6 +358,7 @@ const
   SCFIND_WORDSTART = $00100000;
   SCFIND_REGEXP = $00200000;
   SCFIND_POSIX = $00400000;
+  SCFIND_CXX11REGEX = $00800000;
   SCI_FINDTEXT = 2150;
   SCI_FORMATRANGE = 2151;
   SCI_GETFIRSTVISIBLELINE = 2152;
@@ -379,6 +404,10 @@ const
   SCI_GETTARGETSTART = 2191;
   SCI_SETTARGETEND = 2192;
   SCI_GETTARGETEND = 2193;
+  SCI_SETTARGETRANGE = 2686;
+  SCI_GETTARGETTEXT = 2687;
+  SCI_TARGETFROMSELECTION = 2287;
+  SCI_TARGETWHOLEDOCUMENT = 2690;
   SCI_REPLACETARGET = 2194;
   SCI_REPLACETARGETRE = 2195;
   SCI_SEARCHINTARGET = 2197;
@@ -443,6 +472,13 @@ const
   SCI_GETMOUSEDWELLTIME = 2265;
   SCI_WORDSTARTPOSITION = 2266;
   SCI_WORDENDPOSITION = 2267;
+  SCI_ISRANGEWORD = 2691;
+  SC_IDLESTYLING_NONE = 0;
+  SC_IDLESTYLING_TOVISIBLE = 1;
+  SC_IDLESTYLING_AFTERVISIBLE = 2;
+  SC_IDLESTYLING_ALL = 3;
+  SCI_SETIDLESTYLING = 2692;
+  SCI_GETIDLESTYLING = 2693;
   SC_WRAP_NONE = 0;
   SC_WRAP_WORD = 1;
   SC_WRAP_CHAR = 2;
@@ -486,6 +522,11 @@ const
   SCI_APPENDTEXT = 2282;
   SCI_GETTWOPHASEDRAW = 2283;
   SCI_SETTWOPHASEDRAW = 2284;
+  SC_PHASES_ONE = 0;
+  SC_PHASES_TWO = 1;
+  SC_PHASES_MULTIPLE = 2;
+  SCI_GETPHASESDRAW = 2673;
+  SCI_SETPHASESDRAW = 2674;
   SC_EFF_QUALITY_MASK = $F;
   SC_EFF_QUALITY_DEFAULT = 0;
   SC_EFF_QUALITY_NON_ANTIALIASED = 1;
@@ -499,7 +540,6 @@ const
   SCI_SETMULTIPASTE = 2614;
   SCI_GETMULTIPASTE = 2615;
   SCI_GETTAG = 2616;
-  SCI_TARGETFROMSELECTION = 2287;
   SCI_LINESJOIN = 2288;
   SCI_LINESSPLIT = 2289;
   SCI_SETFOLDMARGINCOLOUR = 2290;
@@ -600,6 +640,8 @@ const
   SC_STATUS_OK = 0;
   SC_STATUS_FAILURE = 1;
   SC_STATUS_BADALLOC = 2;
+  SC_STATUS_WARN_START = 1000;
+  SC_STATUS_WARN_REGEX = 1001;
   SCI_SETSTATUS = 2382;
   SCI_GETSTATUS = 2383;
   SCI_SETMOUSEDOWNCAPTURES = 2384;
@@ -735,8 +777,6 @@ const
   SCI_GETCHARACTERPOINTER = 2520;
   SCI_GETRANGEPOINTER = 2643;
   SCI_GETGAPPOSITION = 2644;
-  SCI_SETKEYSUNICODE = 2521;
-  SCI_GETKEYSUNICODE = 2522;
   SCI_INDICSETALPHA = 2523;
   SCI_INDICGETALPHA = 2524;
   SCI_INDICSETOUTLINEALPHA = 2558;
@@ -770,6 +810,7 @@ const
   ANNOTATION_HIDDEN = 0;
   ANNOTATION_STANDARD = 1;
   ANNOTATION_BOXED = 2;
+  ANNOTATION_INDENTED = 3;
   SCI_ANNOTATIONSETVISIBLE = 2548;
   SCI_ANNOTATIONGETVISIBLE = 2549;
   SCI_ANNOTATIONSETSTYLEOFFSET = 2550;
@@ -833,6 +874,8 @@ const
   SCI_GETADDITIONALCARETFORE = 2605;
   SCI_ROTATESELECTION = 2606;
   SCI_SWAPMAINANCHORCARET = 2607;
+  SCI_MULTIPLESELECTADDNEXT = 2688;
+  SCI_MULTIPLESELECTADDEACH = 2689;
   SCI_CHANGELEXERSTATE = 2617;
   SCI_CONTRACTEDFOLDNEXT = 2618;
   SCI_VERTICALCENTRECARET = 2619;
@@ -849,6 +892,8 @@ const
   SCI_SCROLLTOEND = 2629;
   SC_TECHNOLOGY_DEFAULT = 0;
   SC_TECHNOLOGY_DIRECTWRITE = 1;
+  SC_TECHNOLOGY_DIRECTWRITERETAIN = 2;
+  SC_TECHNOLOGY_DIRECTWRITEDC = 3;
   SCI_SETTECHNOLOGY = 2630;
   SCI_GETTECHNOLOGY = 2631;
   SCI_CREATELOADER = 2632;
@@ -921,7 +966,8 @@ const
   SC_MOD_CONTAINER = $40000;
   SC_MOD_LEXERSTATE = $80000;
   SC_MOD_INSERTCHECK = $100000;
-  SC_MODEVENTMASKALL = $1FFFFF;
+  SC_MOD_CHANGETABSTOPS = $200000;
+  SC_MODEVENTMASKALL = $3FFFFF;
   SC_UPDATE_CONTENT = $1;
   SC_UPDATE_SELECTION = $2;
   SC_UPDATE_V_SCROLL = $4;
@@ -955,6 +1001,11 @@ const
   SCMOD_ALT = 4;
   SCMOD_SUPER = 8;
   SCMOD_META = 16;
+  SC_AC_FILLUP = 1;
+  SC_AC_DOUBLECLICK = 2;
+  SC_AC_TAB = 3;
+  SC_AC_NEWLINE = 4;
+  SC_AC_COMMAND = 5;
   SCN_STYLENEEDED = 2000;
   SCN_CHARADDED = 2001;
   SCN_SAVEPOINTREACHED = 2002;
@@ -984,11 +1035,15 @@ const
   SCN_HOTSPOTRELEASECLICK = 2027;
   SCN_FOCUSIN = 2028;
   SCN_FOCUSOUT = 2029;
+  SCN_AUTOCCOMPLETED = 2030;
 
 type
+  TSci_Position = Integer;
+  TSci_PositionCR = Longint;
+  
   TSci_CharacterRange = record
-    cpMin: Longint;
-    cpMax: Longint;
+    cpMin: TSci_PositionCR;
+    cpMax: TSci_PositionCR;
   end;
 
   TSci_TextRange = record
@@ -999,22 +1054,23 @@ type
   PSCNotification = ^TSCNotification;
   TSCNotification = record
     nmhdr: TNMHdr;
-    position: Integer;          { SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK,
+    position: TSci_Position;    { SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK,
                                   SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK,
                                   SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK,
                                   SCN_INDICATORCLICK, SCN_INDICATORRELEASE,
                                   SCN_USERLISTSELECTION, SCN_AUTOCSELECTION }
-    ch: Integer;                { SCN_CHARADDED, SCN_KEY }
+    ch: Integer;                { SCN_CHARADDED, SCN_KEY, SCN_AUTOCCOMPLETED, SCN_AUTOCSELECTION,
+                                  SCN_USERLISTSELECTION }
     modifiers: Integer;         { SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK,
                                   SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE,}
     modificationType: Integer;  { SCN_MODIFIED }
     text: PAnsiChar;            { SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION, SCN_URIDROPPED }
-    length: Integer;            { SCN_MODIFIED }
-    linesAdded: Integer;        { SCN_MODIFIED }
+    length: TSci_Position;      { SCN_MODIFIED }
+    linesAdded: TSci_Position;  { SCN_MODIFIED }
     message: Integer;           { SCN_MACRORECORD }
     wParam: WPARAM;             { SCN_MACRORECORD }
     lParam: LPARAM;             { SCN_MACRORECORD }
-    line: Integer;              { SCN_MODIFIED }
+    line: TSci_Position;        { SCN_MODIFIED }
     foldLevelNow: Integer;      { SCN_MODIFIED }
     foldLevelPrev: Integer;     { SCN_MODIFIED }
     margin: Integer;            { SCN_MARGINCLICK }
@@ -1022,8 +1078,9 @@ type
     x: Integer;                 { SCN_DWELLSTART, SCN_DWELLEND }
     y: Integer;                 { SCN_DWELLSTART, SCN_DWELLEND }
     token: Integer;             { SCN_MODIFIED with SC_MOD_CONTAINER }
-    annotationLinesAdded: Integer;  { SCN_MODIFIED with SC_MOD_CHANGEANNOTATION }
+    annotationLinesAdded: TSci_Position; { SCN_MODIFIED with SC_MOD_CHANGEANNOTATION }
     updated: Integer;           { SCN_UPDATEUI }
+    listCompletionMethod: Integer; { SCN_AUTOCSELECTION, SCN_AUTOCCOMPLETED, SCN_USERLISTSELECTION }
   end;
 
 function Scintilla_DirectFunction(ptr: Pointer; iMessage: Cardinal;

BIN
Files/isscint.dll


+ 3 - 3
Projects/Src/CompForm.pas

@@ -3261,9 +3261,9 @@ procedure TCompileForm.UpdateOccurrenceIndicators(const AMemo: TCompScintEdit);
 
       { Add indicator while making sure it does not overlap the regular selection
         styling (only looks at main selection and not any additional selections
-        atm - so if you ctrl drag to select a part of a word and then the same
-        on an occurrence somewhere else the additional selection becomes hidden
-        by the indicator except for the very top and bottom (due to use of
+        atm - so if you ctrl+double click a word and then do the same on an
+        occurrence somewhere else the additional selection becomes hidden by the
+        indicator except for the very top and bottom (due to use of
         INDIC_STRAIGHTBOX instead of INDIC_FULLBOX) }
       if SelAvail and Range.Overlaps(Selection) then begin
         if Range.StartPos < Selection.StartPos then

+ 3 - 1
Projects/Src/CompScintEdit.pas

@@ -152,6 +152,9 @@ begin
      "The INDICATOR_* values used for dividing up indicators were previously
       INDIC_CONTAINER, INDIC_IME, INDIC_IME_MAX, and INDIC_MAX"
      Once it does replace our use of these INDIC_* with INDICATOR_*.
+    -3.5.2: Investigate: SCFIND_CXX11REGEX. When compiled with CXX11_REGEX this
+            flag may be set to use <regex> instead of Scintilla's basic regular
+            expressions.
     -3.5.7: Use SCI_MULTIPLESELECTADDEACH to implement Ctrl+Shift+L (Select All
             Occurrences) and SCI_MULTIPLESELECTADDNEXT to implement Ctrl+D (Select
             Next Occurrence). If the selection is empty Scintilla will use word
@@ -160,7 +163,6 @@ begin
             behaves same as TCompileForm.UpdateOccurrenceIndicators. Also requires
             calling SCI_TARGETWHOLEDOCUMENT.
             !!! Note https://github.com/notepad-plus-plus/notepad-plus-plus/pull/14330
-    -3.6.0: Highly desirable version because of improved additional selection typing
     -5.0.1: Review using SCI_INDICSETSTROKEWIDTH for high DPI support on INDIC_SQUIGGLE }
 
   Call(SCI_SETCARETWIDTH, 2, 0);

+ 3 - 0
whatsnew.htm

@@ -36,6 +36,9 @@ For conditions of distribution and use, see <a href="files/is/license.txt">LICEN
 <ul>
   <li>Added shortcuts to move selected lines up or down (Alt+Up and Alt+Down).</li>
   <li>Added shortcuts to add a word or line as an additional selection (Ctrl+Double Click and Ctrl+Triple Click).</li>
+  <li>Multiple selection now works over horizontal movement and selection commands.</li>
+  <li>Multiple selection now works over line up and down movement and selection commands.</li>
+  <li>Multiple selection now works over word and line deletion commands, and line end insertion.</li>
   <li>When autocompleting with multiple selections present, the autocompleted text now goes into each selection.</li>
   <li>The icons used by the editor's gutter are now supported even at very high DPI.</li>
 </ul>