SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue #0022693

git-svn-id: trunk@38339 -
This commit is contained in:
martin 2012-08-23 02:56:44 +00:00
parent 8c6f49f4de
commit ba00570c74

View File

@ -54,7 +54,7 @@ uses
Classes, Graphics, SysUtils, LCLProc, math, Classes, Graphics, SysUtils, LCLProc, math,
SynRegExpr, SynEditStrConst, SynEditTypes, SynEditTextBase, SynRegExpr, SynEditStrConst, SynEditTypes, SynEditTextBase,
SynEditHighlighter, SynEditHighlighter,
{$IFDEF SynDebugMultiHL}LazLoggerBase{$ELSE}LazLoggerDummy{$ENDIF} {$IFDEF SynDebugMultiHL}LazLoggerBase{$ELSE}LazLoggerDummy{$ENDIF}, LazUTF8
; ;
type type
@ -1739,7 +1739,7 @@ end;
function TSynHighlighterMultiSchemeList.GetConvertedCurrentLine: String; function TSynHighlighterMultiSchemeList.GetConvertedCurrentLine: String;
begin begin
if FConvertedCurrentLine = '' then if FConvertedCurrentLine = '' then
FConvertedCurrentLine := AnsiUpperCase(FCurrentLine); FConvertedCurrentLine := UTF8UpperCase(FCurrentLine);
Result := FConvertedCurrentLine; Result := FConvertedCurrentLine;
end; end;
@ -1749,6 +1749,7 @@ var
begin begin
if FCurrentLine = AValue then exit; if FCurrentLine = AValue then exit;
FCurrentLine := AValue; FCurrentLine := AValue;
FConvertedCurrentLine := '';
for i := 0 to Count - 1 do for i := 0 to Count - 1 do
Items[i].ClearLinesSet; Items[i].ClearLinesSet;
end; end;
@ -1782,30 +1783,30 @@ end;
function TSynHighlighterMultiScheme.GetConvertedLine: String; function TSynHighlighterMultiScheme.GetConvertedLine: String;
begin begin
if FCaseSensitive then if FCaseSensitive then
Result := TSynHighlighterMultiSchemeList(Collection).ConvertedCurrentLine Result := TSynHighlighterMultiSchemeList(Collection).CurrentLine
else else
Result := TSynHighlighterMultiSchemeList(Collection).CurrentLine; Result := TSynHighlighterMultiSchemeList(Collection).ConvertedCurrentLine;
end; end;
function TSynHighlighterMultiScheme.GetConvertedEndExpr: String; function TSynHighlighterMultiScheme.GetConvertedEndExpr: String;
begin begin
if not FCaseSensitive then if FCaseSensitive then
Result := FEndExpr Result := FEndExpr
else begin else begin
if FConvertedEndExpr = '' then if FConvertedEndExpr = '' then
FConvertedEndExpr := AnsiUpperCase(FEndExpr); FConvertedEndExpr := Utf8UpperCase(FEndExpr);
Result := FConvertedEndExpr Result := FConvertedEndExpr;
end; end;
end; end;
function TSynHighlighterMultiScheme.GetConvertedStartExpr: String; function TSynHighlighterMultiScheme.GetConvertedStartExpr: String;
begin begin
if not FCaseSensitive then if FCaseSensitive then
Result := FStartExpr Result := FStartExpr
else begin else begin
if FConvertedStartExpr = '' then if FConvertedStartExpr = '' then
FConvertedStartExpr := AnsiUpperCase(FStartExpr); FConvertedStartExpr := Utf8UpperCase(FStartExpr);
Result := FConvertedStartExpr Result := FConvertedStartExpr;
end; end;
end; end;
@ -1925,6 +1926,7 @@ begin
fCaseSensitive := Value; fCaseSensitive := Value;
FStartExprScanner.Expression := GetConvertedStartExpr; FStartExprScanner.Expression := GetConvertedStartExpr;
FEndExprScanner.Expression := GetConvertedEndExpr; FEndExprScanner.Expression := GetConvertedEndExpr;
ClearLinesSet;
FNeedHLScan := True; FNeedHLScan := True;
Changed( False ); Changed( False );
FNeedHLScan := False; FNeedHLScan := False;