Note: This website is archived. For up-to-date information about D projects and development, please visit


  • Ctrl + Shift + F: format source file.
  • Ctrl + I: correct indentation.
  • Ctrl + O: quick outline.
  • Ctrl + E: shows list of open editors.
  • Ctrl + T: quick type hieararchy.
  • Ctrl + Shift + T: open declaration.
  • Ctrl + Shift + R: open resource.
  • Ctrl + /: comment lines.
  • Ctrl + Shift + /: comment block
  • Ctrl + Shift + \: remove block comment
  • Ctrl + space: autocomplete.
  • Ctrl + 2, R: rename localy.
  • F3: go to definition.
  • F4: open type hierarchy.
  • Alt + Left/Right: next/previous position in editor.
  • Ctrl + Q: go to last edit location
  • Ctrl + Shift + P: go to matching bracket
  • Ctrl + L: go to line
  • Crtl + Shift + Up: go to previous member
  • Ctrl + Shift + Down: go to next member
  • F2: show tooltip description


  • Hover on element: shows it's ddoc, or, if missing, tries to evaluate.
  • Hover on element while holding shift: shows the source code of the element.
  • Hover on element while holding ctrl and shift: tries to evaluate.
  • Hover on element while holding ctrl, then clicking: go to definition.

Autocompletion in code

  • On empty space: shows symbols reachable through the current module's imports.
  • Writing a name: shows all matching types, functions and variables.
  • In between a name: shows all matching symbols, allowing to overrite the current one holding the control key.
  • Writing a name inside a with(...) { } block: shows also members of the with symbol.
  • After a type name: shows constructors and static opCalls.
  • After a variable name: shows opCalls if the variable is a class or struct, or shows invocations if the variable is a function pointer or delegate.
  • After a dot after a type name, call, this or super: shows members excluding op* methods.
  • After "op" after a dot after a type name, call, this or super: shows op* methods.
  • After the case keyword: shows possible enums values, if switching over an enum.
  • Before an argument of a function call: show parameters and overloads.
  • After goto, break and continue: shows possible target labels.
  • Inside a version(): shows versions.
  • Inside a debug(): shows debugs.
  • In a function argument name: suggest possible names.
  • After a type: show possible names to make a variable declaration.

Autocompletion in ddoc

  • Writing $ (optionally followed by a name) or pressing ctrl+space: shows macros.
  • Writing a name or pressing ctrl+space at the start of the line: shows standard ddoc sections and macros.

Keyword proposals are also shown, according to the context in which you are writing.

Other tips

  • When completing a method that can be treated as a setter, if you press '=', then it will be autocompleted as a setter. Else, it will be autocompleted as a method.
  • Go to definition also works in comments for top-level types and functions.