EditorOpts: refactor

git-svn-id: trunk@59387 -
This commit is contained in:
martin 2018-10-29 20:47:52 +00:00
parent d606082834
commit 995e509d32

View File

@ -1528,7 +1528,8 @@ type
function ExtensionToLazSyntaxHighlighter(Ext: String): TLazSyntaxHighlighter; override; function ExtensionToLazSyntaxHighlighter(Ext: String): TLazSyntaxHighlighter; override;
function CreateSyn(LazSynHilighter: TLazSyntaxHighlighter): TSrcIDEHighlighter; function CreateSyn(LazSynHilighter: TLazSyntaxHighlighter): TSrcIDEHighlighter;
function ReadColorScheme(const LanguageName: String): String; function ReadColorScheme(const LanguageName: String): String; // TODO: rename ReadColorSchemeName
function GetColorSchemeLanguage(aHighLighter: TSynCustomHighlighter; SynColorSchemeName: String = ''): TColorSchemeLanguage;
function ReadPascalColorScheme: String; function ReadPascalColorScheme: String;
procedure WriteColorScheme(const LanguageName, SynColorScheme: String); procedure WriteColorScheme(const LanguageName, SynColorScheme: String);
procedure ReadHighlighterSettings(Syn: TSrcIDEHighlighter; procedure ReadHighlighterSettings(Syn: TSrcIDEHighlighter;
@ -5385,6 +5386,25 @@ begin
end; end;
end; end;
function TEditorOptions.GetColorSchemeLanguage(aHighLighter: TSynCustomHighlighter;
SynColorSchemeName: String): TColorSchemeLanguage;
var
Scheme: TColorScheme;
LangScheme: TColorSchemeLanguage;
begin
Result := nil;
// initialize with defaults
if SynColorSchemeName = '' then
SynColorSchemeName := ReadColorScheme(aHighLighter.LanguageName);
if (SynColorSchemeName = '') then
exit;
Scheme := UserColorSchemeGroup.ColorSchemeGroup[SynColorSchemeName];
if Scheme = nil then
exit;
Result := Scheme.ColorSchemeBySynClass[aHighLighter.ClassType];
end;
procedure TEditorOptions.WriteColorScheme(const LanguageName, SynColorScheme: String); procedure TEditorOptions.WriteColorScheme(const LanguageName, SynColorScheme: String);
begin begin
if (LanguageName = '') or (SynColorScheme = '') then if (LanguageName = '') or (SynColorScheme = '') then
@ -5399,20 +5419,9 @@ procedure TEditorOptions.ReadHighlighterSettings(Syn: TSrcIDEHighlighter;
SynColorScheme: String); SynColorScheme: String);
// if SynColorScheme='' then default ColorScheme will be used // if SynColorScheme='' then default ColorScheme will be used
var var
Scheme: TColorScheme;
LangScheme: TColorSchemeLanguage; LangScheme: TColorSchemeLanguage;
begin begin
// initialize with defaults LangScheme := GetColorSchemeLanguage(Syn, SynColorScheme);
if SynColorScheme = '' then
SynColorScheme := ReadColorScheme(Syn.LanguageName);
//DebugLn(['TEditorOptions.ReadHighlighterSettings ',SynColorScheme,' Syn.ClassName=',Syn.ClassName]);
if (SynColorScheme = '') or (Syn.LanguageName = '') then
exit;
Scheme := UserColorSchemeGroup.ColorSchemeGroup[SynColorScheme];
if Scheme = nil then
exit;
LangScheme := Scheme.ColorSchemeBySynClass[Syn.ClassType];
if LangScheme = nil then if LangScheme = nil then
exit; exit;
@ -5638,14 +5647,9 @@ begin
end; end;
// get current colorscheme: // get current colorscheme:
SynColorScheme := ReadColorScheme(aSynEd.Highlighter.LanguageName); Scheme := GetColorSchemeLanguage(aSynEd.Highlighter);
SchemeGrp := UserColorSchemeGroup.ColorSchemeGroup[SynColorScheme];
if SchemeGrp = nil then
exit;
Scheme := SchemeGrp.ColorSchemeBySynClass[aSynEd.Highlighter.ClassType];
if Assigned(Scheme) then Scheme.ApplyTo(aSynEd); if Assigned(Scheme) then Scheme.ApplyTo(aSynEd);
end; end;
procedure TEditorOptions.SetMarkupColor(Syn : TSrcIDEHighlighter; procedure TEditorOptions.SetMarkupColor(Syn : TSrcIDEHighlighter;
@ -5657,11 +5661,7 @@ var
Attrib: TColorSchemeAttribute; Attrib: TColorSchemeAttribute;
begin begin
if assigned(Syn) then begin if assigned(Syn) then begin
SynColorScheme := ReadColorScheme(Syn.LanguageName); Scheme := GetColorSchemeLanguage(Syn);
SchemeGrp := UserColorSchemeGroup.ColorSchemeGroup[SynColorScheme];
if SchemeGrp = nil then
exit;
Scheme := SchemeGrp.ColorSchemeBySynClass[Syn.ClassType];
end else begin end else begin
SchemeGrp := UserColorSchemeGroup.ColorSchemeGroup[DefaultColorSchemeName]; SchemeGrp := UserColorSchemeGroup.ColorSchemeGroup[DefaultColorSchemeName];
if SchemeGrp = nil then if SchemeGrp = nil then