On Tue, 22 Jun 2010, Mattias Gaertner wrote:

On Tue, 22 Jun 2010 09:00:23 +0200
Graeme Geldenhuys <[email protected]> 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.

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to