A client-server autocompletion tool for the D programming language, designed to integrate with text editors.
DCD is a client-server autocompletion tool specifically designed for the D programming language. It provides intelligent code suggestions, call tips, and documentation display by analyzing source code and caching imported modules. It solves the problem of lacking robust, editor-agnostic autocompletion support for D developers.
D programmers who use text editors (like Vim, Emacs, or Sublime Text) and want IDE-like autocompletion features without switching to a full integrated development environment.
Developers choose DCD because it offers a lightweight, fast, and reliable completion engine tailored to D's syntax and semantics, with broad editor support and active maintenance by the D community.
The D Completion Daemon is an auto-complete program for the D programming language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
DCD supports plugins for a wide range of text editors like Vim and Emacs, as documented in the wiki, allowing developers to maintain their preferred editing environment with D language autocompletion.
It provides autocompletion for D constructs including classes, structs, enums, and functions, with extended output modes offering detailed information such as types and documentation, as shown in the client output examples.
The server caches imported files to speed up completions, and the client-server model ensures responsive performance, which is highlighted in the setup and operation descriptions.
Import paths can be added or removed on the fly using client commands like dcd-client -Ipath, without restarting the server, enhancing workflow flexibility during development.
The README explicitly states that UFCS completion for templates, literals, aliased types, and chaining is not working, limiting its usefulness for code relying heavily on D's uniform function call syntax.
Autocompletion for declarations with template arguments is limited—it won't replace template parameters with concrete types, making it less effective for template-heavy D code, as admitted in the 'Not working' section.
Requires starting and maintaining the dcd-server process separately, which can be cumbersome if not automated by editor plugins, adding operational complexity to the setup.