mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-07 19:40:19 +02:00
codetools: code completion: started option to not update signatures if only case changed
git-svn-id: trunk@41909 -
This commit is contained in:
parent
e935766ee6
commit
3796042759
@ -139,7 +139,8 @@ type
|
||||
const TheClassName: string);
|
||||
function UpdateProcBodySignature(ProcBodyNodes: TAVLTree;
|
||||
const BodyNodeExt: TCodeTreeNodeExtension;
|
||||
ProcAttrCopyDefToBody: TProcHeadAttributes; var ProcsCopied: boolean): boolean;
|
||||
ProcAttrCopyDefToBody: TProcHeadAttributes; var ProcsCopied: boolean;
|
||||
CaseSensitive: boolean): boolean;
|
||||
function UpdateProcBodySignatures(ProcDefNodes, ProcBodyNodes: TAVLTree;
|
||||
ProcAttrCopyDefToBody: TProcHeadAttributes; out ProcsCopied: boolean;
|
||||
OnlyNode: TCodeTreeNode = nil): boolean;
|
||||
@ -7673,8 +7674,8 @@ end;
|
||||
|
||||
function TCodeCompletionCodeTool.UpdateProcBodySignature(
|
||||
ProcBodyNodes: TAVLTree; const BodyNodeExt: TCodeTreeNodeExtension;
|
||||
ProcAttrCopyDefToBody: TProcHeadAttributes; var ProcsCopied: boolean
|
||||
): boolean;
|
||||
ProcAttrCopyDefToBody: TProcHeadAttributes; var ProcsCopied: boolean;
|
||||
CaseSensitive: boolean): boolean;
|
||||
var
|
||||
OldProcCode: String;
|
||||
NewProcCode: String;
|
||||
@ -7698,7 +7699,7 @@ begin
|
||||
Indent:=Beauty.GetLineIndent(Src, InsertPos);
|
||||
NewProcCode:=Beauty.BeautifyProc(NewProcCode, Indent, false);
|
||||
OldProcCode:=ExtractProcHead(BodyNodeExt.Node, ProcAttrCopyDefToBody);
|
||||
if CompareTextIgnoringSpace(NewProcCode, OldProcCode, true)<>0 then begin
|
||||
if CompareTextIgnoringSpace(NewProcCode, OldProcCode, CaseSensitive)<>0 then begin
|
||||
// update body
|
||||
//debugln(['TCodeCompletionCodeTool.UpdateProcBodySignatures Old="',dbgstr(OldProcCode),'" New="',dbgstr(NewProcCode),'"']);
|
||||
ProcsCopied:=true;
|
||||
@ -7814,7 +7815,8 @@ begin
|
||||
for i:=0 to Bodies.Count-1 do begin
|
||||
BodyNodeExt:=TCodeTreeNodeExtension(Bodies[i]);
|
||||
if not UpdateProcBodySignature(ProcBodyNodes, BodyNodeExt,
|
||||
ProcAttrCopyDefToBody, ProcsCopied)
|
||||
ProcAttrCopyDefToBody, ProcsCopied,
|
||||
FSourceChangeCache.BeautifyCodeOptions.UpdateOtherProcSignaturesCase)
|
||||
then
|
||||
exit(false);
|
||||
end;
|
||||
|
@ -149,6 +149,7 @@ type
|
||||
ForwardProcBodyInsertPolicy: TForwardProcBodyInsertPolicy;
|
||||
KeepForwardProcOrder: boolean;
|
||||
UpdateMultiProcSignatures: boolean;
|
||||
UpdateOtherProcSignaturesCase: boolean; // when updating proc signatures not under cursor, fix case
|
||||
// classes, methods, properties
|
||||
ClassHeaderComments: boolean;
|
||||
ClassImplementationComments: boolean;
|
||||
@ -1252,6 +1253,7 @@ begin
|
||||
MixMethodsAndProperties:=false;
|
||||
UpdateAllMethodSignatures:=true;
|
||||
UpdateMultiProcSignatures:=true;
|
||||
UpdateOtherProcSignaturesCase:=true;
|
||||
MethodInsertPolicy:=mipClassOrder;
|
||||
ForwardProcBodyInsertPolicy:=fpipBehindMethods;
|
||||
KeepForwardProcOrder:=true;
|
||||
|
@ -82,6 +82,7 @@ type
|
||||
FIdentifierPolicy: TWordPolicy;
|
||||
FUpdateAllMethodSignatures: boolean;
|
||||
FUpdateMultiProcSignatures: boolean;
|
||||
FUpdateOtherProcSignaturesCase: boolean;
|
||||
FWordPolicyExceptions: TStringList;
|
||||
FDoNotSplitLineInFront: TAtomTypes;
|
||||
FDoNotSplitLineAfter: TAtomTypes;
|
||||
@ -162,6 +163,8 @@ type
|
||||
read FKeepForwardProcOrder write FKeepForwardProcOrder;
|
||||
property UpdateMultiProcSignatures: boolean
|
||||
read FUpdateMultiProcSignatures write FUpdateMultiProcSignatures;
|
||||
property UpdateOtherProcSignaturesCase: boolean
|
||||
read FUpdateOtherProcSignaturesCase write FUpdateOtherProcSignaturesCase;
|
||||
property ClassHeaderComments: boolean
|
||||
read FClassHeaderComments write FClassHeaderComments;
|
||||
property ClassImplementationComments: boolean
|
||||
@ -412,6 +415,8 @@ begin
|
||||
'CodeToolsOptions/KeepForwardProcOrder/Value',true);
|
||||
FUpdateMultiProcSignatures:=XMLConfig.GetValue(
|
||||
'CodeToolsOptions/UpdateMultiProcSignatures/Value',true);
|
||||
FUpdateOtherProcSignaturesCase:=XMLConfig.GetValue(
|
||||
'CodeToolsOptions/UpdateOtherProcSignaturesCase/Value',true);
|
||||
FClassHeaderComments:=XMLConfig.GetValue(
|
||||
'CodeToolsOptions/ClassHeaderComments/Value',true);
|
||||
FClassImplementationComments:=XMLConfig.GetValue(
|
||||
@ -549,6 +554,9 @@ begin
|
||||
XMLConfig.SetDeleteValue(
|
||||
'CodeToolsOptions/UpdateMultiProcSignatures/Value',FUpdateMultiProcSignatures,
|
||||
true);
|
||||
XMLConfig.SetDeleteValue(
|
||||
'CodeToolsOptions/UpdateOtherProcSignaturesCase/Value',FUpdateOtherProcSignaturesCase,
|
||||
true);
|
||||
XMLConfig.SetDeleteValue(
|
||||
'CodeToolsOptions/ClassImplementationComments/Value',
|
||||
FClassImplementationComments,true);
|
||||
@ -676,6 +684,7 @@ begin
|
||||
FForwardProcBodyInsertPolicy:=CodeToolsOpts.ForwardProcBodyInsertPolicy;
|
||||
FKeepForwardProcOrder:=CodeToolsOpts.KeepForwardProcOrder;
|
||||
FUpdateMultiProcSignatures:=CodeToolsOpts.UpdateMultiProcSignatures;
|
||||
FUpdateOtherProcSignaturesCase:=CodeToolsOpts.UpdateOtherProcSignaturesCase;
|
||||
FClassHeaderComments:=CodeToolsOpts.ClassHeaderComments;
|
||||
FClassImplementationComments:=CodeToolsOpts.ClassImplementationComments;
|
||||
FMethodInsertPolicy:=CodeToolsOpts.FMethodInsertPolicy;
|
||||
@ -729,6 +738,7 @@ begin
|
||||
FForwardProcBodyInsertPolicy:=fpipInFrontOfMethods;
|
||||
FKeepForwardProcOrder:=true;
|
||||
FUpdateMultiProcSignatures:=true;
|
||||
FUpdateOtherProcSignaturesCase:=true;
|
||||
FClassHeaderComments:=true;
|
||||
FClassImplementationComments:=true;
|
||||
FMethodInsertPolicy:=mipClassOrder;
|
||||
@ -797,6 +807,7 @@ begin
|
||||
and (FForwardProcBodyInsertPolicy=CodeToolsOpts.ForwardProcBodyInsertPolicy)
|
||||
and (FKeepForwardProcOrder=CodeToolsOpts.KeepForwardProcOrder)
|
||||
and (FUpdateMultiProcSignatures=CodeToolsOpts.UpdateMultiProcSignatures)
|
||||
and (FUpdateOtherProcSignaturesCase=CodeToolsOpts.UpdateOtherProcSignaturesCase)
|
||||
and (FClassHeaderComments=CodeToolsOpts.ClassHeaderComments)
|
||||
and (FClassImplementationComments=CodeToolsOpts.ClassImplementationComments)
|
||||
and (FMethodInsertPolicy=CodeToolsOpts.FMethodInsertPolicy)
|
||||
@ -895,6 +906,7 @@ begin
|
||||
Beauty.ForwardProcBodyInsertPolicy:=ForwardProcBodyInsertPolicy;
|
||||
Beauty.KeepForwardProcOrder:=KeepForwardProcOrder;
|
||||
Beauty.UpdateMultiProcSignatures:=UpdateMultiProcSignatures;
|
||||
Beauty.UpdateOtherProcSignaturesCase:=UpdateOtherProcSignaturesCase;
|
||||
Beauty.ClassHeaderComments:=ClassHeaderComments;
|
||||
Beauty.ClassImplementationComments:=ClassImplementationComments;
|
||||
Beauty.MethodInsertPolicy:=MethodInsertPolicy;
|
||||
|
@ -37,9 +37,9 @@ object CodetoolsCodeCreationOptionsFrame: TCodetoolsCodeCreationOptionsFrame
|
||||
AnchorSideTop.Control = ForwardProcsInsertPolicyRadioGroup
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 18
|
||||
Height = 24
|
||||
Top = 112
|
||||
Width = 235
|
||||
Width = 261
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'ForwardProcsKeepOrderCheckBox'
|
||||
TabOrder = 1
|
||||
@ -52,7 +52,7 @@ object CodetoolsCodeCreationOptionsFrame: TCodetoolsCodeCreationOptionsFrame
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 100
|
||||
Top = 142
|
||||
Top = 148
|
||||
Width = 560
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoFill = True
|
||||
@ -76,11 +76,24 @@ object CodetoolsCodeCreationOptionsFrame: TCodetoolsCodeCreationOptionsFrame
|
||||
AnchorSideTop.Control = UsesInsertPolicyRadioGroup
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 18
|
||||
Top = 248
|
||||
Width = 252
|
||||
BorderSpacing.Around = 6
|
||||
Height = 24
|
||||
Top = 254
|
||||
Width = 279
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'UpdateMultiProcSignaturesCheckBox'
|
||||
TabOrder = 3
|
||||
end
|
||||
object UpdateOtherProcSignaturesCaseCheckBox: TCheckBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = UpdateMultiProcSignaturesCheckBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 24
|
||||
Top = 278
|
||||
Width = 315
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'UpdateOtherProcSignaturesCaseCheckBox'
|
||||
TabOrder = 4
|
||||
end
|
||||
end
|
||||
|
@ -36,6 +36,7 @@ type
|
||||
ForwardProcsInsertPolicyRadioGroup: TRadioGroup;
|
||||
ForwardProcsKeepOrderCheckBox: TCheckBox;
|
||||
UpdateMultiProcSignaturesCheckBox: TCheckBox;
|
||||
UpdateOtherProcSignaturesCaseCheckBox: TCheckBox;
|
||||
UsesInsertPolicyRadioGroup: TRadioGroup;
|
||||
private
|
||||
public
|
||||
@ -74,6 +75,8 @@ begin
|
||||
ForwardProcsKeepOrderCheckBox.Caption:=dlgForwardProcsKeepOrder;
|
||||
UpdateMultiProcSignaturesCheckBox.Caption:=
|
||||
lisCTOUpdateMultipleProcedureSignatures;
|
||||
UpdateOtherProcSignaturesCaseCheckBox.Caption:=
|
||||
lisUpdateOtherProcedureSignaturesWhenOnlyLetterCaseHa;
|
||||
|
||||
with UsesInsertPolicyRadioGroup do begin
|
||||
Caption:=lisNewUnitsAreAddedToUsesSections;
|
||||
@ -104,6 +107,7 @@ begin
|
||||
|
||||
ForwardProcsKeepOrderCheckBox.Checked := KeepForwardProcOrder;
|
||||
UpdateMultiProcSignaturesCheckBox.Checked:=UpdateMultiProcSignatures;
|
||||
UpdateOtherProcSignaturesCaseCheckBox.Checked:=UpdateOtherProcSignaturesCase;
|
||||
|
||||
case UsesInsertPolicy of
|
||||
uipFirst: UsesInsertPolicyRadioGroup.ItemIndex:=0;
|
||||
@ -130,6 +134,7 @@ begin
|
||||
|
||||
KeepForwardProcOrder := ForwardProcsKeepOrderCheckBox.Checked;
|
||||
UpdateMultiProcSignatures:=UpdateMultiProcSignaturesCheckBox.Checked;
|
||||
UpdateOtherProcSignaturesCase:=UpdateOtherProcSignaturesCaseCheckBox.Checked;
|
||||
|
||||
case UsesInsertPolicyRadioGroup.ItemIndex of
|
||||
0: UsesInsertPolicy:=uipFirst;
|
||||
|
@ -5784,6 +5784,8 @@ resourcestring
|
||||
lisCTOUpdateAllMethodSignatures = 'Update all method signatures';
|
||||
lisCTOUpdateMultipleProcedureSignatures = 'Update multiple procedure '
|
||||
+'signatures';
|
||||
lisUpdateOtherProcedureSignaturesWhenOnlyLetterCaseHa = 'Update other '
|
||||
+'procedure signatures when only letter case has changed';
|
||||
|
||||
implementation
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user