mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 13:31:20 +02:00
* fix highlight for 'i:=1to'
This commit is contained in:
parent
19bda8da46
commit
c1f6cc5dbf
128
ide/weditor.pas
128
ide/weditor.pas
@ -2149,7 +2149,6 @@ var
|
||||
if C in WhiteSpaceChars then CC:=ccWhiteSpace else
|
||||
if C in TabChars then CC:=ccTab else
|
||||
if C in HashChars then CC:=ccHash else
|
||||
if C in AlphaChars then CC:=ccAlpha else
|
||||
if C in NumberChars then CC:=ccNumber else
|
||||
if (LastCC=ccNumber) and (C in RealNumberChars) then
|
||||
begin
|
||||
@ -2158,12 +2157,18 @@ var
|
||||
if (LineText[X+1]='.') then
|
||||
cc:=ccSymbol
|
||||
else
|
||||
CC:=ccRealNumber
|
||||
cc:=ccRealNumber;
|
||||
end
|
||||
else
|
||||
cc:=ccrealnumber;
|
||||
else {'E','e'}
|
||||
begin
|
||||
if (LineText[X+1]in ['+','-','0'..'9']) then
|
||||
cc:=ccRealNumber
|
||||
else
|
||||
cc:=ccAlpha
|
||||
end;
|
||||
end else
|
||||
CC:=ccSymbol;
|
||||
if C in AlphaChars then CC:=ccAlpha else
|
||||
CC:=ccSymbol;
|
||||
GetCharClass:=CC;
|
||||
end;
|
||||
|
||||
@ -2190,7 +2195,8 @@ var
|
||||
case SClass of
|
||||
ccWhiteSpace : C:=coWhiteSpaceColor;
|
||||
ccTab : C:=coTabColor;
|
||||
ccNumber :
|
||||
ccNumber,
|
||||
ccRealNumber :
|
||||
if copy(WordS,1,1)='$' then
|
||||
C:=coHexNumberColor
|
||||
else
|
||||
@ -2223,7 +2229,7 @@ var
|
||||
FirstCC:=CC;
|
||||
if ( (CC<>LastCC) and
|
||||
(
|
||||
((FirstCC=ccNumber) and (CC<>ccRealNumber)) or
|
||||
((FirstCC=ccNumber) and (CC<>ccRealNumber) {and (CC<>ccNumber)}) or
|
||||
(((CC<>ccAlpha) or (LastCC<>ccNumber) ) and
|
||||
( (CC<>ccNumber) or (LastCC<>ccAlpha) ) and
|
||||
( (CC<>ccNumber) or (LastCC<>ccHash) ) and
|
||||
@ -2231,59 +2237,60 @@ var
|
||||
))) or
|
||||
|
||||
(X>length(LineText)) or (CC=ccSymbol) then
|
||||
begin
|
||||
MatchedSymbol:=false;
|
||||
EX:=X-1;
|
||||
if (CC=ccSymbol) then
|
||||
begin
|
||||
if length(SymbolConcat)>=High(SymbolConcat) then
|
||||
Delete(SymbolConcat,1,1);
|
||||
SymbolConcat:=SymbolConcat+C;
|
||||
end;
|
||||
case CC of
|
||||
ccSymbol :
|
||||
if IsCommentSuffix and (InComment) then
|
||||
Inc(EX) else
|
||||
if IsStringSuffix and (InString) then
|
||||
Inc(EX) else
|
||||
if IsDirectiveSuffix and (InDirective) then
|
||||
Inc(EX);
|
||||
end;
|
||||
if (C='$') and (MatchedSymbol=false) and (IsDirectivePrefix=false) then
|
||||
CC:=ccNumber;
|
||||
if CC<>ccSymbol then SymbolConcat:='';
|
||||
FormatWord(LastCC,ClassStart,EX);
|
||||
ClassStart:=EX+1;
|
||||
case CC of
|
||||
ccAlpha : ;
|
||||
ccNumber :
|
||||
if (LastCC<>ccAlpha) then;
|
||||
ccSymbol :
|
||||
if IsDirectivePrefix and (InComment=true) and (CurrentCommentType=1) and
|
||||
(InDirective=false) then
|
||||
begin InDirective:=true; InComment:=false; Dec(ClassStart,length(MatchingSymbol)-1); end else
|
||||
if IsDirectiveSuffix and (InComment=false) and (InDirective=true) then
|
||||
InDirective:=false else
|
||||
if IsCommentPrefix and (InComment=false) and (InString=false) then
|
||||
begin
|
||||
InComment:=true;
|
||||
CurrentCommentType:=SymbolIndex;
|
||||
InSingleLineComment:=IsSingleLineCommentPrefix;
|
||||
{InString:=false; }
|
||||
Dec(ClassStart,length(MatchingSymbol)-1);
|
||||
end
|
||||
else
|
||||
begin
|
||||
MatchedSymbol:=false;
|
||||
EX:=X-1;
|
||||
if (CC=ccSymbol) then
|
||||
begin
|
||||
if length(SymbolConcat)>=High(SymbolConcat) then
|
||||
Delete(SymbolConcat,1,1);
|
||||
SymbolConcat:=SymbolConcat+C;
|
||||
if IsCommentSuffix and (InComment) then
|
||||
begin InComment:=false; InString:=false; end else
|
||||
if IsStringPrefix and (InComment=false) and (InString=false) then
|
||||
begin InString:=true; Dec(ClassStart,length(MatchingSymbol)-1); end else
|
||||
if IsStringSuffix and (InComment=false) and (InString=true) then
|
||||
InString:=false;
|
||||
Inc(EX) else
|
||||
if IsStringSuffix and (InString) then
|
||||
Inc(EX) else
|
||||
if IsDirectiveSuffix and (InDirective) then
|
||||
Inc(EX);
|
||||
end;
|
||||
if CC=ccRealNumber then
|
||||
Inc(EX);
|
||||
if (C='$') and (MatchedSymbol=false) and (IsDirectivePrefix=false) then
|
||||
CC:=ccNumber;
|
||||
if CC<>ccSymbol then SymbolConcat:='';
|
||||
FormatWord(LastCC,ClassStart,EX);
|
||||
ClassStart:=EX+1;
|
||||
if ClassStart=X then
|
||||
FirstCC:=CC;
|
||||
case CC of
|
||||
ccAlpha : ;
|
||||
ccNumber :
|
||||
if (LastCC<>ccAlpha) then;
|
||||
ccSymbol :
|
||||
if IsDirectivePrefix and (InComment=true) and (CurrentCommentType=1) and
|
||||
(InDirective=false) then
|
||||
begin InDirective:=true; InComment:=false; Dec(ClassStart,length(MatchingSymbol)-1); end else
|
||||
if IsDirectiveSuffix and (InComment=false) and (InDirective=true) then
|
||||
InDirective:=false else
|
||||
if IsCommentPrefix and (InComment=false) and (InString=false) then
|
||||
begin
|
||||
InComment:=true;
|
||||
CurrentCommentType:=SymbolIndex;
|
||||
InSingleLineComment:=IsSingleLineCommentPrefix;
|
||||
{InString:=false; }
|
||||
Dec(ClassStart,length(MatchingSymbol)-1);
|
||||
end
|
||||
else
|
||||
if IsCommentSuffix and (InComment) then
|
||||
begin InComment:=false; InString:=false; end else
|
||||
if IsStringPrefix and (InComment=false) and (InString=false) then
|
||||
begin InString:=true; Dec(ClassStart,length(MatchingSymbol)-1); end else
|
||||
if IsStringSuffix and (InComment=false) and (InString=true) then
|
||||
InString:=false;
|
||||
end;
|
||||
if MatchedSymbol and (InComment=false) then
|
||||
SymbolConcat:='';
|
||||
LastCC:=CC;
|
||||
end;
|
||||
if MatchedSymbol and (InComment=false) then
|
||||
SymbolConcat:='';
|
||||
LastCC:=CC;
|
||||
end;
|
||||
end;
|
||||
|
||||
var CurLine: Sw_integer;
|
||||
@ -6930,7 +6937,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.3 2001-08-12 00:06:49 pierre
|
||||
Revision 1.4 2001-09-04 22:58:58 pierre
|
||||
* fix highlight for 'i:=1to'
|
||||
|
||||
Revision 1.3 2001/08/12 00:06:49 pierre
|
||||
* better clipboard handling for files with tabs
|
||||
|
||||
Revision 1.2 2001/08/05 02:01:48 peter
|
||||
|
Loading…
Reference in New Issue
Block a user