diff --git a/ide/editoroptions.pp b/ide/editoroptions.pp
index 5a16c295cd..5102c9ce1b 100644
--- a/ide/editoroptions.pp
+++ b/ide/editoroptions.pp
@@ -120,7 +120,8 @@ const
'', // ahaSpecialVisibleChars
'', // ahaTopInfoHint
'', '', '', // ahaIfDefBlockInactive, ahaIfDefBlockActive, ahaIfDefBlockTmpActive
- '', '', '' // ahaIfDefNodeInactive, ahaIfDefNodeActive, ahaIfDefNodeTmpActive
+ '', '', '', // ahaIfDefNodeInactive, ahaIfDefNodeActive, ahaIfDefNodeTmpActive
+ '', '', '', '' // ahaIdentComplWindow, ahaIdentComplWindowBorder, ahaIdentComplWindowSelection, ahaIdentComplWindowHighlight
);
ahaGroupMap: array[TAdditionalHilightAttribute] of TAhaGroupName = (
@@ -162,7 +163,12 @@ const
{ ahaIfDefBlockTmpActive } agnIfDef,
{ ahaIfDefNodeInactive } agnIfDef,
{ ahaIfDefNodeActive } agnIfDef,
- { ahaIfDefNodeTmpActive } agnIfDef
+ { ahaIfDefNodeTmpActive } agnIfDef,
+ { ahaIdentComplWindow } agnIdentComplWindow,
+ { ahaIdentComplWindowBorder } agnIdentComplWindow,
+ { ahaIdentComplWindowSelection } agnIdentComplWindow,
+ { ahaIdentComplWindowHighlight } agnIdentComplWindow
+
);
ahaSupportedFeatures: array[TAdditionalHilightAttribute] of TColorSchemeAttributeFeatures =
(
@@ -204,7 +210,11 @@ const
{ ahaIfDefBlockTmpActive }[hafBackColor, hafForeColor, hafFrameColor, hafAlpha, hafPrior, hafFrameStyle, hafFrameEdges, hafStyle, hafStyleMask],
{ ahaIfDefNodeInactive } [hafBackColor, hafForeColor, hafFrameColor, hafAlpha, hafPrior, hafFrameStyle, hafFrameEdges, hafStyle, hafStyleMask],
{ ahaIfDefNodeActive } [hafBackColor, hafForeColor, hafFrameColor, hafAlpha, hafPrior, hafFrameStyle, hafFrameEdges, hafStyle, hafStyleMask],
- { ahaIfDefNodeTmpActive } [hafBackColor, hafForeColor, hafFrameColor, hafAlpha, hafPrior, hafFrameStyle, hafFrameEdges, hafStyle, hafStyleMask]
+ { ahaIfDefNodeTmpActive } [hafBackColor, hafForeColor, hafFrameColor, hafAlpha, hafPrior, hafFrameStyle, hafFrameEdges, hafStyle, hafStyleMask],
+ { ahaIdentComplWindow } [hafBackColor, hafForeColor],
+ { ahaIdentComplWindowBorder } [hafForeColor],
+ { ahaIdentComplWindowSelection } [hafBackColor, hafForeColor],
+ { ahaIdentComplWindowHighlight } [hafForeColor]
);
@@ -2462,6 +2472,12 @@ begin
AdditionalHighlightAttributes[ahaIfDefNodeTmpActive] := dlgIfDefNodeTmpActive;
AdditionalHighlightGroupNames[agnIfDef] := dlgAddHiAttrGroupIfDef;
+ AdditionalHighlightAttributes[ahaIdentComplWindow] := dlgAddHiAttrDefaultWindow;
+ AdditionalHighlightAttributes[ahaIdentComplWindowBorder] := dlgAddHiAttrWindowBorder;
+ AdditionalHighlightAttributes[ahaIdentComplWindowSelection] := dlgBlockGroupOptions;
+ AdditionalHighlightAttributes[ahaIdentComplWindowHighlight] := dlgAddHiAttrHighlightPrefix;
+ AdditionalHighlightGroupNames[agnIdentComplWindow] := dlgIdentifierCompletion;
+
AdditionalHighlightGroupNames[agnDefault] := dlgAddHiAttrGroupDefault;
AdditionalHighlightGroupNames[agnText] := dlgAddHiAttrGroupText;
AdditionalHighlightGroupNames[agnLine] := dlgAddHiAttrGroupLine;
@@ -6392,9 +6408,16 @@ procedure TColorSchemeLanguage.ApplyTo(ASynEdit: TSynEdit);
if assigned(ASynEdit.Gutter.Parts.ByClass[aClass, 0]) then
SetMarkupColor(aha, ASynEdit.Gutter.Parts.ByClass[aClass, 0].MarkupInfo);
end;
+ function GetUsedAttr(aha: TAdditionalHilightAttribute): TColorSchemeAttribute;
+ begin
+ Result := AttributeByEnum[aha];
+ if Assigned(Result) and Result.IsUsingSchemeGlobals then
+ Result := Result.GetSchemeGlobal;
+ end;
var
Attri: TColorSchemeAttribute;
i: Integer;
+ IDESynEdit: TIDESynEditor;
begin
ASynEdit.BeginUpdate;
try
@@ -6413,19 +6436,13 @@ begin
aSynEdit.Font.Color := clBlack;
end;
- Attri := Attribute[AhaToStoredName(ahaGutter)];
- if Attri <> nil then begin
- if Attri.IsUsingSchemeGlobals then
- Attri := Attri.GetSchemeGlobal;
+ Attri := GetUsedAttr(ahaGutter);
+ if Attri <> nil then
aSynEdit.Gutter.Color := Attri.Background;
- end;
- Attri := Attribute[AhaToStoredName(ahaRightMargin)];
- if Attri <> nil then begin
- if Attri.IsUsingSchemeGlobals then
- Attri := Attri.GetSchemeGlobal;
+ Attri := GetUsedAttr(ahaRightMargin);
+ if Attri <> nil then
aSynEdit.RightEdgeColor := Attri.Foreground;
- end;
SetMarkupColor(ahaTextBlock, aSynEdit.SelectedColor);
SetMarkupColor(ahaIncrementalSearch, aSynEdit.IncrementColor);
@@ -6468,6 +6485,44 @@ begin
SetGutterColorByClass(ahaCodeFoldingTree, TSynGutterCodeFolding);
SetGutterColorByClass(ahaGutterSeparator, TSynGutterSeparator);
+ if ASynEdit is TIDESynEditor then
+ begin
+ IDESynEdit := TIDESynEditor(ASynEdit);
+
+ Attri := GetUsedAttr(ahaIdentComplWindow);
+ if Attri<>nil then
+ begin
+ IDESynEdit.MarkupIdentComplWindow.TextColor := Attri.Foreground;
+ IDESynEdit.MarkupIdentComplWindow.WindowColor:= Attri.Background;
+ end else
+ begin
+ IDESynEdit.MarkupIdentComplWindow.TextColor := clNone;
+ IDESynEdit.MarkupIdentComplWindow.WindowColor:= clNone;
+ end;
+
+ Attri := GetUsedAttr(ahaIdentComplWindowBorder);
+ if Attri<>nil then
+ IDESynEdit.MarkupIdentComplWindow.BorderColor:= Attri.Foreground
+ else
+ IDESynEdit.MarkupIdentComplWindow.BorderColor:= clNone;
+
+ Attri := GetUsedAttr(ahaIdentComplWindowHighlight);
+ if Attri<>nil then
+ IDESynEdit.MarkupIdentComplWindow.HighlightColor:= Attri.Foreground
+ else
+ IDESynEdit.MarkupIdentComplWindow.HighlightColor:= clNone;
+
+ Attri := GetUsedAttr(ahaIdentComplWindowSelection);
+ if Attri<>nil then
+ begin
+ IDESynEdit.MarkupIdentComplWindow.TextSelectedColor:= Attri.Foreground;
+ IDESynEdit.MarkupIdentComplWindow.BackgroundSelectedColor:= Attri.Background;
+ end else
+ begin
+ IDESynEdit.MarkupIdentComplWindow.TextSelectedColor := clNone;
+ IDESynEdit.MarkupIdentComplWindow.BackgroundSelectedColor:= clNone;
+ end;
+ end;
i := aSynEdit.PluginCount - 1;
while (i >= 0) and not(aSynEdit.Plugin[i] is TSynPluginTemplateEdit) do
diff --git a/ide/frames/editor_color_options.lfm b/ide/frames/editor_color_options.lfm
index c26732d7a7..d6f77bc3e1 100644
--- a/ide/frames/editor_color_options.lfm
+++ b/ide/frames/editor_color_options.lfm
@@ -30,7 +30,7 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
TabOrder = 1
object bvlAttributeSection: TDividerBevel
Left = 0
- Height = 17
+ Height = 15
Top = 0
Width = 640
Caption = 'bvlAttributeSection'
@@ -41,7 +41,7 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
object ToolBar1: TToolBar
Left = 3
Height = 24
- Top = 17
+ Top = 15
Width = 634
AutoSize = True
BorderSpacing.Left = 3
@@ -74,27 +74,27 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
Style = tbsCheck
end
object SetAttributeToDefaultButton: TToolButton
- Left = 249
+ Left = 245
Top = 0
OnClick = SetAttributeToDefaultButtonClick
ShowCaption = False
end
object ToolButton3: TToolButton
- Left = 239
+ Left = 237
+ Height = 22
Top = 0
- Width = 10
Caption = 'ToolButton3'
Style = tbsSeparator
end
object ToolButton1: TToolButton
Left = 123
+ Height = 22
Top = 0
- Width = 10
Caption = 'ToolButton1'
Style = tbsSeparator
end
object tbnColor: TToolButton
- Left = 133
+ Left = 131
Top = 0
AutoSize = True
Caption = 'tbnColor'
@@ -104,7 +104,7 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
Style = tbsCheck
end
object tbnPrior: TToolButton
- Left = 188
+ Left = 186
Top = 0
AutoSize = True
Caption = 'tbnPrior'
@@ -121,73 +121,231 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pnlElementAttributes
AnchorSideBottom.Side = asrBottom
- Height = 151
- Top = 41
+ Height = 153
+ Top = 39
Width = 640
Anchors = [akTop, akLeft, akRight, akBottom]
- ClientHeight = 151
+ ClientHeight = 153
ClientWidth = 640
TabOrder = 1
+ inherited ForeGroundLabel: TLabel
+ Top = 7
+ Width = 91
+ end
+ inherited BackGroundLabel: TLabel
+ Top = 32
+ Width = 93
+ end
inherited ForeGroundUseDefaultCheckBox: TCheckBox
AnchorSideLeft.Control = SynColorAttrEditor1
+ Height = 19
+ Width = 192
end
inherited ForegroundColorBox: TColorBox
AnchorSideTop.Control = SynColorAttrEditor1
AnchorSideRight.Control = SynColorAttrEditor1
+ Left = 204
+ Height = 22
Width = 200
end
inherited BackGroundColorBox: TColorBox
AnchorSideRight.Control = SynColorAttrEditor1
+ Left = 204
+ Height = 22
+ Top = 28
Width = 200
end
inherited BackGroundUseDefaultCheckBox: TCheckBox
AnchorSideLeft.Control = SynColorAttrEditor1
+ Height = 19
+ Top = 30
+ Width = 194
end
inherited FrameColorBox: TColorBox
AnchorSideRight.Control = SynColorAttrEditor1
+ Left = 204
+ Height = 22
+ Top = 53
Width = 200
end
inherited FrameColorUseDefaultCheckBox: TCheckBox
AnchorSideLeft.Control = SynColorAttrEditor1
+ Height = 19
+ Top = 55
+ Width = 191
end
inherited pnlUnderline: TPanel
AnchorSideLeft.Control = SynColorAttrEditor1
+ Height = 40
+ Top = 102
+ Width = 145
+ ClientHeight = 40
+ ClientWidth = 145
+ inherited TextUnderlineRadioPanel: TPanel
+ Height = 21
+ Top = 19
+ Width = 134
+ ClientHeight = 21
+ ClientWidth = 134
+ inherited TextUnderlineRadioOn: TRadioButton
+ Height = 19
+ Width = 36
+ end
+ inherited TextUnderlineRadioOff: TRadioButton
+ Left = 43
+ Height = 19
+ Width = 37
+ end
+ inherited TextUnderlineRadioInvert: TRadioButton
+ Left = 83
+ Height = 19
+ Width = 50
+ end
+ end
+ inherited TextUnderlineCheckBox: TCheckBox
+ Height = 19
+ Width = 145
+ end
+ end
+ inherited pnlBold: TPanel
+ Left = 157
+ Height = 40
+ Top = 102
+ Width = 134
+ ClientHeight = 40
+ ClientWidth = 134
+ inherited TextBoldRadioPanel: TPanel
+ Height = 21
+ Top = 19
+ Width = 134
+ ClientHeight = 21
+ ClientWidth = 134
+ inherited TextBoldRadioInvert: TRadioButton
+ Left = 83
+ Height = 19
+ Width = 50
+ end
+ inherited TextBoldRadioOn: TRadioButton
+ Height = 19
+ Width = 36
+ end
+ inherited TextBoldRadioOff: TRadioButton
+ Left = 43
+ Height = 19
+ Width = 37
+ end
+ end
+ inherited TextBoldCheckBox: TCheckBox
+ Height = 19
+ Width = 118
+ end
+ end
+ inherited pnlItalic: TPanel
+ Left = 297
+ Height = 40
+ Top = 102
+ Width = 134
+ ClientHeight = 40
+ ClientWidth = 134
+ inherited TextItalicRadioPanel: TPanel
+ Height = 21
+ Top = 19
+ Width = 134
+ ClientHeight = 21
+ ClientWidth = 134
+ inherited TextItalicRadioInvert: TRadioButton
+ Left = 83
+ Height = 19
+ Width = 50
+ end
+ inherited TextItalicRadioOn: TRadioButton
+ Height = 19
+ Width = 36
+ end
+ inherited TextItalicRadioOff: TRadioButton
+ Left = 43
+ Height = 19
+ Width = 37
+ end
+ end
+ inherited TextItalicCheckBox: TCheckBox
+ Height = 19
+ Width = 119
+ end
+ end
+ inherited FrameStyleBox: TComboBox
+ Left = 307
+ Height = 21
+ Top = 78
+ end
+ inherited FrameEdgesBox: TComboBox
+ Left = 204
+ Height = 21
+ Top = 78
+ end
+ inherited ColumnPosBevel: TPanel
+ Left = 204
+ Top = 145
end
inherited ForeAlphaLabel: TLabel
Left = 414
+ Top = 7
+ Width = 82
end
inherited BackAlphaLabel: TLabel
Left = 414
+ Top = 32
+ Width = 84
end
inherited FrameAlphaLabel: TLabel
Left = 414
+ Top = 57
+ Width = 92
end
inherited ForeAlphaSpin: TSpinEdit
Left = 502
+ Height = 23
+ Top = 3
end
inherited BackAlphaSpin: TSpinEdit
Left = 504
+ Height = 23
+ Top = 28
end
inherited FrameAlphaSpin: TSpinEdit
Left = 512
+ Height = 23
+ Top = 53
end
inherited ForePriorLabel: TLabel
Left = 567
+ Top = 7
+ Width = 76
end
inherited BackPriorLabel: TLabel
Left = 569
+ Top = 32
+ Width = 78
end
inherited FramePriorLabel: TLabel
Left = 577
+ Top = 57
+ Width = 86
end
inherited ForePriorSpin: TSpinEdit
Left = 649
+ Height = 23
+ Top = 3
end
inherited BackPriorSpin: TSpinEdit
Left = 653
+ Height = 23
+ Top = 28
end
inherited FramePriorSpin: TSpinEdit
Left = 669
+ Height = 23
+ Top = 53
end
end
object PriorityEditor: TPanel
@@ -199,21 +357,21 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
AnchorSideBottom.Control = pnlElementAttributes
AnchorSideBottom.Side = asrBottom
Left = 0
- Height = 151
- Top = 41
+ Height = 153
+ Top = 39
Width = 640
Anchors = [akTop, akLeft, akRight, akBottom]
- ClientHeight = 151
+ ClientHeight = 153
ClientWidth = 640
Constraints.MinHeight = 140
TabOrder = 2
object ForePriorPanel: TPanel
Left = 1
- Height = 149
+ Height = 151
Top = 1
Width = 170
Align = alLeft
- ClientHeight = 149
+ ClientHeight = 151
ClientWidth = 170
TabOrder = 0
object ForePriorLabel: TLabel
@@ -227,12 +385,11 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end
object ForePriorList: TTreeView
Left = 1
- Height = 108
+ Height = 102
Top = 16
Width = 168
Align = alClient
AutoExpand = True
- DefaultItemHeight = 18
ReadOnly = True
ScrollBars = ssAutoVertical
ShowButtons = False
@@ -248,21 +405,21 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end
object ForePriorValPanel: TPanel
Left = 1
- Height = 23
- Top = 125
+ Height = 31
+ Top = 119
Width = 168
Align = alBottom
AutoSize = True
BorderSpacing.Top = 1
BevelOuter = bvNone
- ClientHeight = 23
+ ClientHeight = 31
ClientWidth = 168
TabOrder = 1
object ForePriorEdit: TEdit
AnchorSideRight.Control = ForePriorUpDown
Left = 1
Height = 23
- Top = 1
+ Top = 0
Width = 147
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 3
@@ -278,26 +435,26 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
AnchorSideBottom.Control = ForePriorValPanel
AnchorSideBottom.Side = asrBottom
Left = 151
- Height = 23
+ Height = 31
Top = 0
Width = 17
Anchors = [akTop, akRight, akBottom]
Min = 0
+ OnClick = ForePriorUpDownClick
Position = 0
TabOrder = 1
Wrap = False
- OnClick = ForePriorUpDownClick
end
end
end
object BackPriorPanel: TPanel
Left = 177
- Height = 149
+ Height = 151
Top = 1
Width = 170
Align = alLeft
BorderSpacing.Left = 6
- ClientHeight = 149
+ ClientHeight = 151
ClientWidth = 170
TabOrder = 1
object BackPriorLabel: TLabel
@@ -311,12 +468,11 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end
object BackPriorList: TTreeView
Left = 1
- Height = 108
+ Height = 102
Top = 16
Width = 168
Align = alClient
AutoExpand = True
- DefaultItemHeight = 18
ReadOnly = True
ScrollBars = ssAutoVertical
ShowButtons = False
@@ -332,14 +488,14 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end
object BackPriorValPanel: TPanel
Left = 1
- Height = 23
- Top = 125
+ Height = 31
+ Top = 119
Width = 168
Align = alBottom
AutoSize = True
BorderSpacing.Top = 1
BevelOuter = bvNone
- ClientHeight = 23
+ ClientHeight = 31
ClientWidth = 168
TabOrder = 1
object BackPriorEdit: TEdit
@@ -362,26 +518,26 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
AnchorSideBottom.Control = BackPriorValPanel
AnchorSideBottom.Side = asrBottom
Left = 151
- Height = 23
+ Height = 31
Top = 0
Width = 17
Anchors = [akTop, akRight, akBottom]
Min = 0
+ OnClick = ForePriorUpDownClick
Position = 0
TabOrder = 1
Wrap = False
- OnClick = ForePriorUpDownClick
end
end
end
object FramePriorPanel: TPanel
Left = 353
- Height = 149
+ Height = 151
Top = 1
Width = 170
Align = alLeft
BorderSpacing.Left = 6
- ClientHeight = 149
+ ClientHeight = 151
ClientWidth = 170
TabOrder = 2
object FramePriorLabel: TLabel
@@ -395,12 +551,11 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end
object FramePriorList: TTreeView
Left = 1
- Height = 108
+ Height = 102
Top = 16
Width = 168
Align = alClient
AutoExpand = True
- DefaultItemHeight = 18
ReadOnly = True
ScrollBars = ssAutoVertical
ShowButtons = False
@@ -416,14 +571,14 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end
object FramePriorValPanel: TPanel
Left = 1
- Height = 23
- Top = 125
+ Height = 31
+ Top = 119
Width = 168
Align = alBottom
AutoSize = True
BorderSpacing.Top = 1
BevelOuter = bvNone
- ClientHeight = 23
+ ClientHeight = 31
ClientWidth = 168
TabOrder = 1
object FramePriorEdit: TEdit
@@ -446,15 +601,15 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
AnchorSideBottom.Control = FramePriorValPanel
AnchorSideBottom.Side = asrBottom
Left = 151
- Height = 23
+ Height = 31
Top = 0
Width = 17
Anchors = [akTop, akRight, akBottom]
Min = 0
+ OnClick = ForePriorUpDownClick
Position = 0
TabOrder = 1
Wrap = False
- OnClick = ForePriorUpDownClick
end
end
end
@@ -504,7 +659,6 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
BorderSpacing.Top = 6
BorderSpacing.Right = 1
Constraints.MinWidth = 150
- DefaultItemHeight = 18
ReadOnly = True
ScrollBars = ssAutoBoth
ShowButtons = False
@@ -947,6 +1101,7 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
ShiftMask = [ssShift, ssAlt, ssCtrl]
Command = emcMouseLink
end>
+ MouseTextActions = <>
MouseSelActions = <
item
ClickDir = cdDown
@@ -956,7 +1111,6 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
'ColorPreview'
)
VisibleSpecialChars = [vscSpace, vscTabAtLast]
- SelectedColor.FrameEdges = sfeAround
SelectedColor.BackPriority = 50
SelectedColor.ForePriority = 50
SelectedColor.FramePriority = 50
@@ -964,23 +1118,17 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
SelectedColor.ItalicPriority = 50
SelectedColor.UnderlinePriority = 50
SelectedColor.StrikeOutPriority = 50
- IncrementColor.FrameEdges = sfeAround
- HighlightAllColor.FrameEdges = sfeAround
BracketHighlightStyle = sbhsBoth
BracketMatchColor.Background = clNone
BracketMatchColor.Foreground = clNone
- BracketMatchColor.FrameEdges = sfeAround
BracketMatchColor.Style = [fsBold]
FoldedCodeColor.Background = clNone
FoldedCodeColor.Foreground = clGray
FoldedCodeColor.FrameColor = clGray
- FoldedCodeColor.FrameEdges = sfeAround
MouseLinkColor.Background = clNone
MouseLinkColor.Foreground = clBlue
- MouseLinkColor.FrameEdges = sfeAround
LineHighlightColor.Background = clNone
LineHighlightColor.Foreground = clNone
- LineHighlightColor.FrameEdges = sfeAround
inline TSynGutterPartList
object TSynGutterMarks
Width = 24
@@ -991,7 +1139,6 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
MouseActions = <>
MarkupInfo.Background = clBtnFace
MarkupInfo.Foreground = clNone
- MarkupInfo.FrameEdges = sfeAround
DigitCount = 2
ShowOnlyLineNumbersMultiplesOf = 1
ZeroStart = False
@@ -1008,7 +1155,6 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
MouseActions = <>
MarkupInfo.Background = clWhite
MarkupInfo.Foreground = clGray
- MarkupInfo.FrameEdges = sfeAround
end
object TSynGutterCodeFolding
MouseActions = <
@@ -1039,7 +1185,6 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end>
MarkupInfo.Background = clNone
MarkupInfo.Foreground = clGray
- MarkupInfo.FrameEdges = sfeAround
MouseActionsExpanded = <
item
ClickCount = ccAny
@@ -1092,8 +1237,8 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end
object ToolButton2: TToolButton
Left = 24
+ Height = 22
Top = 0
- Width = 5
Caption = 'ToolButton2'
Style = tbsDivider
end
@@ -1105,7 +1250,7 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
Style = tbsButtonDrop
end
object ColorSchemeButton: TToolButton
- Left = 64
+ Left = 62
Top = 0
DropdownMenu = ColorSchemeMenu
OnClick = ColorSchemeButtonClick
@@ -1113,7 +1258,7 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
end
object FileExtensionsComboBox: TComboBox
AnchorSideTop.Side = asrBottom
- Left = 99
+ Left = 95
Height = 23
Top = 0
Width = 139
@@ -1130,20 +1275,20 @@ object EditorColorOptionsFrame: TEditorColorOptionsFrame
TabOrder = 0
end
object ToolButton5: TToolButton
- Left = 238
+ Left = 234
+ Height = 22
Top = 0
- Width = 5
Caption = 'ToolButton5'
Style = tbsDivider
end
object btnExport: TToolButton
- Left = 243
+ Left = 239
Top = 0
OnClick = btnExportClick
ShowCaption = False
end
object SetAllAttributesToDefaultButton: TToolButton
- Left = 266
+ Left = 262
Top = 0
OnClick = SetAllAttributesToDefaultButtonClick
ShowCaption = False
diff --git a/ide/lazarus.lpi b/ide/lazarus.lpi
index 59b5e9a11d..7b9d0a9318 100644
--- a/ide/lazarus.lpi
+++ b/ide/lazarus.lpi
@@ -620,6 +620,7 @@
+
@@ -776,6 +777,7 @@
+
@@ -786,11 +788,15 @@
+
+
+
+
@@ -1418,13 +1424,6 @@
-
-
-
-
-
-
-
diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas
index c9ca0aad86..1780e21087 100644
--- a/ide/lazarusidestrconsts.pas
+++ b/ide/lazarusidestrconsts.pas
@@ -2102,6 +2102,9 @@ resourcestring
dlgAddHiAttrSyncroEditOther = 'Other Cells';
dlgAddHiAttrSyncroEditArea = 'Selected Area';
dlgAddHiAttrGutterSeparator = 'Gutter Separator';
+ dlgAddHiAttrDefaultWindow = 'Default Text / Window';
+ dlgAddHiAttrWindowBorder = 'Window border';
+ dlgAddHiAttrHighlightPrefix = 'Highlight prefix';
dlgAddHiSpecialVisibleChars = 'Visualized Special Chars';
dlgTopInfoHint = 'Current Class/Proc Hint';
dlgIfDefBlockInactive = 'Inactive $IFDEF code';
diff --git a/ide/sourceeditor.pp b/ide/sourceeditor.pp
index c48cd5e2d8..1c9b328955 100644
--- a/ide/sourceeditor.pp
+++ b/ide/sourceeditor.pp
@@ -110,6 +110,13 @@ type
hcmSoftKeepEOL // Soft Center (distance to screen edge) Caret, but keep EOL at right border
);
+ TSourceEditCompletionForm = class(TSynCompletionForm)
+ private
+ FTextHighLightColor: TColor;
+ public
+ property TextHighLightColor: TColor read FTextHighLightColor write FTextHighLightColor;
+ end;
+
{ TSourceEditCompletion }
TSourceEditCompletion=class(TSynCompletion)
@@ -117,10 +124,13 @@ type
FIdentCompletionJumpToError: boolean;
ccSelection: String;
// colors for the completion form (popup form, e.g. word completion)
- FActiveEditDefaultFGColor: TColor;
- FActiveEditDefaultBGColor: TColor;
- FActiveEditSelectedFGColor: TColor;
- FActiveEditSelectedBGColor: TColor;
+
+ FActiveEditBackgroundColor: TColor;
+ FActiveEditBackgroundSelectedColor: TColor;
+ FActiveEditBorderColor: TColor;
+ FActiveEditTextColor: TColor;
+ FActiveEditTextSelectedColor: TColor;
+ FActiveEditTextHighLightColor: TColor;
procedure ccExecute(Sender: TObject);
procedure ccCancel(Sender: TObject);
@@ -145,6 +155,7 @@ type
protected
CurrentCompletionType: TCompletionType;
function Manager: TSourceEditorManager;
+ function GetCompletionFormClass: TSynBaseCompletionFormClass; override;
public
constructor Create(AOwner: TComponent); override;
property IdentCompletionJumpToError: Boolean
@@ -2098,6 +2109,11 @@ begin
EnvironmentOptions.Desktop.CompletionWindowHeight := TheForm.NbLinesInWindow;
end;
+function TSourceEditCompletion.GetCompletionFormClass: TSynBaseCompletionFormClass;
+begin
+ Result := TSourceEditCompletionForm;
+end;
+
procedure TSourceEditCompletion.ccExecute(Sender: TObject);
// init completion form
// called by OnExecute just before showing
@@ -2106,15 +2122,19 @@ var
Prefix: String;
I: Integer;
NewStr: String;
+ SynEditor: TIDESynEditor;
Begin
{$IFDEF VerboseIDECompletionBox}
debugln(['TSourceEditCompletion.ccExecute START']);
{$ENDIF}
TheForm.Font := Editor.Font;
- FActiveEditDefaultFGColor := Editor.Font.Color;
- FActiveEditDefaultBGColor := Editor.Color;
- FActiveEditSelectedFGColor := TSynEdit(Editor).SelectedColor.Foreground;
- FActiveEditSelectedBGColor := TSynEdit(Editor).SelectedColor.Background;
+
+ FActiveEditTextColor := Editor.Font.Color;
+ FActiveEditBorderColor := RGBToColor(100, 100, 100);
+ FActiveEditBackgroundColor := Editor.Color;
+ FActiveEditTextSelectedColor := TSynEdit(Editor).SelectedColor.Foreground;
+ FActiveEditBackgroundSelectedColor := TSynEdit(Editor).SelectedColor.Background;
+ FActiveEditTextHighLightColor := RGBToColor(200, 13, 13);
if Editor.Highlighter<>nil
then begin
@@ -2122,13 +2142,30 @@ Begin
if IdentifierAttribute<>nil
then begin
if IdentifierAttribute.ForeGround<>clNone then
- FActiveEditDefaultFGColor:=IdentifierAttribute.ForeGround;
+ FActiveEditTextColor:=IdentifierAttribute.ForeGround;
if IdentifierAttribute.BackGround<>clNone then
- FActiveEditDefaultBGColor:=IdentifierAttribute.BackGround;
+ FActiveEditBackgroundColor:=IdentifierAttribute.BackGround;
end;
end;
end;
+ if Editor is TIDESynEditor then
+ begin
+ SynEditor := TIDESynEditor(Editor);
+ if SynEditor.MarkupIdentComplWindow.TextColor<>clNone then
+ FActiveEditTextColor := SynEditor.MarkupIdentComplWindow.TextColor;
+ if SynEditor.MarkupIdentComplWindow.BorderColor<>clNone then
+ FActiveEditBorderColor := SynEditor.MarkupIdentComplWindow.BorderColor;
+ if SynEditor.MarkupIdentComplWindow.WindowColor<>clNone then
+ FActiveEditBackgroundColor := SynEditor.MarkupIdentComplWindow.WindowColor;
+ if SynEditor.MarkupIdentComplWindow.WindowColor<>clNone then
+ FActiveEditTextSelectedColor := SynEditor.MarkupIdentComplWindow.TextSelectedColor;
+ if SynEditor.MarkupIdentComplWindow.WindowColor<>clNone then
+ FActiveEditBackgroundSelectedColor := SynEditor.MarkupIdentComplWindow.BackgroundSelectedColor;
+ if SynEditor.MarkupIdentComplWindow.HighlightColor<>clNone then
+ FActiveEditTextHighLightColor := SynEditor.MarkupIdentComplWindow.HighlightColor;
+ end;
+
S := TStringList.Create;
try
Prefix := CurrentString;
@@ -2170,11 +2207,13 @@ Begin
CurrentString:=Prefix;
// set colors
if (Editor<>nil) and (TheForm<>nil) then begin
- with TheForm do begin
- BackgroundColor := FActiveEditDefaultBGColor;
- clSelect := FActiveEditSelectedBGColor;
- TextColor := FActiveEditDefaultFGColor;
- TextSelectedColor := FActiveEditSelectedFGColor;
+ with TheForm as TSourceEditCompletionForm do begin
+ DrawBorderColor := FActiveEditBorderColor;
+ BackgroundColor := FActiveEditBackgroundColor;
+ clSelect := FActiveEditBackgroundSelectedColor;
+ TextColor := FActiveEditTextColor;
+ TextSelectedColor := FActiveEditTextSelectedColor;
+ TextHighLightColor:= FActiveEditTextHighLightColor;
//debugln('TSourceEditCompletion.ccExecute A Color=',DbgS(Color),
// ' clSelect=',DbgS(clSelect),
// ' TextColor=',DbgS(TextColor),
@@ -2366,8 +2405,11 @@ begin
end;
Font.Style:=[];
end;
- Colors.FontColor := FActiveEditDefaultFGColor;
- Colors.SelectedFontColor := FActiveEditSelectedFGColor;
+ Colors.BackgroundColor := FActiveEditBackgroundColor;
+ Colors.BackgroundSelectedColor := FActiveEditBackgroundSelectedColor;
+ Colors.TextColor := FActiveEditTextColor;
+ Colors.TextSelectedColor := FActiveEditTextSelectedColor;
+ Colors.TextHighLightColor := FActiveEditTextHighLightColor;
MaxX:=TheForm.ClientWidth;
t:=CurrentCompletionType;
if Manager.ActiveCompletionPlugin<>nil then
@@ -2400,10 +2442,6 @@ begin
Font.Name:=EditorOpts.EditorFont;
end;
Font.Style:=[];
- if not ItemSelected then
- Font.Color := FActiveEditDefaultFGColor
- else
- Font.Color := FActiveEditSelectedFGColor;
end;
MaxX := Screen.Width-20;
t:=CurrentCompletionType;
diff --git a/ide/sourceeditprocs.pas b/ide/sourceeditprocs.pas
index 6bcd02c927..b03ca4adf1 100644
--- a/ide/sourceeditprocs.pas
+++ b/ide/sourceeditprocs.pas
@@ -98,8 +98,11 @@ type
);
TPaintCompletionItemColors = record
- FontColor: TColor;
- SelectedFontColor: TColor;
+ BackgroundColor: TColor;
+ BackgroundSelectedColor: TColor;
+ TextColor: TColor;
+ TextSelectedColor: TColor;
+ TextHighLightColor: TColor;
end;
PPaintCompletionItemColors = ^TPaintCompletionItemColors;
@@ -273,13 +276,13 @@ begin
begin
if ItemSelected then
begin
- ForegroundColor := Colors^.SelectedFontColor;
+ ForegroundColor := Colors^.TextSelectedColor;
AllowFontColor := ForegroundColor=clNone;
if ForegroundColor=clNone then
- ForegroundColor := Colors^.FontColor;
+ ForegroundColor := Colors^.TextColor;
end else
begin
- ForegroundColor := Colors^.FontColor;
+ ForegroundColor := Colors^.TextColor;
AllowFontColor := True;
end;
end else
@@ -519,7 +522,8 @@ begin
Prefix := Copy(s, PrefixPosition, Length(aCompletion.CurrentString));
if PrefixPosition > 0 then
PrefixPosition := ACanvas.TextWidth(Copy(s, 1, PrefixPosition-1));
- SetFontColor(RGBToColor(200, 13, 13));
+ if Colors<>nil then
+ SetFontColor(ColorToRGB(Colors^.TextHighLightColor));
ACanvas.TextOut(x+PrefixPosition+1,y,Prefix);
end;
inc(x,ACanvas.TextWidth(s)+1);
diff --git a/ide/sourcemarks.pas b/ide/sourcemarks.pas
index c93498d601..dadc124e77 100644
--- a/ide/sourcemarks.pas
+++ b/ide/sourcemarks.pas
@@ -63,12 +63,13 @@ type
ahaGutter, ahaRightMargin, ahaSpecialVisibleChars,
ahaTopInfoHint,
ahaIfDefBlockInactive, ahaIfDefBlockActive, ahaIfDefBlockTmpActive,
- ahaIfDefNodeInactive, ahaIfDefNodeActive, ahaIfDefNodeTmpActive
+ ahaIfDefNodeInactive, ahaIfDefNodeActive, ahaIfDefNodeTmpActive,
+ ahaIdentComplWindow, ahaIdentComplWindowBorder, ahaIdentComplWindowSelection, ahaIdentComplWindowHighlight
);
TAhaGroupName = (
agnDefault, agnLanguage, agnText, agnLine, agnGutter, agnTemplateMode, agnSyncronMode,
- agnIfDef
+ agnIfDef, agnIdentComplWindow
);
TSourceEditorBase = class;
diff --git a/ide/sourcesyneditor.pas b/ide/sourcesyneditor.pas
index 7659dfe65b..9fe9176a3c 100644
--- a/ide/sourcesyneditor.pas
+++ b/ide/sourcesyneditor.pas
@@ -212,11 +212,29 @@ type
property IfDefTree;
end;
+ TSynMarkupIdentComplWindow = class // don't inherit from TSynEditMarkup, no regular markup
+ private
+ FBackgroundSelectedColor: TColor;
+ FBorderColor: TColor;
+ FHighlightColor: TColor;
+ FTextColor: TColor;
+ FTextSelectedColor: TColor;
+ FWindowColor: TColor;
+ public
+ property WindowColor: TColor read FWindowColor write FWindowColor;
+ property TextColor: TColor read FTextColor write FTextColor;
+ property BorderColor: TColor read FBorderColor write FBorderColor;
+ property HighlightColor: TColor read FHighlightColor write FHighlightColor;
+ property TextSelectedColor: TColor read FTextSelectedColor write FTextSelectedColor;
+ property BackgroundSelectedColor: TColor read FBackgroundSelectedColor write FBackgroundSelectedColor;
+ end;
+
{ TIDESynEditor }
TIDESynEditor = class(TSynEdit)
private
FCaretStamp: Int64;
+ FMarkupIdentComplWindow: TSynMarkupIdentComplWindow;
FShowTopInfo: boolean;
FTopInfoNestList: TLazSynEditNestedFoldsList;
FSyncroEdit: TSynPluginSyncroEdit;
@@ -281,6 +299,7 @@ type
procedure SetIfdefNodeState(ALinePos, AstartPos: Integer; AState: TSynMarkupIfdefNodeState);
property OnIfdefNodeStateRequest: TSynMarkupIfdefStateRequest read FOnIfdefNodeStateRequest write FOnIfdefNodeStateRequest;
property MarkupIfDef: TSourceSynEditMarkupIfDef read FMarkupIfDef;
+ property MarkupIdentComplWindow: TSynMarkupIdentComplWindow read FMarkupIdentComplWindow;
property IsInMultiCaretMainExecution: Boolean read GetIsInMultiCaretMainExecution;
property IsInMultiCaretRepeatExecution: Boolean read GetIsInMultiCaretRepeatExecution;
property OnMultiCaretBeforeCommand: TSynMultiCaretBeforeCommand read GetOnMultiCaretBeforeCommand write SetOnMultiCaretBeforeCommand;
@@ -1683,6 +1702,8 @@ begin
//FMarkupIfDef.OnNodeStateRequest := @DoIfDefNodeStateRequest;
TSynEditMarkupManager(MarkupMgr).AddMarkUp(FMarkupIfDef);
+ FMarkupIdentComplWindow := TSynMarkupIdentComplWindow.Create;
+
FPaintArea := TSourceLazSynSurfaceManager.Create(Self, FPaintArea);
GetCaretObj.AddChangeHandler(@SrcSynCaretChanged);
@@ -1729,6 +1750,7 @@ begin
FreeAndNil(FExtraMarkupMgr);
FreeAndNil(FTopInfoMarkup);
FreeAndNil(FTopInfoNestList);
+ FreeAndNil(FMarkupIdentComplWindow);
inherited Destroy;
end;