mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 07:59:28 +02:00
fixed synedit: assigning text with #0, TSynPasSyn and TSynPHPSyn for #0, added PHP highlighter to IDE
git-svn-id: trunk@7539 -
This commit is contained in:
parent
7e441f98c9
commit
4b77b6b726
@ -2104,8 +2104,6 @@ var
|
|||||||
bStartDrag: boolean;
|
bStartDrag: boolean;
|
||||||
{$IFDEF SYN_LAZARUS}
|
{$IFDEF SYN_LAZARUS}
|
||||||
PrimarySelText: string;
|
PrimarySelText: string;
|
||||||
StartOfBlock: TPoint;
|
|
||||||
EndOfBlock: TPoint;
|
|
||||||
LogCaretXY: TPoint;
|
LogCaretXY: TPoint;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
begin
|
begin
|
||||||
|
@ -144,6 +144,9 @@ type
|
|||||||
{$IFDEF SYN_COMPILER_3_UP} override; {$ENDIF} //mh 2000-10-18
|
{$IFDEF SYN_COMPILER_3_UP} override; {$ENDIF} //mh 2000-10-18
|
||||||
procedure SetTabWidth(Value: integer); //mh 2000-10-19
|
procedure SetTabWidth(Value: integer); //mh 2000-10-19
|
||||||
procedure SetUpdateState(Updating: Boolean); override;
|
procedure SetUpdateState(Updating: Boolean); override;
|
||||||
|
{$IFDEF SYN_LAZARUS}
|
||||||
|
procedure SetTextStr(const Value: string); override;
|
||||||
|
{$ENDIF}
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -319,8 +322,13 @@ end;
|
|||||||
type
|
type
|
||||||
TSynEditFileReader = class(TSynEditFiler)
|
TSynEditFileReader = class(TSynEditFiler)
|
||||||
protected
|
protected
|
||||||
fFilePos: {$IFDEF SYN_LAZARUS}TStreamSeekType{$ELSE}Cardinal{$ENDIF};
|
{$IFDEF SYN_LAZARUS}
|
||||||
fFileSize: {$IFDEF SYN_LAZARUS}TStreamSeekType{$ELSE}Cardinal{$ENDIF};
|
fFilePos: TStreamSeekType;
|
||||||
|
fFileSize: TStreamSeekType;
|
||||||
|
{$ELSE}
|
||||||
|
fFilePos: Cardinal;
|
||||||
|
fFileSize: Cardinal;
|
||||||
|
{$ENDIF}
|
||||||
procedure FillBuffer;
|
procedure FillBuffer;
|
||||||
public
|
public
|
||||||
constructor Create(const FileName: string);
|
constructor Create(const FileName: string);
|
||||||
@ -1012,7 +1020,38 @@ begin
|
|||||||
fOnChange(Self);
|
fOnChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{end} //mh 2000-10-10
|
|
||||||
|
{$IFDEF SYN_LAZARUS}
|
||||||
|
procedure TSynEditStringList.SetTextStr(const Value: string);
|
||||||
|
var
|
||||||
|
StartPos: Integer;
|
||||||
|
p: Integer;
|
||||||
|
Len: Integer;
|
||||||
|
begin
|
||||||
|
BeginUpdate;
|
||||||
|
try
|
||||||
|
Clear;
|
||||||
|
p:=1;
|
||||||
|
StartPos:=p;
|
||||||
|
Len:=length(Value);
|
||||||
|
while p<=Len do begin
|
||||||
|
if not (Value[p] in [#10,#13]) then begin
|
||||||
|
inc(p);
|
||||||
|
end else begin
|
||||||
|
Add(copy(Value,StartPos,p-StartPos));
|
||||||
|
inc(p);
|
||||||
|
if (p<=Len) and (Value[p] in [#10,#13]) and (Value[p-1]<>Value[p]) then
|
||||||
|
inc(p);
|
||||||
|
StartPos:=p;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if StartPos<=Len then
|
||||||
|
Add(copy(Value,StartPos,Len-StartPos+1));
|
||||||
|
finally
|
||||||
|
EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{ TSynEditUndoList }
|
{ TSynEditUndoList }
|
||||||
|
|
||||||
|
@ -1281,6 +1281,9 @@ end;
|
|||||||
procedure TSynPasSyn.NullProc;
|
procedure TSynPasSyn.NullProc;
|
||||||
begin
|
begin
|
||||||
fTokenID := tkNull;
|
fTokenID := tkNull;
|
||||||
|
{$IFDEF SYN_LAZARUS}
|
||||||
|
if Run<=fLineLen then inc(Run);
|
||||||
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynPasSyn.NumberProc;
|
procedure TSynPasSyn.NumberProc;
|
||||||
@ -1496,7 +1499,7 @@ end;
|
|||||||
|
|
||||||
function TSynPasSyn.GetEol: Boolean;
|
function TSynPasSyn.GetEol: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := fTokenID = tkNull;
|
Result := (fTokenID = tkNull) {$IFDEF SYN_LAZARUS}and (Run > fLineLen){$ENDIF};
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TSynPasSyn.GetToken: string;
|
function TSynPasSyn.GetToken: string;
|
||||||
|
@ -83,6 +83,9 @@ type
|
|||||||
private
|
private
|
||||||
fRange: TRangeState;
|
fRange: TRangeState;
|
||||||
fLine: PChar;
|
fLine: PChar;
|
||||||
|
{$IFDEF SYN_LAZARUS}
|
||||||
|
fLineLen: integer;
|
||||||
|
{$ENDIF}
|
||||||
fLineNumber: Integer;
|
fLineNumber: Integer;
|
||||||
fProcTable: array[#0..#255] of TProcTableProc;
|
fProcTable: array[#0..#255] of TProcTableProc;
|
||||||
Run: LongInt;
|
Run: LongInt;
|
||||||
@ -694,6 +697,9 @@ end;
|
|||||||
procedure TSynPHPSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber: Integer);
|
procedure TSynPHPSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber: Integer);
|
||||||
begin
|
begin
|
||||||
fLine := PChar(NewValue);
|
fLine := PChar(NewValue);
|
||||||
|
{$IFDEF SYN_LAZARUS}
|
||||||
|
fLineLen := length(NewValue);
|
||||||
|
{$ENDIF}
|
||||||
Run := 0;
|
Run := 0;
|
||||||
fLineNumber := LineNumber;
|
fLineNumber := LineNumber;
|
||||||
Next;
|
Next;
|
||||||
@ -903,6 +909,10 @@ end;
|
|||||||
procedure TSynPHPSyn.NullProc;
|
procedure TSynPHPSyn.NullProc;
|
||||||
begin
|
begin
|
||||||
fTokenID := tkNull;
|
fTokenID := tkNull;
|
||||||
|
{$IFDEF SYN_LAZARUS}
|
||||||
|
if Run<fLineLen then
|
||||||
|
inc(Run);
|
||||||
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynPHPSyn.NumberProc;
|
procedure TSynPHPSyn.NumberProc;
|
||||||
@ -1348,7 +1358,7 @@ end;
|
|||||||
|
|
||||||
function TSynPHPSyn.GetEol: Boolean;
|
function TSynPHPSyn.GetEol: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := fTokenID = tkNull;
|
Result := (fTokenID = tkNull) and (Run>=fLineLen);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TSynPHPSyn.GetRange: Pointer;
|
function TSynPHPSyn.GetRange: Pointer;
|
||||||
|
@ -40,7 +40,7 @@ uses
|
|||||||
SynEdit, SynEditHighlighter, SynEditAutoComplete, SynEditKeyCmds,
|
SynEdit, SynEditHighlighter, SynEditAutoComplete, SynEditKeyCmds,
|
||||||
SynHighlighterPas, SynHighlighterHTML, SynHighlighterCPP, SynHighlighterXML,
|
SynHighlighterPas, SynHighlighterHTML, SynHighlighterCPP, SynHighlighterXML,
|
||||||
SynHighlighterLFM, SynHighlighterPerl, SynHighlighterJava,
|
SynHighlighterLFM, SynHighlighterPerl, SynHighlighterJava,
|
||||||
SynHighlighterPython, SynHighlighterUNIXShellScript,
|
SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterPHP,
|
||||||
Laz_XMLCfg, IDEWindowIntf,
|
Laz_XMLCfg, IDEWindowIntf,
|
||||||
IDECommands, CodeTemplateDialog, KeyMapping, InputHistory, IDEOptionDefs,
|
IDECommands, CodeTemplateDialog, KeyMapping, InputHistory, IDEOptionDefs,
|
||||||
LazarusIDEStrConsts, KeymapSchemeDlg;
|
LazarusIDEStrConsts, KeymapSchemeDlg;
|
||||||
@ -54,7 +54,7 @@ type
|
|||||||
|
|
||||||
TLazSyntaxHighlighter =
|
TLazSyntaxHighlighter =
|
||||||
(lshNone, lshText, lshFreePascal, lshDelphi, lshLFM, lshXML, lshHTML,
|
(lshNone, lshText, lshFreePascal, lshDelphi, lshLFM, lshXML, lshHTML,
|
||||||
lshCPP, lshPerl, lshJava, lshBash, lshPython);
|
lshCPP, lshPerl, lshJava, lshBash, lshPython, lshPHP);
|
||||||
|
|
||||||
TAdditionalHilightAttribute = (ahaNone, ahaTextBlock, ahaExecutionPoint,
|
TAdditionalHilightAttribute = (ahaNone, ahaTextBlock, ahaExecutionPoint,
|
||||||
ahaEnabledBreakpoint, ahaDisabledBreakpoint,
|
ahaEnabledBreakpoint, ahaDisabledBreakpoint,
|
||||||
@ -79,7 +79,7 @@ const
|
|||||||
LazSyntaxHighlighterClasses: array[TLazSyntaxHighlighter] of TCustomSynClass =
|
LazSyntaxHighlighterClasses: array[TLazSyntaxHighlighter] of TCustomSynClass =
|
||||||
(nil, nil, TSynPasSyn, TSynPasSyn, TSynLFMSyn, TSynXMLSyn, TSynHTMLSyn,
|
(nil, nil, TSynPasSyn, TSynPasSyn, TSynLFMSyn, TSynXMLSyn, TSynHTMLSyn,
|
||||||
TSynCPPSyn, TSynPerlSyn, TSynJavaSyn, TSynUNIXShellScriptSyn,
|
TSynCPPSyn, TSynPerlSyn, TSynJavaSyn, TSynUNIXShellScriptSyn,
|
||||||
TSynPythonSyn);
|
TSynPythonSyn, TSynPHPSyn);
|
||||||
|
|
||||||
|
|
||||||
{ Comments }
|
{ Comments }
|
||||||
@ -96,7 +96,8 @@ const
|
|||||||
comtPerl, // lshPerl
|
comtPerl, // lshPerl
|
||||||
comtCPP, // lshJava
|
comtCPP, // lshJava
|
||||||
comtPerl, // lshBash
|
comtPerl, // lshBash
|
||||||
comtPerl // lshPython
|
comtPerl, // lshPython
|
||||||
|
comtHTML // lshPHP
|
||||||
);
|
);
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -521,7 +522,8 @@ const
|
|||||||
'Perl',
|
'Perl',
|
||||||
'Java',
|
'Java',
|
||||||
'Bash',
|
'Bash',
|
||||||
'Python'
|
'Python',
|
||||||
|
'PHP'
|
||||||
);
|
);
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -555,7 +557,8 @@ const
|
|||||||
lshPerl,
|
lshPerl,
|
||||||
lshJava,
|
lshJava,
|
||||||
lshBash,
|
lshBash,
|
||||||
lshPython
|
lshPython,
|
||||||
|
lshPHP
|
||||||
);
|
);
|
||||||
|
|
||||||
DefaultColorScheme = 'Default';
|
DefaultColorScheme = 'Default';
|
||||||
@ -1046,6 +1049,34 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
Add(NewInfo);
|
Add(NewInfo);
|
||||||
|
|
||||||
|
// create info for PHP
|
||||||
|
NewInfo:=TEditOptLanguageInfo.Create;
|
||||||
|
with NewInfo do begin
|
||||||
|
TheType:=lshPHP;
|
||||||
|
DefaultCommentType:=DefaultCommentTypes[TheType];
|
||||||
|
SynClass:=LazSyntaxHighlighterClasses[TheType];
|
||||||
|
FileExtensions:='php;php3;php4';
|
||||||
|
SampleSource:=
|
||||||
|
'<?if ( ($HTTP_HOST == "www.lazarus.com") || ($HTTP_HOST == "lazarus.com") ){'#10
|
||||||
|
+' HEADER("Location:http://www.lazarus.freepascal.org/\n\n");'#10
|
||||||
|
+'};'#10
|
||||||
|
+'?>'#10
|
||||||
|
+#10;
|
||||||
|
AddAttrSampleLines[ahaTextBlock]:=8;
|
||||||
|
MappedAttributes:=TStringList.Create;
|
||||||
|
with MappedAttributes do begin
|
||||||
|
Add('Element=Reserved_word');
|
||||||
|
Add('Comment=Comment');
|
||||||
|
Add('Variable=Identifier');
|
||||||
|
Add('Space=Space');
|
||||||
|
Add('Symbol=Symbol');
|
||||||
|
Add('Number=Number');
|
||||||
|
Add('Key=Key');
|
||||||
|
Add('String=String');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Add(NewInfo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TEditOptLangList.Destroy;
|
destructor TEditOptLangList.Destroy;
|
||||||
|
Loading…
Reference in New Issue
Block a user