mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-08 05:58:14 +02:00
SynEdit: Starting on Ifdef Markup
git-svn-id: trunk@41050 -
This commit is contained in:
parent
d1c3754024
commit
9d378cba7a
@ -529,11 +529,20 @@ begin
|
|||||||
inherited Create;
|
inherited Create;
|
||||||
FDict := TSynSearchDictionary.Create;
|
FDict := TSynSearchDictionary.Create;
|
||||||
FDict.Add('{$if', 1);
|
FDict.Add('{$if', 1);
|
||||||
|
FDict.Add('{$ifc', 1);
|
||||||
FDict.Add('{$ifdef', 1);
|
FDict.Add('{$ifdef', 1);
|
||||||
FDict.Add('{$ifndef', 1);
|
FDict.Add('{$ifndef', 1);
|
||||||
FDict.Add('{$ifopt', 1);
|
FDict.Add('{$ifopt', 1);
|
||||||
FDict.Add('{$endif', 3);
|
|
||||||
FDict.Add('{$else', 2);
|
FDict.Add('{$else', 2);
|
||||||
|
FDict.Add('{$elsec', 2);
|
||||||
|
|
||||||
|
//FDict.Add('{$elseif', 4);
|
||||||
|
//FDict.Add('{$elifc', 4);
|
||||||
|
|
||||||
|
FDict.Add('{$endif', 3);
|
||||||
|
FDict.Add('{$ifend', 3);
|
||||||
|
FDict.Add('{$endc', 3);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TSynRefCountedDict.Destroy;
|
destructor TSynRefCountedDict.Destroy;
|
||||||
@ -2069,6 +2078,7 @@ begin
|
|||||||
assert(sfaClose in fn.FoldAction, 'sfaOpen in fn.FoldAction');
|
assert(sfaClose in fn.FoldAction, 'sfaOpen in fn.FoldAction');
|
||||||
NType := idnEndIf;
|
NType := idnEndIf;
|
||||||
end;
|
end;
|
||||||
|
// 4: // ElseIf
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
assert(false, 'not found ifdef');
|
assert(false, 'not found ifdef');
|
||||||
@ -2714,7 +2724,7 @@ begin
|
|||||||
FOuterLines := FIfDefTree.CreateOpeningList;
|
FOuterLines := FIfDefTree.CreateOpeningList;
|
||||||
|
|
||||||
MarkupInfo.Clear;
|
MarkupInfo.Clear;
|
||||||
MarkupInfo.Background := clGray;
|
MarkupInfo.Background := clLtGray;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TSynEditMarkupIfDef.Destroy;
|
destructor TSynEditMarkupIfDef.Destroy;
|
||||||
|
@ -1387,6 +1387,14 @@ DebugLn('--------');FTestTree.DebugPrint(true);
|
|||||||
CheckNodes(n, 4, [ ExpN( 1,11, idnIfdef, idnDisabled), ExpN(13,21, idnEndIf, idnDisabled ) ]);
|
CheckNodes(n, 4, [ ExpN( 1,11, idnIfdef, idnDisabled), ExpN(13,21, idnEndIf, idnDisabled ) ]);
|
||||||
|
|
||||||
|
|
||||||
|
FNodeStateResponses.Clear;
|
||||||
|
FNodeStateRequests.Clear;
|
||||||
|
FTestTree.SetNodeState(2,1, idnNotInCode);
|
||||||
|
DebugLn('--------');FTestTree.DebugPrint(true);
|
||||||
|
AssertEquals(n + 'Got NO reqest for 2/1' , '', FNodeStateRequests.Values['2/1']);
|
||||||
|
AssertEquals(n + 'Got NO reqest for 4/1' , '', FNodeStateRequests.Values['4/1']);
|
||||||
|
CheckNodes(n, 2, [ ExpN( 1,11, idnIfdef, idnNotInCode), ExpN(13,21, idnEndIf ) ]);
|
||||||
|
CheckNodes(n, 4, [ ExpN( 1,11, idnIfdef, idnDisabled), ExpN(13,21, idnEndIf, idnDisabled ) ]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,12 +47,13 @@ uses
|
|||||||
LazSynIMM,
|
LazSynIMM,
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
Classes, SysUtils, Controls, LCLProc, LCLType, Graphics, Menus, math, LazarusIDEStrConsts,
|
Classes, SysUtils, Controls, LCLProc, LCLType, Graphics, Menus, math, LazarusIDEStrConsts,
|
||||||
SynEdit, SynEditMiscClasses, SynGutter, SynGutterBase, SynEditMarks,
|
SynEdit, SynEditMiscClasses, SynGutter, SynGutterBase, SynEditMarks, SynEditTypes,
|
||||||
SynEditTypes, SynGutterLineNumber, SynGutterCodeFolding, SynGutterMarks, SynGutterChanges,
|
SynGutterLineNumber, SynGutterCodeFolding, SynGutterMarks, SynGutterChanges,
|
||||||
SynGutterLineOverview, SynEditMarkup, SynEditMarkupGutterMark, SynEditMarkupSpecialLine,
|
SynGutterLineOverview, SynEditMarkup, SynEditMarkupGutterMark, SynEditMarkupSpecialLine,
|
||||||
SynEditTextBuffer, SynEditFoldedView, SynTextDrawer, SynEditTextBase, LazSynEditText,
|
SynEditTextBuffer, SynEditFoldedView, SynTextDrawer, SynEditTextBase, LazSynEditText,
|
||||||
SynPluginTemplateEdit, SynPluginSyncroEdit, LazSynTextArea, SynEditHighlighter,
|
SynPluginTemplateEdit, SynPluginSyncroEdit, LazSynTextArea, SynEditHighlighter,
|
||||||
SynEditHighlighterFoldBase, SynHighlighterPas, SynEditMarkupHighAll, SynEditKeyCmds;
|
SynEditHighlighterFoldBase, SynHighlighterPas, SynEditMarkupHighAll, SynEditKeyCmds,
|
||||||
|
SynEditMarkupIfDef;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -207,6 +208,9 @@ type
|
|||||||
FSyncroEdit: TSynPluginSyncroEdit;
|
FSyncroEdit: TSynPluginSyncroEdit;
|
||||||
FTemplateEdit: TSynPluginTemplateEdit;
|
FTemplateEdit: TSynPluginTemplateEdit;
|
||||||
FMarkupForGutterMark: TSynEditMarkupGutterMark;
|
FMarkupForGutterMark: TSynEditMarkupGutterMark;
|
||||||
|
{$IFDEF WithSynMarkupIfDef}
|
||||||
|
FMarkupIfDef: TSynEditMarkupIfDef;
|
||||||
|
{$ENDIF}
|
||||||
FTopInfoDisplay: TSourceLazSynTopInfoView;
|
FTopInfoDisplay: TSourceLazSynTopInfoView;
|
||||||
FSrcSynCaretChangedLock: boolean;
|
FSrcSynCaretChangedLock: boolean;
|
||||||
FExtraMarkupLine: TSynEditMarkupSpecialLine;
|
FExtraMarkupLine: TSynEditMarkupSpecialLine;
|
||||||
@ -1510,6 +1514,13 @@ begin
|
|||||||
|
|
||||||
inherited SetHighlighter(Value);
|
inherited SetHighlighter(Value);
|
||||||
|
|
||||||
|
{$IFDEF WithSynMarkupIfDef}
|
||||||
|
if Highlighter is TSynPasSyn then
|
||||||
|
FMarkupIfDef.Highlighter := TSynPasSyn(Highlighter)
|
||||||
|
else
|
||||||
|
FMarkupIfDef.Highlighter := nil;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
if FUserWordsList = nil then
|
if FUserWordsList = nil then
|
||||||
exit;
|
exit;
|
||||||
if Highlighter <> nil then
|
if Highlighter <> nil then
|
||||||
@ -1526,9 +1537,16 @@ begin
|
|||||||
FUserWordsList := TList.Create;
|
FUserWordsList := TList.Create;
|
||||||
FTemplateEdit:=TSynPluginTemplateEdit.Create(Self);
|
FTemplateEdit:=TSynPluginTemplateEdit.Create(Self);
|
||||||
FSyncroEdit := TSynPluginSyncroEdit.Create(Self);
|
FSyncroEdit := TSynPluginSyncroEdit.Create(Self);
|
||||||
|
|
||||||
FMarkupForGutterMark := TSynEditMarkupGutterMark.Create(Self, FWordBreaker);
|
FMarkupForGutterMark := TSynEditMarkupGutterMark.Create(Self, FWordBreaker);
|
||||||
TSynEditMarkupManager(MarkupMgr).AddMarkUp(FMarkupForGutterMark);
|
TSynEditMarkupManager(MarkupMgr).AddMarkUp(FMarkupForGutterMark);
|
||||||
|
|
||||||
|
{$IFDEF WithSynMarkupIfDef}
|
||||||
|
FMarkupIfDef := TSynEditMarkupIfDef.Create(Self);
|
||||||
|
FMarkupIfDef.FoldView := TSynEditFoldedView(FoldedTextBuffer);
|
||||||
|
TSynEditMarkupManager(MarkupMgr).AddMarkUp(FMarkupIfDef);
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
FPaintArea := TSourceLazSynSurfaceManager.Create(Self, FPaintArea);
|
FPaintArea := TSourceLazSynSurfaceManager.Create(Self, FPaintArea);
|
||||||
GetCaretObj.AddChangeHandler({$IFDEF FPC}@{$ENDIF}SrcSynCaretChanged);
|
GetCaretObj.AddChangeHandler({$IFDEF FPC}@{$ENDIF}SrcSynCaretChanged);
|
||||||
|
|
||||||
@ -1540,6 +1558,8 @@ begin
|
|||||||
|
|
||||||
FTopInfoMarkup := TSynSelectedColor.Create;
|
FTopInfoMarkup := TSynSelectedColor.Create;
|
||||||
FTopInfoMarkup.Clear;
|
FTopInfoMarkup.Clear;
|
||||||
|
|
||||||
|
// Markup for top info hint
|
||||||
FExtraMarkupLine := TSynEditMarkupSpecialLine.Create(Self);
|
FExtraMarkupLine := TSynEditMarkupSpecialLine.Create(Self);
|
||||||
FExtraMarkupLine.OnSpecialLineMarkup := @GetTopInfoMarkupForLine;
|
FExtraMarkupLine.OnSpecialLineMarkup := @GetTopInfoMarkupForLine;
|
||||||
FExtraMarkupMgr := TSynEditMarkupManager.Create(Self);
|
FExtraMarkupMgr := TSynEditMarkupManager.Create(Self);
|
||||||
|
Loading…
Reference in New Issue
Block a user