[Lazarus] RFC: Code tools Feature?

Michael Van Canneyt michael at freepascal.org
Thu Mar 27 10:12:05 CET 2014



On Thu, 27 Mar 2014, Mark Morgan Lloyd wrote:

> Michael Van Canneyt wrote:
>> Hi,
>> 
>> Is it possible to have the following in the code tools:
>> 
>> I would like to be able to specify a code snippet that is inserted at the 
>> start and end of a procedure
>> (after begin, before end keywords). The code snippet should contains some 
>> macros like $(CLASSNAME) $(METHODNAME).
>> Conceivably, other macros can be thought of: parameters, unit name etc.
>> 
>> The intended use is that the IDE generates stuff like
>> 
>> Procedure TMyClass.MyMethod;
>> 
>> begin
>>   {$IFDEF LOGPROCESSFLOW}Log('Entering TMyClass.MyMethod');{$ENDIF}
>>
>>   {$ENDIF LOGPROCESSFLOW}Log('Exiting TMyClass.MyMethod');{$ENDIF}
>> end;
>
> If the compiler could track the current procedure (or function, or 
> class.method etc.) name, then couldn't that be done with a macro? Then the 
> app source would be a less-obtrusive:
>
> Procedure TMyClass.MyMethod;
>
> begin_logged
>
> end_logged;

I prefer not to use macros. This is not C.
I like to see explicitly what is happening.
Pascal macros are also not customizable/parametrizable (as the IDE macros are).

>
> Otherwise, since this is such a common requirement, how about a non-fatal 
> equivalent of Assert()?

I don't think this should be a promoted to a language feature either.

There may be additional use cases for this feature, which we cannot all cover with language features.

The comment header for one is something encountered quite often in teams that need to follow some standards,
for ISO 9001 etc.

In the IDE, at the level of generated sources, the user is able to control every aspect of what happens.

That may well include inserting any hypothetical pascal-language-level macro.

Michael.




More information about the Lazarus mailing list