From 791217a4b17e0c2e648f20c0e74b7f37b0cf2429 Mon Sep 17 00:00:00 2001 From: JianjunLiu Date: Mon, 17 Oct 2022 14:05:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=95=8C=E9=9D=A2=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 语法高亮匹配问题修正 --- designer/tslvcldesigner.tsf | 11 ++++++++++- designer/utslsynmemo.tsf | 4 ++-- designer/utslvcldcomponents.tsf | 5 +++++ funcext/tvclib/utslmemo.tsf | 17 +++++++++-------- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/designer/tslvcldesigner.tsf b/designer/tslvcldesigner.tsf index bd724ad..d29edc0 100644 --- a/designer/tslvcldesigner.tsf +++ b/designer/tslvcldesigner.tsf @@ -127,7 +127,16 @@ type TVclDesigner = class(tvcform) tcname := tc.name; tcclassname := tc.dclassname; if not(tcclassname and tcname and ifstring(tcname) and ifstring(tcclassname)) then raise "!"; - r+= "object "+ tc.name +":"+tc.dclassname+"\r\n"; + oorinh := (tc.isinherited)?"inherited ":"object "; + ihp := ""; + if tc.isinherited then + begin + if ifstring(tc.inheritedparent) then + begin + ihp := "("+tc.inheritedparent+")"; + end + end + r+= oorinh + tc.name +":"+tc.dclassname+ihp+"\r\n"; itemnames[length(itemnames)] := array(tc.name,tc.dclassname); cr := tc.GetChangedPublish(); for i,v in cr do diff --git a/designer/utslsynmemo.tsf b/designer/utslsynmemo.tsf index 3d87c68..5659823 100644 --- a/designer/utslsynmemo.tsf +++ b/designer/utslsynmemo.tsf @@ -1249,11 +1249,11 @@ type ttfmhighlighter = class(tcustomsynhighlighter) begin inherited; ExecuteCommand("string",array(('"',"\\"))); - ExecuteCommand("keywords",array("object","end")); + ExecuteCommand("keywords",array("object","end","inherited")); ExecuteCommand("rowannotes",array()); ExecuteCommand("blockannotes",array()); ExecuteCommand("syms",array("{","}","[","]","<",">",":",",","=")); - ExecuteCommand("pairs",array(("{","}"),("[","]"),("<",">"),("object","end"))); + ExecuteCommand("pairs",array(("{","}"),("[","]"),("<",">"),("object","end"),("inherited","end"))); end end diff --git a/designer/utslvcldcomponents.tsf b/designer/utslvcldcomponents.tsf index bc79eea..4588aee 100644 --- a/designer/utslvcldcomponents.tsf +++ b/designer/utslvcldcomponents.tsf @@ -34,6 +34,8 @@ type TDComponent = class() end end private + fisiherted; + finheritedparent; static fdcomponentobjects; protected fiscontainerdcmp; @@ -634,6 +636,9 @@ format(" hs := "\r\n\tfunction "+n+"("+ps+");"+vt+"\r\n\tbegin\r\n"+b+"\r\n\tend\r\n"; return hs; end + published + property isinherited read fisiherted write fisiherted;//Ϊ̳׼ + property inheritedparent read finheritedparent write finheritedparent; end type TDRootComponent = class(TDComponent) {** diff --git a/funcext/tvclib/utslmemo.tsf b/funcext/tvclib/utslmemo.tsf index e9e118f..8bc34b3 100644 --- a/funcext/tvclib/utslmemo.tsf +++ b/funcext/tvclib/utslmemo.tsf @@ -3224,12 +3224,13 @@ type tcustomsynhighlighter = class(TSynHighLighter) if n then begin st := fcbgestate[n]; - if fswordpairs[n][0]=bttk then + if fswordpairs[n][1]=bttk then begin - st.GetLeft(); - end else + st.GetRight(); + end else begin - st.GetRight(); + + st.GetLeft(); end d.FMATe := st.GetSate(); end @@ -3405,10 +3406,10 @@ type tcustomsynhighlighter = class(TSynHighLighter) v1 := v[1]; if ifstring(v0) and ifstring(v1) and v0 and v1 then begin - fswordpairs[v0,0]:= v0; - fswordpairs[v0,1]:= v1; - fswordpairshash[v0]:=v0; - fswordpairshash[v1]:=v0; + fswordpairs[v1,0]:= v0; + fswordpairs[v1,1]:= v1; + fswordpairshash[v0]:=v1; + fswordpairshash[v1]:=v1; end end