codetools: class completion: fixed indentation of bodies

git-svn-id: trunk@34173 -
This commit is contained in:
mattias 2011-12-14 09:41:38 +00:00
parent 9395999ae0
commit 7bd71b2eab
3 changed files with 28 additions and 26 deletions

View File

@ -133,7 +133,8 @@ type
fNewMainUsesSectionUnits: TAVLTree; // tree of AnsiString fNewMainUsesSectionUnits: TAVLTree; // tree of AnsiString
procedure AddNewPropertyAccessMethodsToClassProcs(ClassProcs: TAVLTree; procedure AddNewPropertyAccessMethodsToClassProcs(ClassProcs: TAVLTree;
const TheClassName: string); const TheClassName: string);
procedure CheckForOverrideAndAddInheritedCode(ANodeExt: TCodeTreeNodeExtension); procedure CheckForOverrideAndAddInheritedCode(
ANodeExt: TCodeTreeNodeExtension; Indent: integer);
function CompleteProperty(PropNode: TCodeTreeNode): boolean; function CompleteProperty(PropNode: TCodeTreeNode): boolean;
procedure SetCodeCompleteClassNode(const AClassNode: TCodeTreeNode); procedure SetCodeCompleteClassNode(const AClassNode: TCodeTreeNode);
procedure SetCodeCompleteSrcChgCache(const AValue: TSourceChangeCache); procedure SetCodeCompleteSrcChgCache(const AValue: TSourceChangeCache);
@ -7028,7 +7029,7 @@ begin
end; end;
procedure TCodeCompletionCodeTool.CheckForOverrideAndAddInheritedCode( procedure TCodeCompletionCodeTool.CheckForOverrideAndAddInheritedCode(
ANodeExt: TCodeTreeNodeExtension); ANodeExt: TCodeTreeNodeExtension; Indent: integer);
// check for 'override' directive and add 'inherited' code to body // check for 'override' directive and add 'inherited' code to body
var var
ProcCode, ProcCall: string; ProcCode, ProcCall: string;
@ -7086,7 +7087,7 @@ begin
ProcCall:=Beauty.BeautifyIdentifier('Result')+':='+ProcCall; ProcCall:=Beauty.BeautifyIdentifier('Result')+':='+ProcCall;
ProcCode:=ProcCode+Beauty.LineEnd+'begin'+Beauty.LineEnd ProcCode:=ProcCode+Beauty.LineEnd+'begin'+Beauty.LineEnd
+GetIndentStr(Beauty.Indent)+ProcCall+Beauty.LineEnd+'end;'; +GetIndentStr(Beauty.Indent)+ProcCall+Beauty.LineEnd+'end;';
ProcCode:=Beauty.BeautifyProc(ProcCode,0,false); ProcCode:=Beauty.BeautifyProc(ProcCode,Indent,false);
ANodeExt.ExtTxt3:=ProcCode; ANodeExt.ExtTxt3:=ProcCode;
end; end;
end; end;
@ -7135,7 +7136,7 @@ var
ANode: TCodeTreeNode; ANode: TCodeTreeNode;
ProcCode: string; ProcCode: string;
begin begin
CheckForOverrideAndAddInheritedCode(TheNodeExt); CheckForOverrideAndAddInheritedCode(TheNodeExt,Indent);
if (TheNodeExt.ExtTxt1='') and (TheNodeExt.ExtTxt3='') then begin if (TheNodeExt.ExtTxt1='') and (TheNodeExt.ExtTxt3='') then begin
ANode:=TheNodeExt.Node; ANode:=TheNodeExt.Node;
if (ANode<>nil) and (ANode.Desc=ctnProcedure) then begin if (ANode<>nil) and (ANode.Desc=ctnProcedure) then begin
@ -7575,7 +7576,7 @@ begin
DebugLn('TCodeCompletionCodeTool.CreateMissingProcBodies Starting class in implementation '); DebugLn('TCodeCompletionCodeTool.CreateMissingProcBodies Starting class in implementation ');
{$ENDIF} {$ENDIF}
FindInsertPointForNewClass(InsertPos,Indent); FindInsertPointForNewClass(InsertPos,Indent);
//debugln(['TCodeCompletionCodeTool.CreateMissingProcBodies InsertPos=',dbgstr(copy(Src,InsertPos-10,10)),'|',dbgstr(copy(Src,InsertPos,10))]); //debugln(['TCodeCompletionCodeTool.CreateMissingProcBodies Indent=',Indent,' InsertPos=',dbgstr(copy(Src,InsertPos-10,10)),'|',dbgstr(copy(Src,InsertPos,10))]);
InsertClassMethodsComment(InsertPos,Indent); InsertClassMethodsComment(InsertPos,Indent);
// insert all proc bodies // insert all proc bodies
@ -7673,7 +7674,7 @@ begin
end; end;
end; end;
CreateCodeForMissingProcBody(ANodeExt,Indent); CreateCodeForMissingProcBody(ANodeExt,Indent);
InsertProcBody(ANodeExt,InsertPos,Indent); InsertProcBody(ANodeExt,InsertPos,0);
end; end;
MissingNode:=ClassProcs.FindPrecessor(MissingNode); MissingNode:=ClassProcs.FindPrecessor(MissingNode);
end; end;

View File

@ -25,12 +25,9 @@
Dialog to view and search the whole list. Dialog to view and search the whole list.
ToDo: ToDo:
-put exact match at start
-quickfix for identifier not found -quickfix for identifier not found
-use identifier: check package version -use identifier: check package version
-clean up old entries -check for unit conflict
-When, How?
-maximum number of units
-gzip? lot of cpu, may be faster on first load -gzip? lot of cpu, may be faster on first load
} }
unit CodyIdentifiersDlg; unit CodyIdentifiersDlg;

View File

@ -7,25 +7,29 @@ unit allsynedit;
interface interface
uses uses
SynBeautifier, SynCompletion, SynDesignStringConstants, SynEdit, SynEditAutoComplete, SynBeautifier, SynCompletion, SynDesignStringConstants, SynEdit,
SynEditExport, SynEditFoldedView, SynEditHighlighter, SynEditHighlighterFoldBase, SynEditAutoComplete, SynEditExport, SynEditFoldedView, SynEditHighlighter,
SynEditHighlighterXMLBase, SynEditKeyCmds, SynEditLazDsgn, SynEditLines, SynEditMarks, SynEditHighlighterFoldBase, SynEditHighlighterXMLBase, SynEditKeyCmds,
SynEditMarkup, SynEditMarkupBracket, SynEditMarkupCtrlMouseLink, SynEditMarkupHighAll, SynEditLazDsgn, SynEditLines, SynEditMarks, SynEditMarkup,
SynEditMarkupBracket, SynEditMarkupCtrlMouseLink, SynEditMarkupHighAll,
SynEditMarkupSelection, SynEditMarkupSpecialLine, SynEditMarkupWordGroup, SynEditMarkupSelection, SynEditMarkupSpecialLine, SynEditMarkupWordGroup,
SynEditMiscClasses, SynEditMiscProcs, SynEditMouseCmds, SynEditPlugins, SynEditMiscClasses, SynEditMiscProcs, SynEditMouseCmds, SynEditPlugins,
SynEditPointClasses, SynEditRegexSearch, SynEditSearch, SynEditStrConst, SynEditTextBase, SynEditPointClasses, SynEditRegexSearch, SynEditSearch, SynEditStrConst,
SynEditTextBuffer, SynEditTextDoubleWidthChars, SynEditTextTabExpander, SynEditTextTrimmer, SynEditTextBase, SynEditTextBuffer, SynEditTextDoubleWidthChars,
SynEditTypes, SynExportHTML, SynGutter, SynGutterBase, SynGutterChanges, SynEditTextTabExpander, SynEditTextTrimmer, SynEditTypes, SynExportHTML,
SynGutterCodeFolding, SynGutterLineNumber, SynGutterLineOverview, SynGutterMarks, SynGutter, SynGutterBase, SynGutterChanges, SynGutterCodeFolding,
SynGutterLineNumber, SynGutterLineOverview, SynGutterMarks,
SynHighlighterAny, SynHighlighterCpp, SynHighlighterCss, SynHighlighterDiff, SynHighlighterAny, SynHighlighterCpp, SynHighlighterCss, SynHighlighterDiff,
SynHighlighterHashEntries, SynHighlighterHTML, SynHighlighterJava, SynHighlighterJScript, SynHighlighterHashEntries, SynHighlighterHTML, SynHighlighterJava,
SynHighlighterLFM, SynHighlighterMulti, SynHighlighterPas, SynHighlighterPerl, SynHighlighterJScript, SynHighlighterLFM, SynHighlighterMulti,
SynHighlighterPHP, SynHighlighterPosition, SynHighlighterPython, SynHighlighterSQL, SynHighlighterPas, SynHighlighterPerl, SynHighlighterPHP,
SynHighlighterTeX, synhighlighterunixshellscript, SynHighlighterVB, SynHighlighterXML, SynHighlighterPosition, SynHighlighterPython, SynHighlighterSQL,
SynMacroRecorder, SynMemo, SynPluginSyncroEdit, SynPluginSyncronizedEditBase, SynHighlighterTeX, synhighlighterunixshellscript, SynHighlighterVB,
SynPluginTemplateEdit, SynPropertyEditObjectList, SynRegExpr, SynTextDrawer, SynHighlighterXML, SynMacroRecorder, SynMemo, SynPluginSyncroEdit,
SynEditMarkupGutterMark, SynHighlighterBat, SynHighlighterIni, SynEditMarkupSpecialChar, SynPluginSyncronizedEditBase, SynPluginTemplateEdit,
LazSynEditText, LazarusPackageIntf; SynPropertyEditObjectList, SynRegExpr, SynTextDrawer,
SynEditMarkupGutterMark, SynHighlighterBat, SynHighlighterIni,
SynEditMarkupSpecialChar, LazarusPackageIntf;
implementation implementation