mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 20:39:14 +02:00
IDE, SourceEditor: added css highlight. issue #030519 patch by Darek Mazur
git-svn-id: trunk@58543 -
This commit is contained in:
parent
440d65a279
commit
77a94a7cd1
@ -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',
|
||||||
|
@ -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"/>
|
||||||
|
@ -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.
Loading…
Reference in New Issue
Block a user