mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-02 18:40:24 +02:00
SynEdit, Pas Highlighter: show ^x as string / fix pointer()^
git-svn-id: trunk@47518 -
This commit is contained in:
parent
e12b90ee3d
commit
367f996fb8
@ -86,7 +86,8 @@ type
|
|||||||
// Also included after class modifiers "sealed" and "abstract"
|
// Also included after class modifiers "sealed" and "abstract"
|
||||||
rsAtClass,
|
rsAtClass,
|
||||||
rsAfterClass,
|
rsAfterClass,
|
||||||
rsAfterIdentifier,
|
rsAfterIdentifierOrValue, // anywhere where a ^ deref can happen "foo^", "foo^^", "foo()^", "foo[]^"
|
||||||
|
rsAfterIdentifierOrValueAdd,
|
||||||
|
|
||||||
rsAtClosingBracket, // ')'
|
rsAtClosingBracket, // ')'
|
||||||
rsAtCaseLabel,
|
rsAtCaseLabel,
|
||||||
@ -2757,7 +2758,7 @@ begin
|
|||||||
) and
|
) and
|
||||||
(fRange * [rsInTypeBlock, rsAfterEqual] = [rsAfterEqual])
|
(fRange * [rsInTypeBlock, rsAfterEqual] = [rsAfterEqual])
|
||||||
)) and
|
)) and
|
||||||
not(rsAfterIdentifier in fRange)
|
not(rsAfterIdentifierOrValue in fRange)
|
||||||
then begin
|
then begin
|
||||||
if Run<fLineLen then begin
|
if Run<fLineLen then begin
|
||||||
if (Run+1 < fLineLen) and (fLine[Run] = '{') and (fLine[Run+1] = '$') then begin
|
if (Run+1 < fLineLen) and (fLine[Run] = '{') and (fLine[Run+1] = '$') then begin
|
||||||
@ -2768,7 +2769,9 @@ begin
|
|||||||
inc(Run);
|
inc(Run);
|
||||||
end;
|
end;
|
||||||
fTokenID := tkString;
|
fTokenID := tkString;
|
||||||
end;
|
end
|
||||||
|
else
|
||||||
|
fRange := fRange + [rsAfterIdentifierOrValueAdd];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynPasSyn.NullProc;
|
procedure TSynPasSyn.NullProc;
|
||||||
@ -2876,6 +2879,7 @@ procedure TSynPasSyn.RoundCloseProc;
|
|||||||
begin
|
begin
|
||||||
inc(Run);
|
inc(Run);
|
||||||
fTokenID := tkSymbol;
|
fTokenID := tkSymbol;
|
||||||
|
fRange := fRange + [rsAfterIdentifierOrValueAdd];
|
||||||
PasCodeFoldRange.DecBracketNestLevel;
|
PasCodeFoldRange.DecBracketNestLevel;
|
||||||
if (PasCodeFoldRange.BracketNestLevel = 0) then begin
|
if (PasCodeFoldRange.BracketNestLevel = 0) then begin
|
||||||
if (fRange * [rsAfterClass] <> []) then
|
if (fRange * [rsAfterClass] <> []) then
|
||||||
@ -2895,6 +2899,7 @@ procedure TSynPasSyn.SquareCloseProc;
|
|||||||
begin
|
begin
|
||||||
inc(Run);
|
inc(Run);
|
||||||
fTokenID := tkSymbol;
|
fTokenID := tkSymbol;
|
||||||
|
fRange := fRange + [rsAfterIdentifierOrValueAdd];
|
||||||
PasCodeFoldRange.DecBracketNestLevel;
|
PasCodeFoldRange.DecBracketNestLevel;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -3071,8 +3076,8 @@ begin
|
|||||||
fRange := fRange - [rsAfterClass];
|
fRange := fRange - [rsAfterClass];
|
||||||
|
|
||||||
fRange := fRange -
|
fRange := fRange -
|
||||||
(FOldRange * [rsAfterEqualOrColon, rsAtPropertyOrReadWrite, rsAfterClassField]) -
|
(FOldRange * [rsAfterEqualOrColon, rsAtPropertyOrReadWrite, rsAfterClassField, rsAfterIdentifierOrValue]) -
|
||||||
[rsAtClosingBracket, rsAfterIdentifier];
|
[rsAtClosingBracket];
|
||||||
|
|
||||||
if rsAtClass in fRange then begin
|
if rsAtClass in fRange then begin
|
||||||
if FOldRange * [rsAtClass, rsAfterClass] <> [] then
|
if FOldRange * [rsAtClass, rsAfterClass] <> [] then
|
||||||
@ -3087,8 +3092,8 @@ begin
|
|||||||
fRange := fRange + [rsAfterClass];
|
fRange := fRange + [rsAfterClass];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if FTokenID = tkIdentifier then
|
if (FTokenID = tkIdentifier) or (rsAfterIdentifierOrValueAdd in fRange) then
|
||||||
fRange := fRange + [rsAfterIdentifier];
|
fRange := fRange + [rsAfterIdentifierOrValue] - [rsAfterIdentifierOrValueAdd];
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
if FAtLineStart and not(FTokenID in [tkSpace, tkComment, tkIDEDirective]) then
|
if FAtLineStart and not(FTokenID in [tkSpace, tkComment, tkIDEDirective]) then
|
||||||
|
@ -1101,7 +1101,11 @@ begin
|
|||||||
'c:=p ^;',
|
'c:=p ^;',
|
||||||
'c:=p(**)^;',
|
'c:=p(**)^;',
|
||||||
'c:=p{} ^;',
|
'c:=p{} ^;',
|
||||||
'c:=p^+^i''e''^a#13^x;', //20
|
'i:=f(1)^;', // 20
|
||||||
|
'i:=f[1]^;',
|
||||||
|
'i:=f^^;',
|
||||||
|
'c:=p^+^i''e''^a#13^x;',
|
||||||
|
'c:=x=^a and ^a=k and(^a^a=z);',
|
||||||
'end;',
|
'end;',
|
||||||
''
|
''
|
||||||
]);
|
]);
|
||||||
@ -1140,10 +1144,23 @@ begin
|
|||||||
CheckTokensForLine('c:=p{} ^;', 19,
|
CheckTokensForLine('c:=p{} ^;', 19,
|
||||||
[tkIdentifier, tkSymbol, tkIdentifier, tkComment, tkSpace, tkSymbol, tkSymbol]);
|
[tkIdentifier, tkSymbol, tkIdentifier, tkComment, tkSpace, tkSymbol, tkSymbol]);
|
||||||
|
|
||||||
CheckTokensForLine('c:=p^+^i''e''^a#13^x;', 20,
|
CheckTokensForLine('c:=p(1)^;', 20,
|
||||||
|
[tkIdentifier, tkSymbol, tkIdentifier, tkSymbol, tkNumber, tkSymbol, tkSymbol]);
|
||||||
|
CheckTokensForLine('c:=p[1]^;', 21,
|
||||||
|
[tkIdentifier, tkSymbol, tkIdentifier, tkSymbol, tkNumber, tkSymbol, tkSymbol]);
|
||||||
|
CheckTokensForLine('c:=p^^;', 22,
|
||||||
|
[tkIdentifier, tkSymbol, tkIdentifier, tkSymbol, tkSymbol, tkSymbol]);
|
||||||
|
|
||||||
|
CheckTokensForLine('c:=p^+^i''e''^a#13^x;', 23,
|
||||||
[tkIdentifier, tkSymbol, tkIdentifier, tkSymbol, tkSymbol, // c:=p^+
|
[tkIdentifier, tkSymbol, tkIdentifier, tkSymbol, tkSymbol, // c:=p^+
|
||||||
tkString, tkString, tkString, tkString, tkString, tkSymbol // ^i'e'^a#13^x;
|
tkString, tkString, tkString, tkString, tkString, tkSymbol // ^i'e'^a#13^x;
|
||||||
]);
|
]);
|
||||||
|
CheckTokensForLine('c:=x=^a and ^a=k and(^a^a=z);', 24,
|
||||||
|
[tkIdentifier, tkSymbol, tkIdentifier, tkSymbol, tkString, tkSpace, // c:=x=^a
|
||||||
|
tkKey, tkSpace, tkString, tkSymbol, tkIdentifier, tkSpace, // and ^a=k
|
||||||
|
tkKey, tkSymbol, tkString, tkString, tkSymbol, tkIdentifier, // and(^a^a=z
|
||||||
|
tkSymbol, tkSymbol // );'
|
||||||
|
]);
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user