{"id":32136963,"url":"https://github.com/dlang-community/dcd","last_synced_at":"2026-04-02T16:01:23.597Z","repository":{"id":9521145,"uuid":"11419535","full_name":"dlang-community/DCD","owner":"dlang-community","description":"The D Completion Daemon is an auto-complete program for the D programming language","archived":false,"fork":false,"pushed_at":"2025-12-26T21:22:21.000Z","size":1623,"stargazers_count":360,"open_issues_count":60,"forks_count":75,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-12-28T04:23:00.018Z","etag":null,"topics":["autocomplete","code-completion","d","dlang","intellisense","symbols"],"latest_commit_sha":null,"homepage":null,"language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"yasm/yasm","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dlang-community.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-07-15T09:30:27.000Z","updated_at":"2025-12-26T21:21:32.000Z","dependencies_parsed_at":"2023-01-13T15:24:40.699Z","dependency_job_id":"ad8c7903-881e-433b-a80b-4d3ab5b6e7b0","html_url":"https://github.com/dlang-community/DCD","commit_stats":{"total_commits":922,"total_committers":62,"mean_commits":"14.870967741935484","dds":0.3752711496746204,"last_synced_commit":"fbd79b258f4c55467c61a58530321cd7a3ec10c8"},"previous_names":["hackerpilot/dcd"],"tags_count":89,"template":false,"template_full_name":null,"purl":"pkg:github/dlang-community/DCD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang-community%2FDCD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang-community%2FDCD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang-community%2FDCD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang-community%2FDCD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dlang-community","download_url":"https://codeload.github.com/dlang-community/DCD/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang-community%2FDCD/sbom","scorecard":{"id":346962,"data":{"date":"2025-08-11","repo":{"name":"github.com/dlang-community/DCD","commit":"e48216e4a8da81c100b84d8dcba02fc714fa2585"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":2,"reason":"Found 6/25 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/pr_info_intro.yml:1","Warn: no topLevel permission defined: .github/workflows/pr_info_post.yml:1","Warn: no topLevel permission defined: .github/workflows/pr_info_untrusted.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr_info_post.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/pr_info_post.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr_info_untrusted.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/pr_info_untrusted.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr_info_untrusted.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/pr_info_untrusted.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr_info_untrusted.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/pr_info_untrusted.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr_info_untrusted.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/pr_info_untrusted.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang-community/DCD/release.yml/master?enable=pin","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   2 out of   9 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: License.txt:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: License.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.16.0-beta.3 not signed: https://api.github.com/repos/dlang-community/DCD/releases/203134289","Warn: release artifact v0.16.0-beta.2 not signed: https://api.github.com/repos/dlang-community/DCD/releases/103694018","Warn: release artifact v0.16.0-beta.1 not signed: https://api.github.com/repos/dlang-community/DCD/releases/95880810","Warn: release artifact v0.15.2 not signed: https://api.github.com/repos/dlang-community/DCD/releases/88076192","Warn: release artifact v0.15.1 not signed: https://api.github.com/repos/dlang-community/DCD/releases/87599431","Warn: release artifact v0.16.0-beta.3 does not have provenance: https://api.github.com/repos/dlang-community/DCD/releases/203134289","Warn: release artifact v0.16.0-beta.2 does not have provenance: https://api.github.com/repos/dlang-community/DCD/releases/103694018","Warn: release artifact v0.16.0-beta.1 does not have provenance: https://api.github.com/repos/dlang-community/DCD/releases/95880810","Warn: release artifact v0.15.2 does not have provenance: https://api.github.com/repos/dlang-community/DCD/releases/88076192","Warn: release artifact v0.15.1 does not have provenance: https://api.github.com/repos/dlang-community/DCD/releases/87599431"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T07:17:10.332Z","repository_id":9521145,"created_at":"2025-08-18T07:17:10.332Z","updated_at":"2025-08-18T07:17:10.332Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31309579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autocomplete","code-completion","d","dlang","intellisense","symbols"],"created_at":"2025-10-21T04:54:03.248Z","updated_at":"2026-04-02T16:01:23.563Z","avatar_url":"https://github.com/dlang-community.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DCD [![CI status](https://travis-ci.org/dlang-community/DCD.svg?branch=master)](https://travis-ci.org/dlang-community/DCD/)\nThe D Completion Daemon is an auto-complete program for the D programming language.\n\n![Teaser](teaser.png \"This is what the future looks like - Jayce, League of Legends\")\n\n(The above is a screenshot of [Textadept](http://foicica.com/textadept/))\n\nDCD is not an IDE. DCD is designed to provide autocompletion for your favorite\ntext editor. If you are looking for an IDE, try [one of these](http://wiki.dlang.org/IDEs).\n\nDCD consists of a client and a server. The client (dcd-client) is almost always\nused through a text editor script or plugin, though it can be used from the\ncommand line. The server (dcd-server) is responsible for caching imported files,\ncalculating autocomplete information, and sending it back to the client.\n\n# Status\n\nThis program is reasonably stable. Please report problems on the Github issue\ntracker. Please be sure that you have read the documentation before filing an\nissue. (If you want to help your bug to get fixed faster, you can create a\n[test case](https://github.com/dlang-community/DCD/wiki/Testing) that helps isolate\nthe issue.)\n\n* Working:\n\t* Autocompletion of properties of built-in types such as int, float, double, etc.\n\t* Autocompletion of __traits, scope, and extern arguments\n\t* Autocompletion of enums\n\t* Autocompletion of class, struct, and interface instances.\n\t* Display of call tips for functions, constructors, and variables of function type\n\t* alias declarations\n\t* Public imports\n\t* Finding the declaration location of a symbol at the cursor\n\t* *import* statement completions\n\t* Display of documentation comments in function call tips\n\t* *alias this*\n\t* *auto* declarations (Mostly)\n\t* *with* statements\n\t* Simple UFCS suggestions for concrete types and fundamental types.\n* Not working:\n\t* UFCS completion for templates, literals, aliased types, UFCS function arguments, and '.' chaining with other UFCS functions.\n\t* UFCS calltips\n\t* Autocompletion of declarations with template arguments (This will work to some extent, but it won't do things like replace T with int)\n\t* Determining the type of an enum member when no base type is specified, but the first member has an initializer\n\t* auto functions (which can then propagate the failure to auto declarations)\n\t* That one feature that you *REALLY* needed\n\n# Setup\n### General\n\n1. Install a recent D compiler. DCD is tested with DMD 2.068.2, DMD 2.069.0-rc2, and LDC 0.16 (Do not use DMD 2.068.1)\n1. Follow the directions listed below for Homebrew, Git + Make, or Dub, depending on how you would like to build DCD.\n1. Configure your text editor to call the dcd-client program. See the [wiki](https://github.com/dlang-community/DCD/wiki/IDEs-and-Editors-with-DCD-support) for information on configuring your specific editor.\n1. Start the dcd-server program before editing code. (Unless, of course, your editor's plugin handles this for you)\n\n### Git + Make\n\n1. Install a recent D compiler.\n1. Run `git submodule update --init --recursive` after cloning this repository to grab the various dependencies.\n1. Optionally set the environment variable `DC` if you wish to use another compiler than the DMD known by the system.\n1. Run `make` to build the client and server. (Or run build.bat on Windows).\n\n### OS X w/ Homebrew\n\n1. `brew install dcd`\n\n### Dub\n\n1. `dub build --build=release --config=client`\n1. `dub build --build=release --config=server`\n\n# Sockets\n## TCP\n\nOn Windows DCD will use TCP sockets to communicate between the client and server.\nDCD can use TCP sockets on other operating systems if the client and server use\nthe `--tcp` or `--port` command-line switches.\n\n## UNIX domain sockets\n\nOperating systems that support UNIX domain sockets will use them by default.\nThe path to the socket file can be overriden with the `--socketFile` option.\nThese are the default paths:\n\n#### OSX\n\nThe socket will be created at `/var/tmp/dcd-${UID}.socket`\n\n#### Linux/BSD\n\nThe client and server will attempt to create the socket in the following locations:\n* `${XDG_RUNTIME_DIR}/dcd.socket`\n* `/tmp/dcd-${UID}.socket` if `XDG_RUNTIME_DIR` is not defined.\n\n# Client\n\nBecause DCD is designed to be used from a text editor, this section is written\nprimarily for plugin authors.\n\n## Get autocomplete information\n\nThe primary use case of the client is to query the server for autocomplete information.\nTo do this, provide the client with the file that the user is editing along with the\ncursor position (in bytes).\n\n    dcd-client -c123 sourcefile.d\n\nThis will cause the client to print a listing of completions to *stdout*.\nThe client will print either a listing of function call tips, or a listing of of\ncompletions depending on if the cursor was directly after a dot character or after\na left parenthesis.\n\nThe file name is optional. If it is not specified, input will be read from *stdin*.\n\n### Dot completion\n\nWhen the first line of output is \"identifiers\", the editor should display a\ncompletion list.\n\n#### Output format\n\nA line containing the string \"identifiers\" followed by the completions that are\navailable, one per line. Each line consists of the completion name followed by a\ntab character, followed by a completion kind\n\n##### Completion kinds\n\n* c - class name\n* i - interface name\n* s - struct name\n* u - union name\n* v - variable name\n* m - member variable name\n* k - keyword, built-in version, scope statement\n* f - function or method\n* F - UFCS function\n* g - enum name\n* e - enum member\n* P - package name\n* M - module name\n* a - array\n* A - associative array\n* l - alias name\n* t - template name\n* T - mixin template name\n* h - template type parameter (when no colon constraint)\n* p - template variadic parameter\n\n#### Example output\n\n\tidentifiers\n\tparts\tv\n\tname\tv\n\tlocation\tv\n\tqualifier\tv\n\tkind\tv\n\ttype\tv\n\tresolvedType\tv\n\tcalltip\tv\n\tgetPartByName\tf\n\n#### Extended output mode\n\nYou can pass `--extended` to dcd-client to get more information. Output will now be\nescaped (newlines get escaped to `\\n`, tabs get escaped to `\\t`, backslash gets escaped to `\\\\`).\n\nCalltips are slightly different here because they first start with the function name instead of\narguments and the second part will be blank. The actual calltip is now in the third column.\n\nColumns may be empty, in which case there will be multiple tabs next to each other.\n\nThe following information will be available in every line for completion in this format then in\na tab separated format:\n* identifier: raw name of a variable or function, etc\n* kind: empty for calltips, see above for rest\n* definition: function or variable definition string or close approximation for information display purpose\n* symbol location: in which file (or `stdin`) \u0026 byte offset this symbol is defined. Separated with a space.\n* documentation: escaped documentation string of this symbol\n* typeOf: resolved type name of this symbol:\n\t\u003c!-- the items in list are copied from messages.d --\u003e\n\t* For variables, fields, globals, constants: resolved type or empty if unresolved.\n\t* For functions: resolved return type or empty if unresolved.\n\t* For constructors: may be struct/class name or empty in any case.\n\t* Otherwise (probably) empty.\n\n#### Example `--extended` output\n\n\tidentifiers\n\tlibraryFunction\tf\tTuple!long libraryFunction(string s, string s2)\tstdin 190\tfoobar\n\tlibraryFunction\tf\tint* libraryFunction(string s)\tstdin 99\tHello\\nWorld\tint*\n\tlibraryVariable\tv\tint libraryVariable\tstdin 56\tMy variable\tint\n\tlibreTypes\tg\t\tstdin 298\n\n#### Note\n\nDCD's output will start with \"identifiers\" when completing at a left paren\ncharacter if the keywords *pragma*, *scope*, *__traits*, *extern*, or *version*\nwere just before the paren.\n\nTypes in the calltips and typeOf column may not be complete, e.g. missing\ntemplate parameters or typeof expressions, etc.\n\n### Parenthesis completion\n\nWhen the first line of output is \"calltips\", the editor should display a function\ncall tip.\n\n##### Output format\n\nA line containing the string \"calltips\", followed by zero or more lines, each\ncontaining a call tip for an overload of the given function.\n\n##### Example output\n\n\tcalltips\n\tSymbol findSymbolInCurrentScope(size_t cursorPosition, string name)\n\n## Doc comment display\n\n    dcd-client --doc -c 4298\n\nWhen run with the --doc or -d option, DCD will attempt to display documentation\ncomments associated with the symbol at the cursor position. In the case of\nfunctions there can be more than one documentation comment associated with a\nsymbol. One doc comment will be printed per line. Newlines within the doc\ncomments will be replaced with \"\\n\", and backslashes escaped as \"\\\\\".\n\n#### Example output\n\n\tAn example doc comment\\nParams: a = first param\\n    Returns: nothing\n\tAn example doc comment\\nParams: a = first param\\n     b = second param\\n    Returns: nothing\n\n## Clear server's autocomplete cache\n\n    dcd-client --clearCache\n\n## Add import search path\n\nImport paths can be added to the server without restarting it. To accomplish\nthis, run the client with the -I option:\n\n\tdcd-client -Ipath/to/imports\n\n## Remove import search path\n\nImport paths can be removed from the server without restarting it. To accomplish\nthis, run the client with the -R option:\n\n\tdcd-client -Rpath/to/imports\n\n## Find declaration of symbol at cursor\n\n    dcd-client --symbolLocation -c 123\n\nThe \"--symbolLocation\" or \"-l\" flags cause the client to instruct the server\nto return the path to the file and the byte offset of the declaration of the\nsymbol at the given cursor position.\n\nThe output consists of the absolute path to the file followed by a tab character\nfollowed by the byte offset, followed by a newline character. For example:\n\n\t/home/example/src/project/bar.d\t3482\n\n## Search for symbols by name\n\nThe \"--search\" or \"-s\" option causes the server to return location information\nfor all symbols with the given name in both the file being edited as well as\nthe server cache. The output format is one result per line, with the path, the\nsymbol type, and the byte offset of the symbol separated by tab characters.\n\n### Example\n\nSearch the server's cache for symbols named \"toImpl\". (Using echo to give an EOF\nin place of a file being edited.)\n\n    echo | dcd-client --search toImpl\n\n    /usr/include/dmd/phobos/std/conv.d  f   48491\n    /usr/include/dmd/phobos/std/conv.d  f   47527\n    /usr/include/dmd/phobos/std/conv.d  f   47229\n    /usr/include/dmd/phobos/std/conv.d  f   40358\n    /usr/include/dmd/phobos/std/conv.d  f   38348\n    /usr/include/dmd/phobos/std/conv.d  f   35619\n    /usr/include/dmd/phobos/std/conv.d  f   32743\n    /usr/include/dmd/phobos/std/conv.d  f   22486\n    /usr/include/dmd/phobos/std/conv.d  f   16322\n    /usr/include/dmd/phobos/std/conv.d  f   14829\n    /usr/include/dmd/phobos/std/conv.d  f   14066\n    /usr/include/dmd/phobos/std/conv.d  f   13058\n    /usr/include/dmd/phobos/std/conv.d  f   12717\n    /usr/include/dmd/phobos/std/conv.d  f   9494\n\n## Find the use of the symbol at the cursor\n\n    dcd-client --localUse -c 123\n\nThe \"--localUse\" or \"-u\" flags cause the client to instruct the server\nto return all the uses, within the same module, of the symbol located at the given cursor position.\n\n#### Output format\n\nWhen uses exist, if the source symbol is an identifier (a type, a variable name, etc.)\nand if the symbol is not ambiguous then the first line contains the location of the symbol\n(a file name or literally _stdin_), a tab then the offset to the symbol declaration.\nFollowing the first line is a list of all known uses of the symbol in the current file.\nThe list is composed of lines each containing a single number that indicates the byte offset\nfrom the start of the file to the i-th use.\n\nOtherwise the client outputs _00000_ so that the length of the answer is guaranteed to be at least 5 bytes.\n\n#### Example output\n\n    stdin 45\n    26\n    45\n    133\n\n## Inlay Hints\n\nBuild a list of extra annoations for your IDE to display.\nYou must submit the content of the current file displayed in your editor.\n\n    dcd-client --inlayHints\n\nThis is a W.I.P., currently it only provide annoatations about aliases for your variables,\nmore is planned.\n\n#### Example output\n\n    l   -\u003eMyAlias-\u003eMyType   42\n\n# Server\n\nThe server must be running for the DCD client to provide autocomplete information.\nIn future versions the client may start the server if it is not running, but for\nnow it must be started manually or (usually) by an editor plugin.\n\n## Configuration Files\n\nThe server will attempt to read the file `${XDG_CONFIG_HOME}/dcd/dcd.conf`\n(`~/.config/dcd/dcd.conf` if XDG_CONFIG_HOME is not set) on Posix systems, or\n`dcd.conf` on Windows in the current working directory on startup.\nIf it exists, each line of the file is interpreted as a path that should be\nsearched when looking for module imports. Lines that start with the \"#\" character\nare ignored. Lines can contain environment variables which will be expanded\nduring loading. The name of the environment variable needs to the enclosed in\n${VAR}. For example:\n\n\t${HOME}/sysroot/usr/include/dmd/phobos\n\nKeep in mind that DCD treats import paths the same way that the compiler does.\nFor example, a configuration file like this will not work as expected:\n\n\t/usr/include/dmd/\n\nWhat you actually want is this:\n\n\t/usr/include/dmd/druntime/import\n\t/usr/include/dmd/phobos\n\n## Shut down the server\n\nThe server can be shut down by running the client with the `--shutdown` option:\n\n\tdcd-client --shutdown\n\n## Import directories\n\nImport directories can be specified on the command line at startup:\n\n\tdcd-server -I/home/user/code/one -I/home/user/code/two\n\n## Port number\n\nThe `--port` or `-p` option lets you specify the port number that the\nserver will listen on. The default port is 9166.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlang-community%2Fdcd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlang-community%2Fdcd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlang-community%2Fdcd/lists"}