From f792da4703553e250e139e3f09b4993526ca48d7 Mon Sep 17 00:00:00 2001 From: JianjunLiu Date: Fri, 28 Jul 2023 15:16:45 +0800 Subject: [PATCH] tsl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 鏇存柊 --- TSSVRAPI.DLL | Bin 38912 -> 38912 bytes funcext/tvclib/utslmemo.tsf | 7 ++- funcext/tvclib/utslvclauxiliary.tsf | 67 +++++++++++++++------------- plugin/TSLUIL.dll | Bin 40960 -> 40960 bytes 4 files changed, 42 insertions(+), 32 deletions(-) diff --git a/TSSVRAPI.DLL b/TSSVRAPI.DLL index ca81954e26f94013eb03972f03ad93c3dc993f86..7746e2962ee03501ea6d48e48422fa5d8ed94e20 100644 GIT binary patch delta 16177 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

N_ z=S|&gy1(;s-$-Q(KkSxPog`3HV}iSK(;?lhd3bR4M19Xu5^tIofrFvi^DPgQHj zAhxEsz&wv?baEeSy&Ck0I&ZDwk^X+l&pgpT(DTMRROCJ7JbPgLzT?mM>jPg$7T0+K z@`JlsD#Eh}&uAO?5&wan!>`(GrDcXJw`@2V;$VK;e_PCnwX%oUDAn$jPiRJl)&A4u zTzRpyr?oehXzhDecZj@tbw^d}8Y(7iwb?3LOnUU;j9UIjQLaJxS*-^T?i=em4vARXhc>Mz&+9u$ z`H=7L>o@r5YSen`q0Lr%r8+)DUol|;5}ML6)(_C2^=>zm=5}YSB6JG>uJ1f$Bu@++ zstn{S16L}C_`d@uEBQP!XobfR@zEjn;=yoix>kNT$lKha6T_Dj;vzo0-t@&K*mOsb z!wT#ErUv2rgK!;_SK%DuJ~3G0L!vRhgU|y*o$xDKToAvB3I>bTOQdVG6=iD882Fn} za#s6WWO_KWmb2Q~@WcW*tIdQrQMgC30+?ZWix{!F;?T3sia7P7yv6OX3Hh2NXT3eC zU?p$o8~TO!i4&J#X>P|6Q8wHHhPsT9MFz_S8)o`+ztR3*VZqwYR@gLa4`Z3eEL@_URigra@ zc&ec$J|xCamvF~@`zhfY#E$oSR1iC6j7_(bPYT|kEa&e8KdE!U0*S3Sr^MH2f58ad z>K<>=-s7JAM?}1X@T~UZ73!G8*SKAR>wfHCKJFC_=nE2WBk>ldnAHRxddkRw-E7pW9^jmC^coeB~8;kWDuic{J>X&Rq@=E8h=^Gr0FE zLPK!V>YhwgtQ^jZk4uP z+HKOR?d+8PEzfY_tambR z!aUhRtEFwiW@!t3PTH-~mP=bKZML+tq%}x8PTHZ;21)B7tw!2=zY(q7koJnS?@D`I z+Jn+Inx$-$wo=-a(&k7zPue7DCrTSBZGUNfr0phcJ2pkE9ce$6_JXu6(!M6`UTJqq zTP^Ks*I02_o(vX9>mu#DJw(1z+7xM1rA?DIL)r_{?&3R!4j8gu`a7kqmUgwYdD4bS z>mu!L{`Sxb%5(gep+l7Ye9$nx>&sX~c#?+YvxhzTWB{hZ{)8>=gW5>knm0|?#KhG` z3qSlD>Fb5RryahfR{CZ9{b2zCGh`+?$6&#hM~^j!aZg!Sb0uO@MC5Iotu&@Z{lB0rK%~U<4D6uJxG70`rndXB|S;H zpR|B( z)K=0xq;HU3+pU(TQ2k|;zd-pk(rD5kQfJcdsQy*bSx|9)c9bgYBi&BAp7b0YkWKMq ziq-Bgc8~J*IDk6%)kZb*E~zW!A5eUJqk4Wek{S#n^&@pAy}L_o=qu8bq)nvTNH>xe zkuD-lBOOl~PU^L5w%YK+-_Z$3TSWO-b!Y+nC_{yq}xdMksc?#LTV*#C+%iY zPv}M3pEQDWJZTc?e9}CrSX*l;v4ymW^aSZe(yvJGk!rT6C-xx?BOOT^Pntoxgmfio zwNSCPpQFTn(i5a@q*hW^M^{Q3Mmml(iF5&J9_f10Eu?!%UxUhf>m((vlHMU@Th$Z# zkw%bCBuyh-L|RN*OZo!o5z>>Smq@Q~rF-ixCAvMUo-lwkl5{fZ9MWZ^<)phwkC3*J z-XMKI+OuA5KZG>8US2ehfMSjwZEZv z!}-gc@PZ{B#Hqt#FYDD1?90n17WFKjrk-)tK!l}9SUbG!elHng@^}N{53olK<&AZ$VgU>oCiik&6Tlw zuEhH$mb)U8o1JOO3>hVkL~rDm1QC&uSxc5Owhyt3Xell&BVTubATPA6bUsaqTD> zDM}9EVPYeHeu^z4VbHe;)i4L=O$1aNj`0gNpg(ZY{SU9a_!LYe_ZRR?K|7-|Rj`QF| z-@f7fu?}LUO~F;fXqd)1Nz~{a-H1LN;u(qIx^p-l7t2nC;*HI`46sOU6k6tb^PYEF-i*$erlk?cp~f~zT&AU*VI7S zL00~BLvZhHm{Rlfxn_mV0{|1zL2piS@@eK8UqK4yf8f8ctML3)Pj1j6Fdj@ zfPLT~I0BA=7H|f%f{Wk^_#9jZ-+~CVc_#`_77q~o3|joLa)1VF#s%~OK42s&20-;7 z3=9P$Ks1;L;z1jZs|VBIr-E5vK3EKLKmjm;)u0^o>&Mt8=$4VV{%vq}fje0IFF^N# zCNK^szJ^8*!G8lB2PeTfZ~0S5>N>^cnKU?iupVZrwv>K_klJC zQvv#cVPFDy3d{q`!D>(k{s3M9Z-F*&13UoTa~bmoUt*IAhmHX;APGDTmV$NQS+F}7 z^SKYs-@pgpD{vn;EyD^0L%~?^6qpT`fHj~F{D2cY4?PH4z$I`UJOG;IxCqb>3;`3s zbg&q#099ZI*k^`$8+;7D2iiQ`9v}>i2Pt3~SPvS&i{Jn_4qCw%;78z@kJ}GC2@=6v zkON9V4QK>^1sA|);2!9X#~QOIj2;XI6G0-F3vxgiuz=^me()wZ4L$&$fji)5;97`} zGcXLqf)p?x&Sf@|P=z)XyJgK#hb%m7)y*^FCeC7jLRW$+d_ z4?Y54ga3jarRXFG10%r{Fb^yT>p%l|85{=}!5v@&zG&NRC8igQ1k=D`uo`RujiC2o zm=^FM_!RsL++W%JUHWT^lZIX8f0{WY$cf!y-?O{y2X>F$XAjtqteySD9*eZJlTNZNVvDmiC9_7l# z-y1PlF&iJ{zC~`%G>qkjN4a+74kh9e9F85l8CzZqR+P2;QNH7r7YZ+GI|zp4_Jvy%QB3M#1?Hs5luv z5qkXY`|-Q)$M3$`<9FY3uXz0K+pA99G#|hFe*EtH@w@NG@4nUDfb9R%yKnPW@$89z z|NGsynzvgU%ScaJIHlN#zyJQB2tPS9FRu{qzNW}%s?n61SGqK}U}lLiJ2lgk!{$0= zq%Vv&W))@|<1VnlBnjkl1dlzGI>_Dk%aU(w!Cwk zP{#5olb3EP&SypT$Y?Sq7GxXC*h)21Sh_gR7?)$rT8`JMqWAHoMTX3h9JaKs+3F& z`F+P+awh(o{Z-8r7H1hVGBH+|cR8+9SC(jQA6El0B20S%%p&X6C2ouExcu*z;;Kv0zCd zo6dvHI&-SMBx6;Pk!8t9G#*T=8Jh%pW<*D;!0SXzMVTJD&mYt47e zb@aAC$;iQgiqoO7!~*=8T-3QDl48}Dbjq5H`OMTcBabfaniaz!2Vf-+EcaKQf%O}L zwOQ7+qO7&rF`I(F%M~6u-$z-`pDp+8ZFVfAJEL6TdGq`FZs=50x;PO%EMb-WKjpfo z>pIHPGM~X!rm*^sOgcue!7-8-vAt79T9U%0_v`5mmE8JF~X$4cq*sE51% zuPkam-;vKKL{;`e=NL8Kkr|w6^hkB)*-3kb;`3@;l2{PDguP2aa%r9^H$E3{rY=w> z1$RmtAHGp%{zzt$GqKNCx0d40tH7?CxY%HcK8nNr3eRZao(kaGFF-@mT zKKqS~(~OzflUJFHVgpLW6!#Qa{&j`7#!bV&Ti9Fa#oa4?ecd}MW3KIWnFpUx>Hnl> zN7?Mc;%s}Nw>>L9Fh}4`v16Q4m}Jac&UCz?QfKZ%CAso0?nhC6;YwpdnJFo=U}#Hh@Y?ax$?Ig{YC(QP^|i}H+VVwf@t*+MmE zD$Xt~ViQ@BJ;bNFx|CLQ&0zM5yXIo^ur8SnrAfp z%f&v>$)5=1#^!#-x{vZ@>9$_adRL4ja{lF7iNnEz$*B<&AtJZ zT}so8V!hy-6%B953h>|DrFd3mUa4{V5?0N>-0YiM<4~GpEMO<>alZV>V{dng#W=Qf zWW*M+jJ+pg8hW|`TOD(vS@u59tk!8RXn1V4PQyOn&sO^mX;W(z=Za@F?3x*cVr6~U zDXZo#@(-(Z^ES$d$1-D`+ zlH8@DF1`kF;+{)%PV9uxpbQUZG>joG%~RWHbDk}_7>CE*bWwv&F|J+P-}r$v*vMJvH+sK&BzlP`2wsM^y==v(9;hh~IfpFrn?mH}}!LSH0*FZ6TruR(tVq7&`V0Rz?g zAyBgkMidCG4afYU(JfGqLHNP|zR=jg`2J%ah7P&`WW%q79tGmWLTiVh4dk~#e*tUZ zy9{M4eHhjU{0!**2z)UMzvmM;2JD-M`M(aw21F-ZB5@KR=1gcg`9ePdM{w{pXw`7F zPBm2g*hF-q8h6e&Ky=Ou6~CKkg)e>rGh{3lC4Bt+ilu=T`1lDHTRAofbAaFw0`V)8 zoVlus-<52KFI4>GYHT{x zbhN3Z=}MFSmB?43Ut#-Q_WSME??1Pn9dJ3|alr3@{y_Kv!-3QTa}Jz4c($2Qr*^)s{0~iezJ>q* diff --git a/funcext/tvclib/utslmemo.tsf b/funcext/tvclib/utslmemo.tsf index b5cf029..bfef8dd 100644 --- a/funcext/tvclib/utslmemo.tsf +++ b/funcext/tvclib/utslmemo.tsf @@ -2923,13 +2923,15 @@ type TSynCompletion = class(TSynCompletionList) begin if M<>FMemo then begin + tm := FMemo; + if tm then tm.Completion := nil; FMemo := M; IF M IS CLASS(TSynCustomMemo) then begin M.Completion:= self(true); end else FMemo:= nil; parent := FMemo; - FJump.Parent := FMemo; + FJump.Parent := FMemo; //if FJump.Parent<>FMemo then FJump.Parent := FMemo; end end @@ -3079,6 +3081,7 @@ type TSynHighLighter = class(TComponent) // if Memo<>M then begin tfm := FMemo; + if tfm then tfm.Highlighter := nil; FMemo := M; if M is Class(TSynCustomMemo) then begin @@ -3089,7 +3092,7 @@ type TSynHighLighter = class(TComponent) // FMemo := nil; Flines := nil; end - if tfm is Class(TSynCustomMemo) then tfm.Highlighter := nil; + //if tfm is Class(TSynCustomMemo) then tfm.Highlighter := nil; SetInValidateIndex(1); end end diff --git a/funcext/tvclib/utslvclauxiliary.tsf b/funcext/tvclib/utslvclauxiliary.tsf index 9c3e41d..16e0bad 100644 --- a/funcext/tvclib/utslvclauxiliary.tsf +++ b/funcext/tvclib/utslvclauxiliary.tsf @@ -1130,7 +1130,7 @@ type tnumindexarrayex = class(tnumindexarray) end //ifdef newgetop type trefarray = class() //数组成员引用模拟 - function create(d,bidxs); //构造函数 + function create(d); //构造函数 begin if ifarray(d) or (d is class(trefarray)) then begin @@ -1138,23 +1138,16 @@ type trefarray = class() // end else begin FData := array(); - end - if ifarray(bidxs) then - begin - FBindexs := bidxs; - end else - begin - FBindexs := array(); - end + end end function mgset(idxs,v); //根据下标设置值 begin if not ifarray(idxs) then return nil; if ifarray(FData) then begin - return magicsetarray(FData,FBindexs union idxs,v); + return magicsetarray(FData, idxs,v); end - return FData.mgset(FBindexs union idxs,v); + return FData.mgset(idxs,v); end function mgget(idxs); //根据获得值 begin @@ -1163,7 +1156,7 @@ type trefarray = class() // begin return magicgetarray(FData,idxs); end - return FData.mgget(FBindexs union idxs,v); + return FData.mgget(idxs,v); end function operator[0](idx,v); //获取值 begin @@ -1181,9 +1174,18 @@ type trefarray = class() // end return mgset(array(idx),v); //一级直接返回 end + published + property data read FData write setdata; private //成员变量 FData; - FBindexs; + private + function setdata(d); + begin + if FData<>d and ifarray(d) then + begin + FData := d; + end + end private //中间对象 type trefsgter = class() function create(a,idx); @@ -1737,13 +1739,11 @@ type TTire = class() @explan(说明) tire树 **} type TTireNode = class() - [weakref] parent; FChar; FSub; FEnd; Ficase; _tag; - _tag2; function Create(v); begin FChar := v; @@ -1761,7 +1761,6 @@ type TTire = class() vsub := new TTireNode(v0); vsub.Ficase := Ficase; FSub[v0] := vsub; - vsub.Parent := self; end ls := length(s); if ls>1 then @@ -2308,9 +2307,14 @@ type tstr_step_match=class() {** @explan(说明)字符串数组匹配 %% **} + private + const find_end="end"; + public function create(its); //送入匹配的字符串数组 begin - fits := array(); + fits := array(); + fcaches := array(); + fcaches[""] := array(); set_items(its); end function step_find_idx(s:string); //匹配的序号 @@ -2320,19 +2324,21 @@ type tstr_step_match=class() @param(s)(string) 匹配的目标 %% @return(array of integer) 成功的位置 %% **} - if not ftree then return array(); - o := ftree.find_node(s,idx); - if o and ((idx-1)=length(s)) then return o._tag; - if not o then o := ftree.FRoot; - for i := idx to length(s) do + if fcaches[s] then return fcaches[s]; //完全 + osi := fcaches[""]; + for i:= 1 to length(s) do begin si := s[1:i]; - oi := ftree.add(si); - asi := get_same_idexs(si,o._tag); - oi._tag := asi; - o := oi; + if fcaches[si] then + begin + osi := fcaches[si]; + continue; + end + osi := get_same_idexs(si,osi); + if not ifarray(osi) then osi := array(); + fcaches[si] := osi; end - return o._tag; + return fcaches[s]; end function step_find(s); //查找匹配的字符 begin @@ -2343,8 +2349,8 @@ type tstr_step_match=class() if fits<> its and check_legal(its) then begin fits := its; - ftree := new TTire(); - ftree.FRoot._tag := mrows(fits,1); + fcaches := array(); + fcaches[""] := mrows(fits,1); end end private @@ -2371,7 +2377,8 @@ type tstr_step_match=class() end protected fits; //原始数据 - ftree; + fcaches; + fcacheslen; private end implementation diff --git a/plugin/TSLUIL.dll b/plugin/TSLUIL.dll index f0cfb4fb09daaa0a73e189af4d600fea9950d50e..7b7f221c0c95a4b6b1943cb5d82a658fd7964324 100644 GIT binary patch delta 11431 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 HXZe2s6&E>- delta 11327 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