D support for GNOME Builder

Neia Neutuladh neia at ikeran.org
Fri Jan 11 06:08:17 UTC 2019


On Fri, 11 Jan 2019 03:08:32 +0000, . . wrote:
> Something was posted on the forums a few years back about the GNOME
> Builder IDE (https://wiki.gnome.org/Apps/Builder), and some people were
> talking about adding D support. Nothing really happened with it, but I
> am wondering if anyone has thoughts about it?
> 
> Seeing D supported in GNOME Builder would be nice, because aside from D,
> Builder is a great general-purpose IDE for linux, much like XCode is to
> MacOS.

I was only vaguely aware that GNOME Builder existed and decided to check 
it out. It's a bit rough around the edges, and it succumbs to the 
unfortunate modern GNOME habit of having tiny inscrutable icons instead of 
a menu bar. But I kind of like it, at least in theory, so I decided to 
have a look.

GNOME Builder supports the Language Server Protocol. Or rather, the 
nightly builds support it. The nightly builds also depend on bleeding edge 
GNOME libraries, which means flatpak (kind of bleh). Plugins seem to be 
written in Python (which is convenient because I'm not particularly able 
to crack open a flatpak to compile a C or Vala plugin inside).

>From that point, it was a matter of copying and modifying the Go LSP 
plugin.

This leaves a few issues:
* The completion window is five characters wide. Even if DCD integration 
were working as expected and DCD were producing the best results ever, 
this would be useless.
* Braces and indentation are pretty poorly handled. They're handled right 
in C, so it's just a matter of telling GNOME Builder to treat D like C in 
this way.
* Either DCD is giving poor results, or GNOME Builder isn't properly 
querying it, and I can't tell which.
* It's flatpak, so it doesn't integrate well with the rest of the system. 
Most importantly, dcd-server (the version I'm using, at least) doesn't 
automatically discover dmd.conf, and it might take some work to find it. 
That might not even work if dmd is installed in an unexpected location in 
the filesystem.
* The documentation required to get even this far is abysmal, where it 
even exists.


More information about the Digitalmars-d mailing list