mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-04 17:18:16 +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;
|
||||
FDict := TSynSearchDictionary.Create;
|
||||
FDict.Add('{$if', 1);
|
||||
FDict.Add('{$ifc', 1);
|
||||
FDict.Add('{$ifdef', 1);
|
||||
FDict.Add('{$ifndef', 1);
|
||||
FDict.Add('{$ifopt', 1);
|
||||
FDict.Add('{$endif', 3);
|
||||
|
||||
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;
|
||||
|
||||
destructor TSynRefCountedDict.Destroy;
|
||||
@ -2069,6 +2078,7 @@ begin
|
||||
assert(sfaClose in fn.FoldAction, 'sfaOpen in fn.FoldAction');
|
||||
NType := idnEndIf;
|
||||
end;
|
||||
// 4: // ElseIf
|
||||
else
|
||||
begin
|
||||
assert(false, 'not found ifdef');
|
||||
@ -2714,7 +2724,7 @@ begin
|
||||
FOuterLines := FIfDefTree.CreateOpeningList;
|
||||
|
||||
MarkupInfo.Clear;
|
||||
MarkupInfo.Background := clGray;
|
||||
MarkupInfo.Background := clLtGray;
|
||||
end;
|
||||
|
||||
destructor TSynEditMarkupIfDef.Destroy;
|
||||
|
@ -1387,6 +1387,14 @@ DebugLn('--------');FTestTree.DebugPrint(true);
|
||||
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,
|
||||
{$ENDIF}
|
||||
Classes, SysUtils, Controls, LCLProc, LCLType, Graphics, Menus, math, LazarusIDEStrConsts,
|
||||
SynEdit, SynEditMiscClasses, SynGutter, SynGutterBase, SynEditMarks,
|
||||
SynEditTypes, SynGutterLineNumber, SynGutterCodeFolding, SynGutterMarks, SynGutterChanges,
|
||||
SynEdit, SynEditMiscClasses, SynGutter, SynGutterBase, SynEditMarks, SynEditTypes,
|
||||
SynGutterLineNumber, SynGutterCodeFolding, SynGutterMarks, SynGutterChanges,
|
||||
SynGutterLineOverview, SynEditMarkup, SynEditMarkupGutterMark, SynEditMarkupSpecialLine,
|
||||
SynEditTextBuffer, SynEditFoldedView, SynTextDrawer, SynEditTextBase, LazSynEditText,
|
||||
SynPluginTemplateEdit, SynPluginSyncroEdit, LazSynTextArea, SynEditHighlighter,
|
||||
SynEditHighlighterFoldBase, SynHighlighterPas, SynEditMarkupHighAll, SynEditKeyCmds;
|
||||
SynEditHighlighterFoldBase, SynHighlighterPas, SynEditMarkupHighAll, SynEditKeyCmds,
|
||||
SynEditMarkupIfDef;
|
||||
|
||||
type
|
||||
|
||||
@ -207,6 +208,9 @@ type
|
||||
FSyncroEdit: TSynPluginSyncroEdit;
|
||||
FTemplateEdit: TSynPluginTemplateEdit;
|
||||
FMarkupForGutterMark: TSynEditMarkupGutterMark;
|
||||
{$IFDEF WithSynMarkupIfDef}
|
||||
FMarkupIfDef: TSynEditMarkupIfDef;
|
||||
{$ENDIF}
|
||||
FTopInfoDisplay: TSourceLazSynTopInfoView;
|
||||
FSrcSynCaretChangedLock: boolean;
|
||||
FExtraMarkupLine: TSynEditMarkupSpecialLine;
|
||||
@ -1510,6 +1514,13 @@ begin
|
||||
|
||||
inherited SetHighlighter(Value);
|
||||
|
||||
{$IFDEF WithSynMarkupIfDef}
|
||||
if Highlighter is TSynPasSyn then
|
||||
FMarkupIfDef.Highlighter := TSynPasSyn(Highlighter)
|
||||
else
|
||||
FMarkupIfDef.Highlighter := nil;
|
||||
{$ENDIF}
|
||||
|
||||
if FUserWordsList = nil then
|
||||
exit;
|
||||
if Highlighter <> nil then
|
||||
@ -1526,9 +1537,16 @@ begin
|
||||
FUserWordsList := TList.Create;
|
||||
FTemplateEdit:=TSynPluginTemplateEdit.Create(Self);
|
||||
FSyncroEdit := TSynPluginSyncroEdit.Create(Self);
|
||||
|
||||
FMarkupForGutterMark := TSynEditMarkupGutterMark.Create(Self, FWordBreaker);
|
||||
TSynEditMarkupManager(MarkupMgr).AddMarkUp(FMarkupForGutterMark);
|
||||
|
||||
{$IFDEF WithSynMarkupIfDef}
|
||||
FMarkupIfDef := TSynEditMarkupIfDef.Create(Self);
|
||||
FMarkupIfDef.FoldView := TSynEditFoldedView(FoldedTextBuffer);
|
||||
TSynEditMarkupManager(MarkupMgr).AddMarkUp(FMarkupIfDef);
|
||||
{$ENDIF}
|
||||
|
||||
FPaintArea := TSourceLazSynSurfaceManager.Create(Self, FPaintArea);
|
||||
GetCaretObj.AddChangeHandler({$IFDEF FPC}@{$ENDIF}SrcSynCaretChanged);
|
||||
|
||||
@ -1540,6 +1558,8 @@ begin
|
||||
|
||||
FTopInfoMarkup := TSynSelectedColor.Create;
|
||||
FTopInfoMarkup.Clear;
|
||||
|
||||
// Markup for top info hint
|
||||
FExtraMarkupLine := TSynEditMarkupSpecialLine.Create(Self);
|
||||
FExtraMarkupLine.OnSpecialLineMarkup := @GetTopInfoMarkupForLine;
|
||||
FExtraMarkupMgr := TSynEditMarkupManager.Create(Self);
|
||||
|
Loading…
Reference in New Issue
Block a user