mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-03 05:58:14 +02:00
codetools: identifier completion: procedure specifiers and procedure type specifiers
git-svn-id: trunk@52646 -
This commit is contained in:
parent
21f07de277
commit
ff5f987936
@ -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 ;
|
||||
|
Loading…
Reference in New Issue
Block a user