IDE, SourceEditor: added css highlight. issue #030519 patch by Darek Mazur

git-svn-id: trunk@58543 -
This commit is contained in:
martin 2018-07-16 12:00:47 +00:00
parent 440d65a279
commit 77a94a7cd1
4 changed files with 85 additions and 4 deletions

View File

@ -10,7 +10,7 @@ uses
type type
TLazSyntaxHighlighter = TLazSyntaxHighlighter =
( lshNone, lshText, lshFreePascal, lshDelphi, lshLFM, lshXML, lshHTML, ( lshNone, lshText, lshFreePascal, lshDelphi, lshLFM, lshXML, lshHTML,
lshCPP, lshPerl, lshJava, lshBash, lshPython, lshPHP, lshSQL, lshJScript, lshCPP, lshPerl, lshJava, lshBash, lshPython, lshPHP, lshSQL, lshCSS, lshJScript,
lshDiff, lshBat, lshIni, lshPo, lshPike lshDiff, lshBat, lshIni, lshPo, lshPike
); );
@ -30,6 +30,7 @@ const
'Python', 'Python',
'PHP', 'PHP',
'SQL', 'SQL',
'CSS',
'JScript', 'JScript',
'Diff', 'Diff',
'Bat', 'Bat',

View File

@ -185,6 +185,16 @@
<Symbol Foreground="clRed"/> <Symbol Foreground="clRed"/>
</SchemeDefault> </SchemeDefault>
</LangSQL> </LangSQL>
<LangCSS Version="6">
<SchemeDefault>
<Comment Foreground="clBlue" />
<Measurement_Unit Foreground="clNavy" Style="fsBold"/>
<Number Foreground="clNavy"/>
<Selector Style="fsBold"/>
<String Foreground="clPurple"/>
<Symbol Foreground="clRed"/>
</SchemeDefault>
</LangCSS>
<LangJavascript Version="6"> <LangJavascript Version="6">
<SchemeDefault> <SchemeDefault>
<Comment Foreground="clBlue" Style="fsBold"/> <Comment Foreground="clBlue" Style="fsBold"/>

View File

@ -57,7 +57,7 @@ uses
// SynEdit Highlighters // SynEdit Highlighters
SynEditHighlighter, SynEditHighlighterFoldBase, SynHighlighterCPP, SynEditHighlighter, SynEditHighlighterFoldBase, SynHighlighterCPP,
SynHighlighterHTML, SynHighlighterJava, SynHighlighterLFM, SynHighlighterPas, SynHighlighterHTML, SynHighlighterJava, SynHighlighterLFM, SynHighlighterPas,
SynHighlighterPerl, SynHighlighterPHP, SynHighlighterSQL, SynHighlighterPerl, SynHighlighterPHP, SynHighlighterSQL, SynHighlighterCss,
SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterXML, SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterXML,
SynHighlighterJScript, SynHighlighterDiff, SynHighlighterBat, SynHighlighterJScript, SynHighlighterDiff, SynHighlighterBat,
SynHighlighterIni, SynHighlighterPo, SynHighlighterPike, SynPluginMultiCaret, SynHighlighterIni, SynHighlighterPo, SynHighlighterPike, SynPluginMultiCaret,
@ -430,6 +430,7 @@ const
(Count: 0; Info: nil), // python (Count: 0; Info: nil), // python
(Count: 0; Info: nil), // php (Count: 0; Info: nil), // php
(Count: 0; Info: nil), // sql (Count: 0; Info: nil), // sql
(Count: 0; Info: nil), // css
(Count: 0; Info: nil), // jscript (Count: 0; Info: nil), // jscript
(Count: 0; Info: nil), // Diff (Count: 0; Info: nil), // Diff
(Count: 0; Info: nil), // Ini (Count: 0; Info: nil), // Ini
@ -638,6 +639,7 @@ const
(Count: 0; HasMarkup: False; Info: nil), // python (Count: 0; HasMarkup: False; Info: nil), // python
(Count: 0; HasMarkup: False; Info: nil), // php (Count: 0; HasMarkup: False; Info: nil), // php
(Count: 0; HasMarkup: False; Info: nil), // sql (Count: 0; HasMarkup: False; Info: nil), // sql
(Count: 0; HasMarkup: False; Info: nil), // css
(Count: 0; HasMarkup: False; Info: nil), // jscript (Count: 0; HasMarkup: False; Info: nil), // jscript
(Count: 3; HasMarkup: False; Info: @EditorOptionsFoldInfoDiff[0]), // Diff (Count: 3; HasMarkup: False; Info: @EditorOptionsFoldInfoDiff[0]), // Diff
(Count: 0; HasMarkup: False; Info: nil), // Bat (Count: 0; HasMarkup: False; Info: nil), // Bat
@ -674,7 +676,7 @@ const
TCustomSynClass = TCustomSynClass =
(nil, nil, TIDESynFreePasSyn, TIDESynPasSyn, TSynLFMSyn, TSynXMLSyn, (nil, nil, TIDESynFreePasSyn, TIDESynPasSyn, TSynLFMSyn, TSynXMLSyn,
TSynHTMLSyn, TSynCPPSyn, TSynPerlSyn, TSynJavaSyn, TSynUNIXShellScriptSyn, TSynHTMLSyn, TSynCPPSyn, TSynPerlSyn, TSynJavaSyn, TSynUNIXShellScriptSyn,
TSynPythonSyn, TSynPHPSyn, TSynSQLSyn, TSynJScriptSyn, TSynDiffSyn, TSynPythonSyn, TSynPHPSyn, TSynSQLSyn,TSynCssSyn, TSynJScriptSyn, TSynDiffSyn,
TSynBatSyn, TSynIniSyn, TSynPoSyn, TSynPikeSyn); TSynBatSyn, TSynIniSyn, TSynPoSyn, TSynPikeSyn);
@ -695,6 +697,7 @@ const
comtPerl, // lshPython comtPerl, // lshPython
comtHTML, // lshPHP comtHTML, // lshPHP
comtCPP, // lshSQL comtCPP, // lshSQL
comtCPP, // lshCss
comtCPP, // lshJScript comtCPP, // lshJScript
comtNone, // Diff comtNone, // Diff
comtNone, // Bat comtNone, // Bat
@ -723,6 +726,10 @@ type
value fo style [fsBold] as defined in synhighlighterhtml.pp. value fo style [fsBold] as defined in synhighlighterhtml.pp.
} }
TEditOptLanguageInfo = class TEditOptLanguageInfo = class
private
MappedAttributes: TStringList; // map attributes to pascal
protected
procedure prepare(Syntax : TLazSyntaxHighlighter);virtual;
public public
SynClass: TCustomSynClass; SynClass: TCustomSynClass;
TheType: TLazSyntaxHighlighter; TheType: TLazSyntaxHighlighter;
@ -731,7 +738,7 @@ type
ColorScheme: String; ColorScheme: String;
SampleSource: String; SampleSource: String;
AddAttrSampleLines: array[TAdditionalHilightAttribute] of Integer; // first line = 1 AddAttrSampleLines: array[TAdditionalHilightAttribute] of Integer; // first line = 1
MappedAttributes: TStringList; // map attributes to pascal // MappedAttributes: TStringList; // map attributes to pascal
DefaultCommentType: TCommentType; DefaultCommentType: TCommentType;
CaretXY: TPoint; CaretXY: TPoint;
constructor Create; constructor Create;
@ -741,6 +748,15 @@ type
function SampleLineToAddAttr(Line: Integer): TAdditionalHilightAttribute; function SampleLineToAddAttr(Line: Integer): TAdditionalHilightAttribute;
end; end;
{ TEditOptLangCssInfo }
TEditOptLangCssInfo = class(tEditOptLanguageInfo)
protected
procedure prepare(Syntax : TLazSyntaxHighlighter);override;
function getSampleSource:string;
function getMappedAttributes: tStringList;
end;
{ TEditOptLangList } { TEditOptLangList }
TEditOptLangList = class(TList) TEditOptLangList = class(TList)
@ -1769,6 +1785,7 @@ const
lshPython, lshPython,
lshPHP, lshPHP,
lshSQL, lshSQL,
lshCSS,
lshJScript, lshJScript,
lshDiff, lshDiff,
lshBat, lshBat,
@ -2580,6 +2597,52 @@ begin
DefaultFileExtensions:=Extensions; DefaultFileExtensions:=Extensions;
end; end;
procedure TEditOptLanguageInfo.prepare(Syntax: TLazSyntaxHighlighter);
begin
TheType := Syntax;
DefaultCommentType := DefaultCommentTypes[TheType];
SynClass := LazSyntaxHighlighterClasses[TheType];
end;
{ TEditOptLangCssInfo }
procedure TEditOptLangCssInfo.prepare(Syntax: TLazSyntaxHighlighter);
begin
inherited Prepare(syntax);
SetBothFilextensions('css');
SampleSource := getSampleSource;
AddAttrSampleLines[ahaTextBlock] := 4;
CaretXY := Point(1,1);
MappedAttributes := getMappedAttributes;;
end;
function TEditOptLangCssInfo.getSampleSource: string;
begin
result :=
'.field :hover {'#10 +
' display:inline;'#10+
' border:10px;'#10+
' color: #555;'#10+
'/* comment */'#10+
'}'#10+#10;
end;
function TEditOptLangCssInfo.getMappedAttributes: tStringList;
begin
result:=tStringList.create;
with result do
begin
Add('Comment=Comment');
Add('Selector=Reserved_word');
Add('Identifier=Identifier');
Add('Space=Space');
Add('Symbol=Symbol');
Add('Number=Number');
Add('Key=Key');
Add('String=String');
end;
end;
{ TEditOptLangList } { TEditOptLangList }
function TEditOptLangList.GetInfos(Index: Integer): TEditOptLanguageInfo; function TEditOptLangList.GetInfos(Index: Integer): TEditOptLanguageInfo;
@ -2984,6 +3047,13 @@ begin
end; end;
Add(NewInfo); Add(NewInfo);
// create info for CSS
NewInfo := TEditOptLangCssInfo.Create;
NewInfo.Prepare(lshCss);
Add(NewInfo);
// create info for JScript // create info for JScript
NewInfo := TEditOptLanguageInfo.Create; NewInfo := TEditOptLanguageInfo.Create;
with NewInfo do with NewInfo do

Binary file not shown.