mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 21:40:25 +02:00
SynEdit, pas highlighter: fixed "packed class"
git-svn-id: trunk@42193 -
This commit is contained in:
parent
bbabe5442e
commit
34e144634c
@ -294,6 +294,7 @@ type
|
|||||||
FStartCodeFoldBlockLevel: integer;
|
FStartCodeFoldBlockLevel: integer;
|
||||||
FPasStartLevel: Smallint;
|
FPasStartLevel: Smallint;
|
||||||
fRange: TRangeStates;
|
fRange: TRangeStates;
|
||||||
|
FOldRange: TRangeStates;
|
||||||
FStringKeywordMode: TSynPasStringMode;
|
FStringKeywordMode: TSynPasStringMode;
|
||||||
FSynPasRangeInfo: TSynPasRangeInfo;
|
FSynPasRangeInfo: TSynPasRangeInfo;
|
||||||
FAtLineStart: Boolean; // Line had only spaces or comments sofar
|
FAtLineStart: Boolean; // Line had only spaces or comments sofar
|
||||||
@ -1081,7 +1082,15 @@ end;
|
|||||||
|
|
||||||
function TSynPasSyn.Func40: TtkTokenKind;
|
function TSynPasSyn.Func40: TtkTokenKind;
|
||||||
begin
|
begin
|
||||||
if KeyComp('Packed') then Result := tkKey else Result := tkIdentifier;
|
if KeyComp('Packed') then begin
|
||||||
|
Result := tkKey;
|
||||||
|
if (fRange * [rsProperty, rsAfterEqualOrColon] = [rsAfterEqualOrColon]) and
|
||||||
|
(PasCodeFoldRange.BracketNestLevel = 0)
|
||||||
|
then
|
||||||
|
FOldRange := FOldRange - [rsAfterEqualOrColon]; // Keep flag in FRange
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Result := tkIdentifier;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TSynPasSyn.Func41: TtkTokenKind;
|
function TSynPasSyn.Func41: TtkTokenKind;
|
||||||
@ -2926,7 +2935,6 @@ end;
|
|||||||
procedure TSynPasSyn.Next;
|
procedure TSynPasSyn.Next;
|
||||||
var
|
var
|
||||||
IsAtCaseLabel: Boolean;
|
IsAtCaseLabel: Boolean;
|
||||||
OldRange: TRangeStates;
|
|
||||||
begin
|
begin
|
||||||
fAsmStart := False;
|
fAsmStart := False;
|
||||||
fTokenPos := Run;
|
fTokenPos := Run;
|
||||||
@ -2949,7 +2957,7 @@ begin
|
|||||||
else if rsSlash in fRange then
|
else if rsSlash in fRange then
|
||||||
SlashContinueProc
|
SlashContinueProc
|
||||||
else begin
|
else begin
|
||||||
OldRange := fRange;
|
FOldRange := fRange;
|
||||||
//if rsAtEqual in fRange then
|
//if rsAtEqual in fRange then
|
||||||
// fRange := fRange + [rsAfterEqualOrColon] - [rsAtEqual]
|
// fRange := fRange + [rsAfterEqualOrColon] - [rsAtEqual]
|
||||||
//else
|
//else
|
||||||
@ -2968,15 +2976,15 @@ begin
|
|||||||
not(rsAtClosingBracket in fRange)
|
not(rsAtClosingBracket in fRange)
|
||||||
then
|
then
|
||||||
fRange := fRange - [rsAfterClass];
|
fRange := fRange - [rsAfterClass];
|
||||||
if rsAfterEqualOrColon in OldRange then
|
if rsAfterEqualOrColon in FOldRange then
|
||||||
fRange := fRange - [rsAfterEqualOrColon];
|
fRange := fRange - [rsAfterEqualOrColon];
|
||||||
if rsAtPropertyOrReadWrite in OldRange then
|
if rsAtPropertyOrReadWrite in FOldRange then
|
||||||
fRange := fRange - [rsAtPropertyOrReadWrite];
|
fRange := fRange - [rsAtPropertyOrReadWrite];
|
||||||
fRange := fRange - [rsAtClosingBracket];
|
fRange := fRange - [rsAtClosingBracket];
|
||||||
if rsAfterClassField in OldRange then
|
if rsAfterClassField in FOldRange then
|
||||||
fRange := fRange - [rsAfterClassField];
|
fRange := fRange - [rsAfterClassField];
|
||||||
if rsAtClass in fRange then begin
|
if rsAtClass in fRange then begin
|
||||||
if OldRange * [rsAtClass, rsAfterClass] <> [] then
|
if FOldRange * [rsAtClass, rsAfterClass] <> [] then
|
||||||
fRange := fRange + [rsAfterClass] - [rsAtClass]
|
fRange := fRange + [rsAfterClass] - [rsAtClass]
|
||||||
else
|
else
|
||||||
fRange := fRange + [rsAfterClass];
|
fRange := fRange + [rsAfterClass];
|
||||||
|
Loading…
Reference in New Issue
Block a user