On Saturday, 14 July 2018 at 17:19:20 UTC, Andre Pany wrote:
Hi,
The IntelliJ D Language plugin has support for D-scanner and
DCD. Both tools needs to know the paths to druntime/import and
Phobos source folder.
In IntelliJ you set the path to the folder where dmd binary is
located. Based on this information on Windows and MacOS it is
possible to determine the paths.
The code can be found here
https://github.com/intellij-dlanguage/intellij-dlanguage/blob/develop/src/main/java/io/github/intellij/dlanguage/codeinsight/dcd/DCDCompletionServer.java#L180
I want to provide a fix that the paths are also automatically
determined on Linux correctly but I do not have much Linux
experience.
Is there a way to find out both paths based on the dmd
executable folder?
What I found out so far, these paths are not always correct:
/usr/include/dmd/druntime/import
/usr/include/dmd/phobos
Kind regards
Andre
DMD:
https://github.com/dlang/dmd/blob/master/src/dmd/dinifile.d#L40
LDC: https://wiki.dlang.org/Using_LDC,
https://github.com/dlang/dmd/blob/master/src/dmd/frontend.d#L97
Once you have the config file, simply parse the config files:
https://github.com/dlang/dmd/blob/master/src/dmd/frontend.d#L156
Anyhow as DMD is on DUB, there's no need for copy/pasting:
---
#!/usr/bin/env dub
/+dub.sdl:
dependency "dmd" version="~master"
+/
void main()
{
import dmd.frontend;
import std.stdio;
findImportPaths().writeln; // will determine the currently
active "dmd" compiler (can be LDC too)
}
---
DMD's order is a bit annoying, see:
https://github.com/dlang/dmd/pull/7915