[Lazarus] Improving Lazarus and Include file handling [feature request]

Michael Van Canneyt michael at freepascal.org
Tue Jun 22 10:27:55 CEST 2010



On Tue, 22 Jun 2010, Mattias Gaertner wrote:

>>> On Tue, 22 Jun 2010 09:00:23 +0200
>>> Graeme Geldenhuys <graemeg.lists at gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> Lazarus IDE is already very generous with errors in code - yet still
>>>> allows syntax highlighting or jumping around inside the code. Can
>>>> Lazarus IDE be improved just a little bit more with Include file
>>>> handling. The tiOPF project (and some of my projects) use include
>>>> files for the Compiler Mode and enabling AnsiString support. If I
>>>> browse such a file, not via a Lazarus Package or not via the Project
>>>> that owns that unit, then Lazarus IDE can't find the include file -
>>>> this is generally ok. Unfortunately this then causes code navigation
>>>> to fail as well. eg: Ctrl+Shift+(up|down) stops working. By simply
>>>> commenting the Include line like shown below allows Lazarus IDE to
>>>> navigate the code again.
>>>>
>>>> Can Lazarus IDE be made to be more lenient when it comes to Include
>>>> files outside the Interface and Implementation sections? Actually just
>>>> ignoring Include files errors when the {$I xxx} is before the
>>>> Implementation section would also work (I think). At least just so the
>>>> code navigation works.
>>
>> I'm all for Graeme's request. It's very annoying that the slightest error
>> has such consequences.
>>
>>>
>>> Yes.
>>> A quick fix could be added. So you can right click on the message and
>>> then get some options:
>>>
>>> Check configuration
>>> Search
>>> Create file
>>> Ignore/skip
>>> Comment
>>> Remove
>>>
>>> I'm not sure what is the best solution for 'ignore'.
>>> Should the Ignore be stored to disk? I fear users will forget that they
>>> defined an Ignore and will wonder why the IDE behaves "buggy". So the
>>> Ignores should be somehow shown at a prominent place.
>>> Any ideas?
>>
>> Several, in fact:
>> - Add a menu item in the above list 'Show ignore list';
>
> +1
>
>> - And then add a similar button in the Codetools configuration dialog.
>
> +1
>
>> - Also, please show these options when you encounter a parsing error somewhere.
>
> Show how?

Same popup in the messages window. Not just when reporting missing files.

>
>> - Add a configuration option to code tools 'ignore errors in files not part of project'
>
> For every Ignore there must be a definition for each depending function
> what to do otherwise.

Eh ?

>
>
>> The last one is the first I'll use :-)
>>
>>>
>>> Notes:
>>> The Ignore will be defined for the whole directory, not only the
>>> specific file.
>>> Similar can be done for "unit not found".
>>
>> Why not for the file ? I would expect 2 menu items:
>> Ignore/skip all in this file
>> Ignore/skip all in this directory
>
> If an include file can not be found for one file it can not be found
> for any other file in the same directory, because they share the same
> search paths.

Ah. That means that if

{$i myfile.inc}

does not exist, then any other reference to *myfile.inc* in the same directory
will also be ignored. Yes, this is correct.

Michael.




More information about the Lazarus mailing list