界面库

语法高亮匹配问题修正
This commit is contained in:
JianjunLiu 2022-10-17 14:05:20 +08:00
parent 50e0c4b2f5
commit 791217a4b1
4 changed files with 26 additions and 11 deletions

View File

@ -127,7 +127,16 @@ type TVclDesigner = class(tvcform)
tcname := tc.name; tcname := tc.name;
tcclassname := tc.dclassname; tcclassname := tc.dclassname;
if not(tcclassname and tcname and ifstring(tcname) and ifstring(tcclassname)) then raise "´íÎó!"; 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); itemnames[length(itemnames)] := array(tc.name,tc.dclassname);
cr := tc.GetChangedPublish(); cr := tc.GetChangedPublish();
for i,v in cr do for i,v in cr do

View File

@ -1249,11 +1249,11 @@ type ttfmhighlighter = class(tcustomsynhighlighter)
begin begin
inherited; inherited;
ExecuteCommand("string",array(('"',"\\"))); ExecuteCommand("string",array(('"',"\\")));
ExecuteCommand("keywords",array("object","end")); ExecuteCommand("keywords",array("object","end","inherited"));
ExecuteCommand("rowannotes",array()); ExecuteCommand("rowannotes",array());
ExecuteCommand("blockannotes",array()); ExecuteCommand("blockannotes",array());
ExecuteCommand("syms",array("{","}","[","]","<",">",":",",","=")); ExecuteCommand("syms",array("{","}","[","]","<",">",":",",","="));
ExecuteCommand("pairs",array(("{","}"),("[","]"),("<",">"),("object","end"))); ExecuteCommand("pairs",array(("{","}"),("[","]"),("<",">"),("object","end"),("inherited","end")));
end end
end end

View File

@ -34,6 +34,8 @@ type TDComponent = class()
end end
end end
private private
fisiherted;
finheritedparent;
static fdcomponentobjects; static fdcomponentobjects;
protected protected
fiscontainerdcmp; fiscontainerdcmp;
@ -634,6 +636,9 @@ format("
hs := "\r\n\tfunction "+n+"("+ps+");"+vt+"\r\n\tbegin\r\n"+b+"\r\n\tend\r\n"; hs := "\r\n\tfunction "+n+"("+ps+");"+vt+"\r\n\tbegin\r\n"+b+"\r\n\tend\r\n";
return hs; return hs;
end end
published
property isinherited read fisiherted write fisiherted;//为继承做准备
property inheritedparent read finheritedparent write finheritedparent;
end end
type TDRootComponent = class(TDComponent) type TDRootComponent = class(TDComponent)
{** {**

View File

@ -3224,12 +3224,13 @@ type tcustomsynhighlighter = class(TSynHighLighter)
if n then if n then
begin begin
st := fcbgestate[n]; st := fcbgestate[n];
if fswordpairs[n][0]=bttk then if fswordpairs[n][1]=bttk then
begin
st.GetLeft();
end else
begin begin
st.GetRight(); st.GetRight();
end else
begin
st.GetLeft();
end end
d.FMATe := st.GetSate(); d.FMATe := st.GetSate();
end end
@ -3405,10 +3406,10 @@ type tcustomsynhighlighter = class(TSynHighLighter)
v1 := v[1]; v1 := v[1];
if ifstring(v0) and ifstring(v1) and v0 and v1 then if ifstring(v0) and ifstring(v1) and v0 and v1 then
begin begin
fswordpairs[v0,0]:= v0; fswordpairs[v1,0]:= v0;
fswordpairs[v0,1]:= v1; fswordpairs[v1,1]:= v1;
fswordpairshash[v0]:=v0; fswordpairshash[v0]:=v1;
fswordpairshash[v1]:=v0; fswordpairshash[v1]:=v1;
end end
end end