codetools: identifier completion: procedure specifiers and procedure type specifiers

git-svn-id: trunk@52646 -
This commit is contained in:
mattias 2016-07-07 09:11:39 +00:00
parent 21f07de277
commit ff5f987936

View File

@ -1768,6 +1768,22 @@ type
Add(IsKeyWordMethodSpecifier.GetItem(i).KeyWord+';');
end;
procedure AddProcSpecifiers;
var
i: Integer;
begin
for i:=0 to IsKeyWordProcedureSpecifier.Count-1 do
Add(IsKeyWordProcedureSpecifier.GetItem(i).KeyWord+';');
end;
procedure AddProcTypeSpecifiers;
var
i: Integer;
begin
for i:=0 to IsKeyWordProcedureTypeSpecifier.Count-1 do
Add(IsKeyWordProcedureTypeSpecifier.GetItem(i).KeyWord+';');
end;
var
Node: TCodeTreeNode;
SubNode: TCodeTreeNode;
@ -1823,10 +1839,6 @@ begin
CheckProperty(SubNode);
end;
end;
if NodeInFront<>nil then begin
if NodeInFront.Desc in [ctnProcedure,ctnProcedureHead] then
AddMethodSpecifiers;
end;
end;
ctnClassInterface,ctnDispinterface,ctnObjCProtocol,ctnCPPClass:
@ -1934,6 +1946,24 @@ begin
CheckProperty(Node);
end;
if NodeInFront<>nil then begin
if NodeInFront.Desc=ctnProcedureHead then begin
// procedure head postfix modifiers
case Node.Desc of
ctnClass,ctnObject,ctnObjCCategory,ctnObjCClass,
ctnClassHelper, ctnRecordHelper, ctnTypeHelper,
ctnClassPrivate,ctnClassProtected,ctnClassPublic,ctnClassPublished:
AddMethodSpecifiers;
else
//debugln(['TIdentCompletionTool.GatherContextKeywords ',NodeInFront.Parent.DescAsString]);
if NodeInFront.Parent.Desc=ctnProcedure then
AddProcSpecifiers
else if NodeInFront.Parent.Desc=ctnProcedureType then
AddProcTypeSpecifiers;
end;
end;
end;
except
// ignore parser errors
on E: ECodeToolError do ;