[Lazarus] Updating procedure signatures

Mattias Gaertner nc-gaertnma at netcologne.de
Tue Jun 25 13:04:08 CEST 2013


Hi all,

Code completion can now update procedure signatures. For example:

procedure DoSomething;

implementation

procedure DoSomething;
begin
end;


Now add a parameter c:char to the interface procedure:

procedure DoSomething(c: char);

Place cursor on this declaration and invoke code completion
(Ctrl+Shift+C). This will replace the signature in the
implementation section.

procedure DoSomething(c: char);

implementation

procedure DoSomething(c: char);
begin
end;

Note: It does not work backward from implementation to interface.

How it works:
codetools tries to map all interface and implementation procedures.
First by name+param list then by name. If this is ambiguous (e.g. there
are two DoSomething and you changed both parameters) then codetools
will not update the signature and instead create a new implementation.
You can undo this.

Options:
By default code completion updates all signatures it can map. If you
only want single updates, disable the option Tools / Options /
Codetools / Code Creation / Update multiple procedure signatures.

There is now an option to disable the same for methods:
Tools / Options / Codetools / Class Completion / Update all method
signatures


Mattias




More information about the Lazarus mailing list