Thread overview
emacs packages
Feb 08, 2021
glis-glis
Feb 18, 2021
glis-glis
Feb 19, 2021
Preetpal
Feb 19, 2021
mori
Feb 19, 2021
Vladimir Panteleev
February 08, 2021
Is there any documentation on how to use emacs with D? The github page of emacs d-mode [1] does not really explain a lot, nor does the wiki-page [2].

At the moment, I use the following packages: d-mode, flycheck-d-unittest and company-dcd. I really like the way unittests are underlined when failing by flycheck, giving an almost REPL-like programming experience.

Autocompletion with company-dcd and syntax check with flycheck mostly work fine, but they are not able to find my packages installed with DUB. Also, company-dcd-goto-definition only works for the standard-library, it is not able to find the definition of my own functions nor packages I installed with DUB.

Is there a dfmt-package for emacs? I still use clang-format, which kind of works for D-code except when the syntax does not exist in C++ (for example "=>" ).

[1] https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode
[2] https://wiki.dlang.org/Editors
February 18, 2021
On Monday, 8 February 2021 at 09:10:26 UTC, glis-glis wrote:
> Is there any documentation on how to use emacs with D? The github page of emacs d-mode [1] does not really explain a lot, nor does the wiki-page [2].
>
> [...]

Given the absence on replies, I see two possibilities:
(1) I'm the only emacs-user
or
(2) All emacs-users encounter the same problems I do
February 19, 2021
On Thursday, 18 February 2021 at 15:29:51 UTC, glis-glis wrote:
> On Monday, 8 February 2021 at 09:10:26 UTC, glis-glis wrote:
>> Is there any documentation on how to use emacs with D? The github page of emacs d-mode [1] does not really explain a lot, nor does the wiki-page [2].
>>
>> [...]
>
> Given the absence on replies, I see two possibilities:
> (1) I'm the only emacs-user
> or
> (2) All emacs-users encounter the same problems I do

I also use Emacs with D but I just use syntax highlighting at the moment. You might want to try a language server protocol server for D like https://github.com/pure-d/serve-d. I have not used it myself, but I have used something similar with TypeScript in the past successfully in Emacs.
February 19, 2021
On Monday, 8 February 2021 at 09:10:26 UTC, glis-glis wrote:
> Autocompletion with company-dcd and syntax check with flycheck mostly work fine, but they
> are not able to find my packages installed with DUB. Also, company-dcd-goto-definition
> only works for the standard-library, it is not able to find the definition of my own
> functions nor packages I installed with DUB.

Unfortunately, I can't help here as I only use d-mode for syntax highlighting.

> Is there a dfmt-package for emacs? I still use clang-format, which kind of works for D-code except when the syntax does not exist in C++ (for example "=>" ).

I haven't used clang-format nor do I know if there is a dfmt package, but you could define a function that runs "dfmt" on the current file.  I can share a basic implementation if you need.

You could also take a look at [uncrustify] which has support for D, though I haven't used it.  There even seem to be some (old, but hopefully working,) modes for it:

- https://github.com/glima/Emacs-uncrustify
- https://github.com/koko1000ban/emacs-uncrustify-mode

[uncrustify]: http://uncrustify.sourceforge.net/


February 19, 2021
On Monday, 8 February 2021 at 09:10:26 UTC, glis-glis wrote:
> Is there any documentation on how to use emacs with D?

Well, that depends entirely on how you use D, and how you use Emacs. :)

> Autocompletion with company-dcd and syntax check with flycheck mostly work fine, but they are not able to find my packages installed with DUB.

For this, you probably want the flycheck-dmd-dub package:

https://github.com/atilaneves/flycheck-dmd-dub

> Also, company-dcd-goto-definition only works for the standard-library, it is not able to find the definition of my own functions nor packages I installed with DUB.

company-dcd actually uses flycheck-dmd-dub to query Dub import paths and pass them on to DCD, so it should work (though perhaps something needs to be turned on or otherwise configured first).

> Is there a dfmt-package for emacs? I still use clang-format, which kind of works for D-code except when the syntax does not exist in C++ (for example "=>" ).

For indentation, you can use cc-mode's facilities, which are supported in d-mode via indent-region.

For full-on formatting, Per Nordlöw wrote a dfmt package (wrapping the titular tool). A copy can be found here: https://github.com/qsimpleq/elisp-dfmt