Quellcode durchsuchen

Update to Scintilla 4.3.0.

Martijn Laan vor 1 Jahr
Ursprung
Commit
29bc5672d5
4 geänderte Dateien mit 71 neuen und 23 gelöschten Zeilen
  1. 5 4
      Components/ScintEdit.pas
  2. 62 11
      Components/ScintInt.pas
  3. BIN
      Files/isscint.dll
  4. 4 8
      Projects/Src/CompScintEdit.pas

+ 5 - 4
Components/ScintEdit.pas

@@ -44,7 +44,7 @@ type
   TScintIndentationGuides = (sigNone, sigReal, sigLookForward, sigLookBoth);
   TScintStyleByteIndicatorNumber = 0..1; { Could be increased to 0..StyleNumberUnusedBits-1 }
   TScintStyleByteIndicatorNumbers = set of TScintStyleByteIndicatorNumber;
-  TScintIndicatorNumber = INDIC_CONTAINER..INDIC_MAX;
+  TScintIndicatorNumber = INDICATOR_CONTAINER..INDICATOR_MAX;
   TScintLineEndings = (sleCRLF, sleCR, sleLF);
   TScintLineState = type Integer;
   TScintMarkerNumber = 0..31;
@@ -684,6 +684,7 @@ begin
   if FDirectPtr = nil then
     Error('CreateWnd: FDirectPtr is nil');
   UpdateCodePage;
+  Call(SCI_SETCOMMANDEVENTS, 0, 0);
   Call(SCI_SETCARETPERIOD, GetCaretBlinkTime, 0);
   Call(SCI_SETSCROLLWIDTHTRACKING, 1, 0);
   { The default popup menu conflicts with the VCL's PopupMenu on Delphi 3 }
@@ -1673,20 +1674,20 @@ procedure TScintEdit.StyleNeeded(const EndPos: Integer);
     if N > 0 then begin
       var HadStyleByteIndicators := False;
 
-      { Apply style byte indicators. Add first as INDIC_CONTAINER and so on. }
+      { Apply style byte indicators. Add first as INDICATOR_CONTAINER and so on. }
       for var Indicator := 0 to High(TScintStyleByteIndicatorNumber) do begin
         var PrevI := 1;
         var PrevValue := Indicator in TScintStyleByteIndicatorNumbers(Byte(Ord(FStyler.FStyleStr[1]) shr StyleNumberBits));
         for var CurI := 2 to N do begin
           var CurValue := Indicator in TScintStyleByteIndicatorNumbers(Byte(Ord(FStyler.FStyleStr[CurI]) shr StyleNumberBits));
           if CurValue <> PrevValue then begin
-            SetIndicators(StartStylingPos+PrevI-1, StartStylingPos+CurI-1, Ord(Indicator)+INDIC_CONTAINER, PrevValue);
+            SetIndicators(StartStylingPos+PrevI-1, StartStylingPos+CurI-1, Ord(Indicator)+INDICATOR_CONTAINER, PrevValue);
             HadStyleByteIndicators := HadStyleByteIndicators or PrevValue;
             PrevI := CurI;
             PrevValue := CurValue;
           end;
         end;
-        SetIndicators(StartStylingPos+PrevI-1, StartStylingPos+N, Ord(Indicator)+INDIC_CONTAINER, PrevValue);
+        SetIndicators(StartStylingPos+PrevI-1, StartStylingPos+N, Ord(Indicator)+INDICATOR_CONTAINER, PrevValue);
         HadStyleByteIndicators := HadStyleByteIndicators or PrevValue;
       end;
 

+ 62 - 11
Components/ScintInt.pas

@@ -1,7 +1,7 @@
 unit ScintInt;
 
 {
-  Delphi translation of Scintilla.h from Scintilla 4.0.0
+  Delphi translation of Scintilla.h from Scintilla 4.3.0
   created by Jordan Russell and updated by Martijn Laan
 }
 
@@ -65,6 +65,8 @@ const
   SCI_SETBUFFEREDDRAW = 2035;
   SCI_SETTABWIDTH = 2036;
   SCI_GETTABWIDTH = 2121;
+  SCI_SETTABMINIMUMWIDTH = 2724;
+  SCI_GETTABMINIMUMWIDTH = 2725;
   SCI_CLEARTABSTOPS = 2675;
   SCI_ADDTABSTOP = 2676;
   SCI_GETNEXTTABSTOP = 2677;
@@ -107,6 +109,7 @@ const
   SC_MARK_UNDERLINE = 29;
   SC_MARK_RGBAIMAGE = 30;
   SC_MARK_BOOKMARK = 31;
+  SC_MARK_VERTICALBOOKMARK = 32;
   SC_MARK_CHARACTER = 10000;
   SC_MARKNUM_FOLDEREND = 25;
   SC_MARKNUM_FOLDEROPENMID = 26;
@@ -238,6 +241,8 @@ const
   SCI_SETCARETPERIOD = 2076;
   SCI_SETWORDCHARS = 2077;
   SCI_GETWORDCHARS = 2646;
+  SCI_SETCHARACTERCATEGORYOPTIMIZATION = 2720;
+  SCI_GETCHARACTERCATEGORYOPTIMIZATION = 2721;
   SCI_BEGINUNDOACTION = 2078;
   SCI_ENDUNDOACTION = 2079;
   INDIC_PLAIN = 0;
@@ -258,16 +263,18 @@ const
   INDIC_COMPOSITIONTHIN = 15;
   INDIC_FULLBOX = 16;
   INDIC_TEXTFORE = 17;
+  INDIC_POINT = 18;
+  INDIC_POINTCHARACTER = 19;
+  INDIC_GRADIENT = 20;
+  INDIC_GRADIENTCENTRE = 21;
+  INDIC_CONTAINER = 8;
   INDIC_IME = 32;
   INDIC_IME_MAX = 35;
   INDIC_MAX = 35;
-  INDIC_CONTAINER = 8;
-  INDIC_POINT = 18;
-  INDIC_POINTCHARACTER = 19;
-  INDIC0_MASK = $20;
-  INDIC1_MASK = $40;
-  INDIC2_MASK = $80;
-  INDICS_MASK = $E0;
+  INDICATOR_CONTAINER = 8;
+  INDICATOR_IME = 32;
+  INDICATOR_IME_MAX = 35;
+  INDICATOR_MAX = 35;
   SCI_INDICSETSTYLE = 2080;
   SCI_INDICGETSTYLE = 2081;
   SCI_INDICSETFORE = 2082;
@@ -287,8 +294,6 @@ const
   SCI_SETWHITESPACEBACK = 2085;
   SCI_SETWHITESPACESIZE = 2086;
   SCI_GETWHITESPACESIZE = 2087;
-  SCI_SETSTYLEBITS = 2090;
-  SCI_GETSTYLEBITS = 2091;
   SCI_SETLINESTATE = 2092;
   SCI_GETLINESTATE = 2093;
   SCI_GETMAXLINESTATE = 2094;
@@ -337,6 +342,7 @@ const
   SCI_GETLINEINDENTPOSITION = 2128;
   SCI_GETCOLUMN = 2129;
   SCI_COUNTCHARACTERS = 2633;
+  SCI_COUNTCODEUNITS = 2715;
   SCI_SETHSCROLLBAR = 2130;
   SCI_GETHSCROLLBAR = 2131;
   SC_IV_NONE = 0;
@@ -365,8 +371,10 @@ const
   SC_PRINT_BLACKONWHITE = 2;
   SC_PRINT_COLOURONWHITE = 3;
   SC_PRINT_COLOURONWHITEDEFAULTBG = 4;
+  SC_PRINT_SCREENCOLOURS = 5;
   SCI_SETPRINTCOLOURMODE = 2148;
   SCI_GETPRINTCOLOURMODE = 2149;
+  SCFIND_NONE = $0;
   SCFIND_WHOLEWORD = $2;
   SCFIND_MATCHCASE = $4;
   SCFIND_WORDSTART = $00100000;
@@ -416,8 +424,12 @@ const
   SCI_GETCARETWIDTH = 2189;
   SCI_SETTARGETSTART = 2190;
   SCI_GETTARGETSTART = 2191;
+  SCI_SETTARGETSTARTVIRTUALSPACE = 2728;
+  SCI_GETTARGETSTARTVIRTUALSPACE = 2729;
   SCI_SETTARGETEND = 2192;
   SCI_GETTARGETEND = 2193;
+  SCI_SETTARGETENDVIRTUALSPACE = 2730;
+  SCI_GETTARGETENDVIRTUALSPACE = 2731;
   SCI_SETTARGETRANGE = 2686;
   SCI_GETTARGETTEXT = 2687;
   SCI_TARGETFROMSELECTION = 2287;
@@ -461,6 +473,9 @@ const
   SC_FOLDDISPLAYTEXT_STANDARD = 1;
   SC_FOLDDISPLAYTEXT_BOXED = 2;
   SCI_FOLDDISPLAYTEXTSETSTYLE = 2701;
+  SCI_FOLDDISPLAYTEXTGETSTYLE = 2707;
+  SCI_SETDEFAULTFOLDDISPLAYTEXT = 2722;
+  SCI_GETDEFAULTFOLDDISPLAYTEXT = 2723;
   SC_FOLDACTION_CONTRACT = 0;
   SC_FOLDACTION_EXPAND = 1;
   SC_FOLDACTION_TOGGLE = 2;
@@ -520,6 +535,7 @@ const
   SC_WRAPINDENT_FIXED = 0;
   SC_WRAPINDENT_SAME = 1;
   SC_WRAPINDENT_INDENT = 2;
+  SC_WRAPINDENT_DEEPINDENT = 3;
   SCI_SETWRAPINDENTMODE = 2472;
   SCI_GETWRAPINDENTMODE = 2473;
   SC_CACHE_NONE = 0;
@@ -659,10 +675,16 @@ const
   SCI_SELECTIONISRECTANGLE = 2372;
   SCI_SETZOOM = 2373;
   SCI_GETZOOM = 2374;
+  SC_DOCUMENTOPTION_DEFAULT = 0;
+  SC_DOCUMENTOPTION_STYLES_NONE = $1;
+  SC_DOCUMENTOPTION_TEXT_LARGE = $100;
   SCI_CREATEDOCUMENT = 2375;
   SCI_ADDREFDOCUMENT = 2376;
   SCI_RELEASEDOCUMENT = 2377;
+  SCI_GETDOCUMENTOPTIONS = 2379;
   SCI_GETMODEVENTMASK = 2378;
+  SCI_SETCOMMANDEVENTS = 2717;
+  SCI_GETCOMMANDEVENTS = 2718;
   SCI_SETFOCUS = 2380;
   SCI_GETFOCUS = 2381;
   SC_STATUS_OK = 0;
@@ -720,6 +742,7 @@ const
   SCI_POSITIONBEFORE = 2417;
   SCI_POSITIONAFTER = 2418;
   SCI_POSITIONRELATIVE = 2670;
+  SCI_POSITIONRELATIVECODEUNITS = 2716;
   SCI_COPYRANGE = 2419;
   SCI_COPYTEXT = 2420;
   SC_SEL_STREAM = 0;
@@ -728,6 +751,7 @@ const
   SC_SEL_THIN = 3;
   SCI_SETSELECTIONMODE = 2422;
   SCI_GETSELECTIONMODE = 2423;
+  SCI_GETMOVEEXTENDSSELECTION = 2706;
   SCI_GETLINESELSTARTPOSITION = 2424;
   SCI_GETLINESELENDPOSITION = 2425;
   SCI_LINEDOWNRECTEXTEND = 2426;
@@ -789,6 +813,10 @@ const
   CARETSTYLE_INVISIBLE = 0;
   CARETSTYLE_LINE = 1;
   CARETSTYLE_BLOCK = 2;
+  CARETSTYLE_OVERSTRIKE_BAR = 0;
+  CARETSTYLE_OVERSTRIKE_BLOCK = $10;
+  CARETSTYLE_INS_MASK = $F;
+  CARETSTYLE_BLOCK_AFTER = $100;
   SCI_SETCARETSTYLE = 2512;
   SCI_GETCARETSTYLE = 2513;
   SCI_SETINDICATORCURRENT = 2500;
@@ -847,6 +875,7 @@ const
   SCI_ANNOTATIONGETSTYLEOFFSET = 2551;
   SCI_RELEASEALLEXTENDEDSTYLES = 2552;
   SCI_ALLOCATEEXTENDEDSTYLES = 2553;
+  UNDO_NONE = 0;
   UNDO_MAY_COALESCE = 1;
   SCI_ADDUNDOACTION = 2560;
   SCI_CHARPOSITIONFROMPOINT = 2561;
@@ -879,7 +908,9 @@ const
   SCI_GETSELECTIONNANCHORVIRTUALSPACE = 2583;
   SCI_SETSELECTIONNSTART = 2584;
   SCI_GETSELECTIONNSTART = 2585;
+  SCI_GETSELECTIONNSTARTVIRTUALSPACE = 2726;
   SCI_SETSELECTIONNEND = 2586;
+  SCI_GETSELECTIONNENDVIRTUALSPACE = 2727;
   SCI_GETSELECTIONNEND = 2587;
   SCI_SETRECTANGULARSELECTIONCARET = 2588;
   SCI_GETRECTANGULARSELECTIONCARET = 2589;
@@ -956,7 +987,6 @@ const
   SCI_GETPROPERTY = 4008;
   SCI_GETPROPERTYEXPANDED = 4009;
   SCI_GETPROPERTYINT = 4010;
-  SCI_GETSTYLEBITSNEEDED = 4011;
   SCI_GETLEXERLANGUAGE = 4012;
   SCI_PRIVATELEXERCALL = 4013;
   SCI_PROPERTYNAMES = 4014;
@@ -980,6 +1010,8 @@ const
   SCI_NAMEOFSTYLE = 4030;
   SCI_TAGSOFSTYLE = 4031;
   SCI_DESCRIPTIONOFSTYLE = 4032;
+  SCI_SETILEXER = 4033;
+  SC_MOD_NONE = $0;
   SC_MOD_INSERTTEXT = $1;
   SC_MOD_DELETETEXT = $2;
   SC_MOD_CHANGESTYLE = $4;
@@ -1041,6 +1073,9 @@ const
   SC_AC_TAB = 3;
   SC_AC_NEWLINE = 4;
   SC_AC_COMMAND = 5;
+  SC_CHARACTERSOURCE_DIRECT_INPUT = 0;
+  SC_CHARACTERSOURCE_TENTATIVE_INPUT = 1;
+  SC_CHARACTERSOURCE_IME_RESULT = 2;
   SCN_STYLENEEDED = 2000;
   SCN_CHARADDED = 2001;
   SCN_SAVEPOINTREACHED = 2002;
@@ -1073,6 +1108,21 @@ const
   SCN_AUTOCCOMPLETED = 2030;
   SCN_MARGINRIGHTCLICK = 2031;
   SCN_AUTOCSELECTIONCHANGE = 2032;
+{$IFNDEF SCI_DISABLE_PROVISIONAL}
+  SC_BIDIRECTIONAL_DISABLED = 0;
+  SC_BIDIRECTIONAL_L2R = 1;
+  SC_BIDIRECTIONAL_R2L = 2;
+  SCI_GETBIDIRECTIONAL = 2708;
+  SCI_SETBIDIRECTIONAL = 2709;
+  SC_LINECHARACTERINDEX_NONE = 0;
+  SC_LINECHARACTERINDEX_UTF32 = 1;
+  SC_LINECHARACTERINDEX_UTF16 = 2;
+  SCI_GETLINECHARACTERINDEX = 2710;
+  SCI_ALLOCATELINECHARACTERINDEX = 2711;
+  SCI_RELEASELINECHARACTERINDEX = 2712;
+  SCI_LINEFROMINDEXPOSITION = 2713;
+  SCI_INDEXPOSITIONFROMLINE = 2714;
+{$ENDIF}
 
 type
   TSci_Position = Integer;
@@ -1118,6 +1168,7 @@ type
     annotationLinesAdded: TSci_Position; { SCN_MODIFIED with SC_MOD_CHANGEANNOTATION }
     updated: Integer;           { SCN_UPDATEUI }
     listCompletionMethod: Integer; { SCN_AUTOCSELECTION, SCN_AUTOCCOMPLETED, SCN_USERLISTSELECTION }
+    characterSource: Integer;   { SCN_CHARADDED }
   end;
 
 function Scintilla_DirectFunction(ptr: Pointer; iMessage: Cardinal;

BIN
Files/isscint.dll


+ 4 - 8
Projects/Src/CompScintEdit.pas

@@ -32,10 +32,10 @@ const
     though inSquiggly and inPendingSquiggly are exclusive we still need 2 indicators
     (instead of 1 indicator with 2 values) because inPendingSquiggly is always
     hidden and in inSquiggly is not. }
-  inSquiggly = INDIC_CONTAINER;
-  inPendingSquiggly = INDIC_CONTAINER+1;
-  inWordAtCursorOccurrence = INDIC_CONTAINER+2;
-  inSelTextOccurrence = INDIC_CONTAINER+3;
+  inSquiggly = INDICATOR_CONTAINER;
+  inPendingSquiggly = INDICATOR_CONTAINER+1;
+  inWordAtCursorOccurrence = INDICATOR_CONTAINER+2;
+  inSelTextOccurrence = INDICATOR_CONTAINER+3;
   inMax = inSelTextOccurrence;
 
   { Just some invalid value used to indicate an unknown/uninitialized compiler FileIndex value }
@@ -141,10 +141,6 @@ begin
   { Some notes about future Scintilla versions:
     -Does it at some point become possible to change mouse shortcut Ctrl+Click
      to Alt+Click?
-    -At some point the documentation will say:
-     "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.6.6: Investigate SCFIND_CXX11REGEX: C++ 11 <regex> support built by default.
             Can be disabled by defining NO_CXX11_REGEX. Good (?) overview at:
             https://cplusplus.com/reference/regex/ECMAScript/