[Lazarus] Bug on CodeTools to find unit using in `../path/unit.pas`
Marcos Douglas B. Santos
md at delfire.net
Sat Dec 8 17:15:20 CET 2018
I'm playing around with units to include them in a "different" way in a
test program. I realized that there are some issues only on Lazarus IDE
code-completion — no error to compile.
Inside the folder of the project, I've added a new unit in `msg` folder:
If I use this unit on lpr using `in`, like this:
`msg in 'msg/msg.pas'`;
...I have no issues to compile.
Pay attention that I haven't put `msg` folder on Search Path.
Inside on `msg` unit I have a code for testing:
function MakeString: string;
If uses that unit in any units on that program and try to code-complete
"MakeS*" (Ctrl+SPACE) I got "Error: unit not found: msg" from CodeTools.
Lazarus 1.9.0 r58537 FPC 3.1.1 i386-win32-win32/win64
You can argue that I just need to include the path on Search Path but,
please, don't. I want to use something like "dynamic paths".
Continuing the test, if I use that unit as `msg in 'msg/msg.pas' on the
other units, I got no error from CodeTools:
// a unit that has a Form, for example
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
msg in 'msg/msg.pas';
Which tells us that CodeTools knows how to read the "in 'path/unit'", but
only if it was declared on the same unit that is using it.
So, I can use the path on all units but as the compiler knows how to
compile if I just put one declaration on the lpr, using the same
indentifier `msg` in all program, I believe the IDE should know how to read
Am I right?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Lazarus