IDE: auto show the param hint for functions. Patch by David Zimmer

git-svn-id: trunk@44464 -
This commit is contained in:
martin 2014-03-18 12:50:04 +00:00
parent c0924d71a4
commit dd27f42211
6 changed files with 73 additions and 39 deletions

View File

@ -46,6 +46,7 @@ Darius Blaszijk
David Guadagnini David Guadagnini
David Jenkins David Jenkins
David Pethes David Pethes
David Zimmer
Dean Zobec Dean Zobec
Denis Golovan Denis Golovan
Denis Volodarsky Denis Volodarsky

View File

@ -1357,6 +1357,7 @@ type
FDbgHintAutoTypeCastClass: Boolean; FDbgHintAutoTypeCastClass: Boolean;
fCodeTemplateFileName: String; fCodeTemplateFileName: String;
fCTemplIndentToTokenStart: Boolean; fCTemplIndentToTokenStart: Boolean;
fAutoDisplayFuncPrototypes: Boolean;
// Code Folding // Code Folding
FUseCodeFolding: Boolean; FUseCodeFolding: Boolean;
@ -1536,6 +1537,9 @@ type
read fAutoToolTipExprEval write fAutoToolTipExprEval default True; // debugger hints read fAutoToolTipExprEval write fAutoToolTipExprEval default True; // debugger hints
property AutoToolTipSymbTools: Boolean property AutoToolTipSymbTools: Boolean
read fAutoToolTipSymbTools write fAutoToolTipSymbTools default True; // declaration hints read fAutoToolTipSymbTools write fAutoToolTipSymbTools default True; // declaration hints
property AutoDisplayFunctionPrototypes: Boolean
read fAutoDisplayFuncPrototypes write fAutoDisplayFuncPrototypes default True;
published published
property DbgHintAutoTypeCastClass: Boolean property DbgHintAutoTypeCastClass: Boolean
read FDbgHintAutoTypeCastClass write FDbgHintAutoTypeCastClass default True; // declaration hints read FDbgHintAutoTypeCastClass write FDbgHintAutoTypeCastClass default True; // declaration hints
@ -4414,6 +4418,7 @@ begin
// Code Tools options // Code Tools options
FCompletionLongLineHintType := DefaultCompletionLongLineHintType; FCompletionLongLineHintType := DefaultCompletionLongLineHintType;
FAutoDisplayFuncPrototypes := True;
// Code folding // Code folding
FReverseFoldPopUpOrder := True; FReverseFoldPopUpOrder := True;
@ -4646,6 +4651,9 @@ begin
fAutoBlockCompletion := fAutoBlockCompletion :=
XMLConfig.GetValue( XMLConfig.GetValue(
'EditorOptions/CodeTools/AutoBlockCompletion', True); 'EditorOptions/CodeTools/AutoBlockCompletion', True);
fAutoDisplayFuncPrototypes :=
XMLConfig.GetValue(
'EditorOptions/CodeTools/AutoDisplayFuncPrototypes', True);
fAutoCodeParameters := fAutoCodeParameters :=
XMLConfig.GetValue('EditorOptions/CodeTools/AutoCodeParameters', True); XMLConfig.GetValue('EditorOptions/CodeTools/AutoCodeParameters', True);
fAutoToolTipExprEval := fAutoToolTipExprEval :=
@ -4829,6 +4837,8 @@ begin
// Code Tools options // Code Tools options
XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoBlockCompletion' XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoBlockCompletion'
, fAutoBlockCompletion, True); , fAutoBlockCompletion, True);
XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoDisplayFuncPrototypes'
, fAutoDisplayFuncPrototypes, True);
XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoCodeParameters' XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoCodeParameters'
, fAutoCodeParameters, True); , fAutoCodeParameters, True);
XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoToolTipExprEval' XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoToolTipExprEval'

View File

@ -1,27 +1,30 @@
inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame object EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
Left = 0
Height = 492 Height = 492
Top = 0
Width = 634 Width = 634
HorzScrollBar.Page = 634 HorzScrollBar.Page = 634
VertScrollBar.Page = 492 VertScrollBar.Page = 492
AutoScroll = True AutoScroll = True
ClientHeight = 492 ClientHeight = 492
ClientWidth = 634 ClientWidth = 634
TabOrder = 0
Visible = False Visible = False
DesignLeft = 263 DesignLeft = 263
DesignTop = 222 DesignTop = 222
object AutoDelayLabel: TLabel[0] object AutoDelayLabel: TLabel
AnchorSideLeft.Control = AutoHintAndCompletionDelayLabel AnchorSideLeft.Control = AutoHintAndCompletionDelayLabel
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AutoHintAndCompletionDelayLabel AnchorSideTop.Control = AutoHintAndCompletionDelayLabel
Left = 218 Left = 217
Height = 16 Height = 15
Top = 134 Top = 156
Width = 84 Width = 83
BorderSpacing.Left = 20 BorderSpacing.Left = 20
Caption = 'AutoDelayLabel' Caption = 'AutoDelayLabel'
ParentColor = False ParentColor = False
end end
object ToolTipBevel: TBevel[1] object ToolTipBevel: TBevel
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoCompleteBlockCheckBox AnchorSideTop.Control = AutoCompleteBlockCheckBox
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
@ -35,7 +38,7 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
BorderSpacing.Top = 6 BorderSpacing.Top = 6
BorderSpacing.Bottom = 6 BorderSpacing.Bottom = 6
end end
object AutoRemoveEmptyMethodsOnSave: TCheckBox[2] object AutoRemoveEmptyMethodsOnSave: TCheckBox
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner AnchorSideTop.Control = Owner
Left = 6 Left = 6
@ -47,20 +50,20 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
Caption = 'AutoRemoveEmptyMethodsOnSave' Caption = 'AutoRemoveEmptyMethodsOnSave'
TabOrder = 0 TabOrder = 0
end end
object AutoToolTipSymbToolsCheckBox: TCheckBox[3] object AutoToolTipSymbToolsCheckBox: TCheckBox
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = ToolTipBevel AnchorSideTop.Control = AutoDisplayFuncProtoCheckBox
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 19 Height = 19
Top = 65 Top = 87
Width = 198 Width = 198
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'AutoToolTipSymbToolsCheckBox' Caption = 'AutoToolTipSymbToolsCheckBox'
TabOrder = 1 TabOrder = 1
end end
object AutoCompleteBlockCheckBox: TCheckBox[4] object AutoCompleteBlockCheckBox: TCheckBox
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoRemoveEmptyMethodsOnSave AnchorSideTop.Control = AutoRemoveEmptyMethodsOnSave
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
@ -73,20 +76,20 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
Caption = 'AutoCompleteBlockCheckBox' Caption = 'AutoCompleteBlockCheckBox'
TabOrder = 2 TabOrder = 2
end end
object AutoToolTipExprEvalCheckBox: TCheckBox[5] object AutoToolTipExprEvalCheckBox: TCheckBox
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoToolTipSymbToolsCheckBox AnchorSideTop.Control = AutoToolTipSymbToolsCheckBox
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 19 Height = 19
Top = 90 Top = 112
Width = 182 Width = 182
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'AutoToolTipExprEvalCheckBox' Caption = 'AutoToolTipExprEvalCheckBox'
TabOrder = 3 TabOrder = 3
end end
object AutoDelayTrackBar: TTrackBar[6] object AutoDelayTrackBar: TTrackBar
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoHintAndCompletionDelayLabel AnchorSideTop.Control = AutoHintAndCompletionDelayLabel
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
@ -94,7 +97,7 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 30 Height = 30
Top = 151 Top = 172
Width = 622 Width = 622
Frequency = 250 Frequency = 250
Max = 4000 Max = 4000
@ -108,20 +111,20 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
BorderSpacing.Right = 6 BorderSpacing.Right = 6
TabOrder = 4 TabOrder = 4
end end
object AutoHintAndCompletionDelayLabel: TLabel[7] object AutoHintAndCompletionDelayLabel: TLabel
AnchorSideLeft.Control = ToolTipBevel AnchorSideLeft.Control = ToolTipBevel
AnchorSideTop.Control = DbgToolTipAutoCastClass AnchorSideTop.Control = DbgToolTipAutoCastClass
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 16 Height = 15
Top = 134 Top = 156
Width = 192 Width = 191
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'AutoHintAndCompletionDelayLabel' Caption = 'AutoHintAndCompletionDelayLabel'
ParentColor = False ParentColor = False
end end
object CompletionDropDownHintTrackBar: TTrackBar[8] object CompletionDropDownHintTrackBar: TTrackBar
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = CompletionDropDownLabel AnchorSideTop.Control = CompletionDropDownLabel
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
@ -129,7 +132,7 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 30 Height = 30
Top = 204 Top = 224
Width = 622 Width = 622
Frequency = 250 Frequency = 250
Max = 4000 Max = 4000
@ -142,32 +145,32 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
BorderSpacing.Right = 6 BorderSpacing.Right = 6
TabOrder = 5 TabOrder = 5
end end
object CompletionDropDownLabel: TLabel[9] object CompletionDropDownLabel: TLabel
AnchorSideLeft.Control = ToolTipBevel AnchorSideLeft.Control = ToolTipBevel
AnchorSideTop.Control = AutoDelayTrackBar AnchorSideTop.Control = AutoDelayTrackBar
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 16 Height = 15
Top = 187 Top = 208
Width = 149 Width = 148
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'CompletionDropDownLabel' Caption = 'CompletionDropDownLabel'
ParentColor = False ParentColor = False
end end
object CompletionDropDownDelayLabel: TLabel[10] object CompletionDropDownDelayLabel: TLabel
AnchorSideLeft.Control = CompletionDropDownLabel AnchorSideLeft.Control = CompletionDropDownLabel
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CompletionDropDownLabel AnchorSideTop.Control = CompletionDropDownLabel
Left = 175 Left = 174
Height = 16 Height = 15
Top = 187 Top = 208
Width = 178 Width = 177
BorderSpacing.Left = 20 BorderSpacing.Left = 20
Caption = 'CompletionDropDownDelayLabel' Caption = 'CompletionDropDownDelayLabel'
ParentColor = False ParentColor = False
end end
object CompletionDropDownHint: TComboBox[11] object CompletionDropDownHint: TComboBox
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = CompletionDropDownHintTrackBar AnchorSideTop.Control = CompletionDropDownHintTrackBar
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
@ -175,7 +178,7 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 6 Left = 6
Height = 23 Height = 23
Top = 236 Top = 256
Width = 220 Width = 220
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 2 BorderSpacing.Top = 2
@ -183,29 +186,41 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
Style = csDropDownList Style = csDropDownList
TabOrder = 6 TabOrder = 6
end end
object CompletionDropDownHintLabel: TLabel[12] object CompletionDropDownHintLabel: TLabel
AnchorSideLeft.Control = CompletionDropDownHint AnchorSideLeft.Control = CompletionDropDownHint
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CompletionDropDownHint AnchorSideTop.Control = CompletionDropDownHint
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 232 Left = 232
Height = 16 Height = 15
Top = 239 Top = 260
Width = 172 Width = 171
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'CompletionDropDownHintLabel' Caption = 'CompletionDropDownHintLabel'
ParentColor = False ParentColor = False
end end
object DbgToolTipAutoCastClass: TCheckBox[13] object DbgToolTipAutoCastClass: TCheckBox
AnchorSideLeft.Control = AutoToolTipExprEvalCheckBox AnchorSideLeft.Control = AutoToolTipExprEvalCheckBox
AnchorSideTop.Control = AutoToolTipExprEvalCheckBox AnchorSideTop.Control = AutoToolTipExprEvalCheckBox
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 26 Left = 26
Height = 19 Height = 19
Top = 109 Top = 131
Width = 159 Width = 159
BorderSpacing.Left = 20 BorderSpacing.Left = 20
Caption = 'DbgToolTipAutoCastClass' Caption = 'DbgToolTipAutoCastClass'
TabOrder = 7 TabOrder = 7
end end
object AutoDisplayFuncProtoCheckBox: TCheckBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = ToolTipBevel
Left = 6
Height = 19
Top = 62
Width = 191
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'AutoDisplayFuncProtoCheckBox'
TabOrder = 8
end
end end

View File

@ -36,6 +36,7 @@ type
TEditorCodetoolsOptionsFrame = class(TAbstractIDEOptionsEditor) TEditorCodetoolsOptionsFrame = class(TAbstractIDEOptionsEditor)
AutoCompleteBlockCheckBox: TCheckBox; AutoCompleteBlockCheckBox: TCheckBox;
AutoDelayLabel: TLabel; AutoDelayLabel: TLabel;
AutoDisplayFuncProtoCheckBox: TCheckBox;
DbgToolTipAutoCastClass: TCheckBox; DbgToolTipAutoCastClass: TCheckBox;
CompletionDropDownHintLabel: TLabel; CompletionDropDownHintLabel: TLabel;
CompletionDropDownHint: TComboBox; CompletionDropDownHint: TComboBox;
@ -83,6 +84,7 @@ begin
AutoToolTipExprEvalCheckBox.Caption := lisShowValueHintsWhileDebugging; AutoToolTipExprEvalCheckBox.Caption := lisShowValueHintsWhileDebugging;
DbgToolTipAutoCastClass.Caption := lisDebugHintAutoTypeCastClass; DbgToolTipAutoCastClass.Caption := lisDebugHintAutoTypeCastClass;
AutoCompleteBlockCheckBox.Caption := dlgEdCompleteBlocks; AutoCompleteBlockCheckBox.Caption := dlgEdCompleteBlocks;
AutoDisplayFuncProtoCheckBox.Caption := dlgAutoDisplayFuncProto;
AutoHintAndCompletionDelayLabel.Caption:=lisDelayForHintsAndCompletionBox; AutoHintAndCompletionDelayLabel.Caption:=lisDelayForHintsAndCompletionBox;
CompletionDropDownLabel.Caption := lisDelayForCompletionLongLineHint; CompletionDropDownLabel.Caption := lisDelayForCompletionLongLineHint;
@ -104,6 +106,7 @@ begin
DbgToolTipAutoCastClass.Checked := DbgHintAutoTypeCastClass; DbgToolTipAutoCastClass.Checked := DbgHintAutoTypeCastClass;
AutoDelayTrackBar.Position := AutoDelayInMSec; AutoDelayTrackBar.Position := AutoDelayInMSec;
AutoRemoveEmptyMethodsOnSave.Checked := AutoRemoveEmptyMethods; AutoRemoveEmptyMethodsOnSave.Checked := AutoRemoveEmptyMethods;
AutoDisplayFuncProtoCheckBox.Checked := AutoDisplayFunctionPrototypes;
CompletionDropDownHintTrackBar.Position := CompletionLongLineHintInMSec; CompletionDropDownHintTrackBar.Position := CompletionLongLineHintInMSec;
CompletionDropDownHint.ItemIndex := ord(CompletionLongLineHintType); CompletionDropDownHint.ItemIndex := ord(CompletionLongLineHintType);
@ -122,6 +125,7 @@ begin
DbgHintAutoTypeCastClass := DbgToolTipAutoCastClass.Checked; DbgHintAutoTypeCastClass := DbgToolTipAutoCastClass.Checked;
AutoDelayInMSec := AutoDelayTrackBar.Position; AutoDelayInMSec := AutoDelayTrackBar.Position;
AutoRemoveEmptyMethods := AutoRemoveEmptyMethodsOnSave.Checked; AutoRemoveEmptyMethods := AutoRemoveEmptyMethodsOnSave.Checked;
AutoDisplayFunctionPrototypes := AutoDisplayFuncProtoCheckBox.Checked;
CompletionLongLineHintInMSec := CompletionDropDownHintTrackBar.Position; CompletionLongLineHintInMSec := CompletionDropDownHintTrackBar.Position;
CompletionLongLineHintType := TSynCompletionLongHintType(CompletionDropDownHint.ItemIndex); CompletionLongLineHintType := TSynCompletionLongHintType(CompletionDropDownHint.ItemIndex);

View File

@ -1652,6 +1652,7 @@ resourcestring
dlgMarkupWordTrim = 'Trim spaces (when highlighting current selection)'; dlgMarkupWordTrim = 'Trim spaces (when highlighting current selection)';
dlgMarkupWordNoTimer = 'Disable timer for markup current word'; dlgMarkupWordNoTimer = 'Disable timer for markup current word';
dlgAutoRemoveEmptyMethods = 'Auto remove empty methods'; dlgAutoRemoveEmptyMethods = 'Auto remove empty methods';
dlgAutoDisplayFuncProto = 'Auto Display Function Prototypes';
lisShowDeclarationHints = 'Show declaration hints'; lisShowDeclarationHints = 'Show declaration hints';
dlgEdDelayInSec = '(%s sec delay)'; dlgEdDelayInSec = '(%s sec delay)';
lisDelayForHintsAndCompletionBox = 'Delay for hints and completion box'; lisDelayForHintsAndCompletionBox = 'Delay for hints and completion box';

View File

@ -3570,6 +3570,9 @@ begin
begin begin
if AutoBlockCompleteChar(AChar) then if AutoBlockCompleteChar(AChar) then
Handled:=true; Handled:=true;
if EditorOpts.AutoDisplayFunctionPrototypes then
if (aChar = '(') or (aChar = ',') then
SourceNotebook.StartShowCodeContext(true);
end; end;
else else