[Lazarus] Another IDE interface question

Darius Blaszyk dhkblaszyk at zeelandnet.nl
Sat Feb 5 18:37:04 CET 2011


On Feb 5, 2011, at 4:02 PM, Mattias Gaertner wrote:

>  
> 
> Darius Blaszyk <dhkblaszyk at zeelandnet.nl> hat am 5. Februar 2011 um 14:55 geschrieben:
> 
>>>>> 1. get all the -Fu and -Fi folders so the package can search them and allow the user to include/exclude them from profiling, which method to use in LazIDEIntf?
>>> 
>>> I added some info:
>>> 
>>> http://wiki.lazarus.freepascal.org/Extending_the_IDE#Getting_the_search_paths_for_units_and_include_filesuses
>>> CodeToolManager;
>> 
>> Again a couple of questions regarding the IDE interface;
>> 1. Is it possible to (temporarily) suppress the check if a file on disk has changed?
> 
>  
> No. 
> I could add this, but maybe there are better ways than changing the source back and forth on disk.
> Basically you need a preprocessor for FPC.
> The first step is to extend FPC to not load files directly from disk. I tried some months ago and it was amazingly simple.
> It is quite simple to build your own custom compiler and it uses a central place to load source files. With a simple patch the central loading can be extended for an overload. This costs no performance and has very low maintenance cost for the FPC team, so there is a good chance the patch will be applied. At that time DoDi was working on the compiler, so I waited for the dust to settle and then I forgot to provide the patch. The patch is on another computer. I can search for it next week.
Sounds very promising, I would welcome your sources to see if I can use this in fpprofiler.

> A custom compiler can then add the file hook to feed fpc with preprocessed source files, for example your fpfprofile code.
Or even read the files from a stream instead, so the profiling code can be inserted on the fly?

> Of course eventually it would be nice if FPC could use an optional preprocessor without the need to compile your own compiler.
I'm for that, sure. But I would also like to be able to use a profiler without the need to have to compile a new compiler with different pre-processor. Quite some users might find this difficult or even scary.

> Another solution is to implement a ramdisk. That would work with any existing compilers, but requires one implementation per OS and can be tricky because of access rights.
It sounds to difficult to me. Not my prefference, in that case I would rather stay with disabling the check in Lazarus for changed files.


>   if FileExistsUTF8(Filename) then   LazarusIDE.DoRevertEditorFile(Filename)   else   LazarusIDE.DoCloseEditorFile(Filename,[cfQuiet]);
>> 2. I would like to add a unit search path to the project and later be able to remove it again. Is this possible?
> 
>  
> Yes. 
> LazarusIDE.ActiveProject.LazCompilerOptions.OtherUnitFiles
>  
> But the handling of the modified flags can be tricky.
Thanks will examine how this works.

Regards, Darius
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20110205/7f740117/attachment-0003.html>


More information about the Lazarus mailing list