Difference between revisions of "Editors"

From D Wiki
Jump to: navigation, search
m (Updated Atom language-d plugin)
(Clarified that Sublime Text syntax highlighting is likely trailing the language specification.)
 
(49 intermediate revisions by 12 users not shown)
Line 3: Line 3:
 
Text editors and lightweight development environments with D support.
 
Text editors and lightweight development environments with D support.
  
{| class="wikitable" style="text-align: center"
+
{| class="wikitable sortable" style="text-align: center"
 
!rowspan=2|Editor
 
!rowspan=2|Editor
!colspan=3|Platforms
+
!colspan=4|Platforms
 
!rowspan=2|Add-on
 
!rowspan=2|Add-on
!colspan=8|Features
+
!colspan=10|Features
 
!rowspan=2|Version
 
!rowspan=2|Version
 
!rowspan=2|Last known activity
 
!rowspan=2|Last known activity
 
|-
 
|-
!Windows || Linux || OS X
+
!Windows || Linux || OS X || FreeBSD
!Syntax highlighting || Auto-<wbr>completion || Code navigation || Code formatting || Building || Linting || Debugging || Profiling
+
!Syntax highlighting || Auto-<wbr>completion || Code navigation || Code formatting || Building || Linting || Debugging || Profiling || Coverage Analysis || Auto Issue Fixing
 
|-
 
|-
 
|rowspan=3|[https://atom.io/ Atom]
 
|rowspan=3|[https://atom.io/ Atom]
|rowspan=2|{{yes}}
+
|rowspan=3|{{yes}}
|rowspan=2|{{yes}}
+
|rowspan=3|{{yes}}
|rowspan=2|{{yes}}
+
|rowspan=3|{{yes}}
 +
|rowspan=3|
  
 
|[https://atom.io/packages/language-d language-D]
 
|[https://atom.io/packages/language-d language-D]
|{{yes}}|| || || || || || ||
+
|{{yes}}|| || || || || || || || ||
 
| 3.3.1 || 2016-08
 
| 3.3.1 || 2016-08
 
|-
 
|-
|[https://github.com/Vild/atomize-d Atomize-D]
+
|[https://github.com/Pure-D/atomize-d atomize-d]<ref name="workspace-d">Using [https://github.com/Pure-D/workspace-d workspace-d]</ref>
|{{yes}}||{{yes}}<ref name="dcd">via [[DCD]]</ref>|| ||{{yes}}<ref name="dfmt">via [https://github.com/Hackerpilot/dfmt Dfmt]</ref>|| ||{{yes}}<ref name="dscanner">via [https://github.com/Hackerpilot/Dscanner Dscanner]</ref> || ||
+
|{{yes}}||{{yes}}<ref name="dcd">via [[DCD]]</ref>|| ||{{yes}}<ref name="dfmt">via [https://github.com/dlang-community/dfmt Dfmt]</ref>|| ||{{yes}}<ref name="dscanner">via [https://github.com/dlang-community/D-scanner Dscanner]</ref> || || || ||
||| 2016-03
+
||| 2017-08
 
|-
 
|-
|{{yes}}||{{yes}}||
+
|[https://atom.io/packages/ide-dlang ide-dlang]
|[https://atom.io/packages/autocomplete-dcd autocomplete-dcd]
+
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt-or-builtin">via [https://github.com/dlang-community/dfmt Dfmt] or via built-in formatter</ref>|| ||{{yes}}<ref name="dscanner"/>|| || || ||
|||{{yes}}<ref name="dcd"/>|| || || || || ||
+
| 1.17.1 || 2020-04 (Unmaintained)
| 1.7.1 || 2016-07
 
 
|-
 
|-
 
|[https://github.com/jamadagni/dhee/ Dhee]
 
|[https://github.com/jamadagni/dhee/ Dhee]
|{{yes}}||{{yes}}||{{yes}}
+
|{{yes}}||{{yes}}||{{yes}}||
 
|(built-in)
 
|(built-in)
|{{yes}}|| || || ||{{yes}}|| || ||
+
|{{yes}}|| || || ||{{yes}}|| || || || ||
| git: fb38f75 || 2015-12
+
| 2.0.10 || 2018-12
 
|-
 
|-
|[http://www.gnu.org/software/emacs/ Emacs]
+
|[https://www.gnu.org/software/emacs/ Emacs]
|{{yes}}||{{yes}}||{{yes}}
+
|{{yes}}||{{yes}}||{{yes}}||{{yes}}
 
|[https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode Official Emacs D-Mode]
 
|[https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode Official Emacs D-Mode]
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}|| || || ||
+
|{{yes}}||{{yes}}<ref name="dcd"/><ref>Needs additional packages check [https://github.com/atilaneves/ac-dcd]</ref>||{{yes}}<ref name="dcd"/>||{{yes}}|| || || || || ||
| 2.0.8 || 2016-05
+
| 2.0.10 || 2019-10
 
|-
 
|-
|[http://www.geany.org/ Geany]
+
|[https://www.geany.org/ Geany]
|{{yes}}||{{yes}}||{{yes}}
+
|{{yes}}||{{yes}}||{{yes}}||{{yes}}
 
|(built-in)
 
|(built-in)
|{{yes}}|| ||{{yes}}|| ||{{yes}}|| || ||
+
|{{yes}}|| ||{{yes}}|| ||{{yes}}|| || || || ||
| 1.27 || 2016-03
+
| 1.3.6 || 2019-09
 
|-
 
|-
 
|[http://www.jedit.org jEdit]
 
|[http://www.jedit.org jEdit]
|{{yes}}||{{yes}}||{{yes}}
+
|{{yes}}||{{yes}}||{{yes}}||{{yes}}
 
|(built-in)
 
|(built-in)
|{{yes}}|| || || ||{{yes}}|| || ||
+
|{{yes}}|| || || ||{{yes}}|| || || || ||
| 5.3.0 || |2015-10
+
| 5.5.0 || 2018-04
 
|-
 
|-
|rowspan=2|KDE's [http://www.kde.org/applications/utilities/kwrite/ KWrite], [http://kate-editor.org/ Kate]
+
|rowspan=2|KDE's [https://kde.org/applications/utilities/org.kde.kwrite KWrite], [https://kate-editor.org/ Kate]
 
|rowspan=2|
 
|rowspan=2|
 
|rowspan=2|{{yes}}
 
|rowspan=2|{{yes}}
 
|rowspan=2|
 
|rowspan=2|
 +
|rowspan=2|{{yes}}
 
|(built-in)
 
|(built-in)
|{{yes}}|| || || || || || ||
+
|{{yes}}|| || || || || || || || ||
|KDE 4.14.01 || 2014
+
| 20.04.3 || 2020-07
 
|-
 
|-
 
|[https://projects.kde.org/projects/kde/applications/kate/repository/revisions/master/show/addons/lumen Lumen]
 
|[https://projects.kde.org/projects/kde/applications/kate/repository/revisions/master/show/addons/lumen Lumen]
| ||{{yes}}<ref name="dcd"/>|| || || || || ||
+
| ||{{yes}}<ref name="dcd"/>|| || || || || || || ||
| || 2014
+
| || 2017-09
 +
|-
 +
|rowspan=2|[https://notepad-plus-plus.org/ Notepad++]
 +
|rowspan=2|{{yes}}
 +
|rowspan=2|
 +
|rowspan=2|
 +
|rowspan=2|
 +
|(built-in)
 +
|{{yes}}<ref name="spotty">Lexer is not 100% compliant with current D specification.</ref>|| || || || || || || || ||
 +
| 7.8.9 || 2020-07
 +
|-
 +
|[https://gitlab.com/dokutoku/rdmd-for-npp RDMD for Notepad++]|| || || || ||{{yes}}|| || || || ||
 +
| 0.1.0.2 || 2020-08
 
|-
 
|-
|[http://prowiki.org/wiki4d/wiki.cgi?EditorSupport/NotepadPlus Notepad++]
+
|[https://www.scintilla.org/SciTE.html SciTE]
|{{yes}}|| ||
+
|{{yes}}||{{yes}}||{{yes}}||{{yes}}
 
|(built-in)
 
|(built-in)
|{{yes}}<ref name="spotty">Lexer is not 100% compliant with current D specification.</ref>|| || || || || || ||
+
|{{yes}}|| || || || || || || || ||
|6.9.2 || 2016-05
+
| 4.4.4 || 2020-07
 
|-
 
|-
|[http://www.scintilla.org/SciTE.html SciTE]
+
|rowspan=5|[https://www.sublimetext.com/ Sublime Text 3]
|{{yes}}||{{yes}}||{{yes}}
+
|rowspan=5|{{yes}}
 +
|rowspan=5|{{yes}}
 +
|rowspan=5|{{yes}}
 +
|rowspan=5|
 
|(built-in)
 
|(built-in)
|{{yes}}|| || || || || || ||
+
|{{yes}}<ref name="sublime-syntax">[https://github.com/sublimehq/Packages/pull/1345#issuecomment-364237018 Sublime Text likely won't ever be able to support external syntax highlighting engines.] There is a high chance of issues with newer language constructs. It is possible to submit patches yourself.</ref>|| || || || || || || || ||
|3.6.6 || 2016-05
+
| v4131 || 2022-03
 
|-
 
|-
|[http://www.sublimetext.com/ Sublime Text 3]
 
|{{yes}}||{{yes}}||{{yes}}
 
 
|[https://github.com/yazd/DKit DKit]
 
|[https://github.com/yazd/DKit DKit]
|{{yes}}||{{yes}}<ref name="dcd"/>|| ||{{yes}}<ref name="dformat">Using [https://packagecontrol.io/packages/DFormat DFormat]</ref>||{{yes}}||{{yes}}<ref name="dscanner"/>|| ||
+
| ||{{yes}}<ref name="dcd"/>|| || ||{{yes}}||{{yes}}<ref name="dscanner"/>|| || || ||
|2.02 stable / 3 (beta) || 2016-03
+
| 2.02 stable / 3 (beta) || 2017-10
 +
|-
 +
|[https://packagecontrol.io/packages/DFormat DFormat]
 +
| || || ||{{yes}}|| || || || || ||
 +
| 0.3.3 || 2016-01
 +
|-
 +
|[https://github.com/Pure-D/sublime-d sublime-d]<ref name="workspace-d"/>
 +
| ||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt"/>|| || || || || ||
 +
| 0.0.1 || 2016-10
 +
|-
 +
|[https://github.com/veelo/SublimeLinter-contrib-dmd SublimeLinter-contrib-dmd]
 +
| || || || || ||{{yes}}|| || || ||
 +
| 1.3.1 || 2019-08
 
|-
 
|-
|[http://sourceforge.net/projects/synwrite/ SynWrite]
+
|[https://sourceforge.net/projects/synwrite/ SynWrite]
|{{yes}}|| ||
+
|{{yes}}|| || ||
 
|(built-in)
 
|(built-in)
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}|| ||{{yes}}|| || ||
+
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}|| ||{{yes}}|| || || || ||
|6.18 || 2016-02
+
| 6.40.2770 || 2017-08
 
|-
 
|-
|rowspan=2|[http://foicica.com/textadept/ Textadept]
+
|rowspan=2|[https://foicica.com/textadept/ Textadept]
 
|rowspan=2|{{yes}}
 
|rowspan=2|{{yes}}
 
|rowspan=2|{{yes}}
 
|rowspan=2|{{yes}}
 
|rowspan=2|{{yes}}
 
|rowspan=2|{{yes}}
 +
|rowspan=2|
 
|(built-in)
 
|(built-in)
|{{yes}}|| || || || || || ||
+
|{{yes}}|| || || || || || || || ||
|8.7 || 2016-05
+
| 10.8 || 2020-01
 
|-
 
|-
 
|[https://github.com/Hackerpilot/textadept-d textadept-d]
 
|[https://github.com/Hackerpilot/textadept-d textadept-d]
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt"/>|| ||{{yes}}<ref name="dscanner"/> || ||
+
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt"/>|| ||{{yes}}<ref name="dscanner"/> || || || ||
|8.7 || 2016-05
+
| || 2019-01
 
|-
 
|-
|[http://macromates.com/ TextMate]
+
|[https://macromates.com/ TextMate]
| || ||{{yes}}
+
| || ||{{yes}}||
 
|[https://github.com/textmate/d.tmbundle d.tmbundle]
 
|[https://github.com/textmate/d.tmbundle d.tmbundle]
|{{yes}}|| ||{{yes}}|| ||{{yes}}|| || ||
+
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>|| ||{{yes}}|| || || || ||
| || 2016-05
+
| || 2019-06
 
|-
 
|-
|[http://www.vim.org/ Vim]
+
|[https://www.vim.org/ Vim] [https://neovim.io/ Neovim]
|{{yes}}||{{yes}}||{{yes}}
+
|{{yes}}||{{yes}}||{{yes}}||{{yes}}
 
|[[D in Vim]]
 
|[[D in Vim]]
|{{yes}}||{{yes}}|| || || || ||{{yes}}||
+
|{{yes}}||{{yes}}||{{yes}}||{{yes}}|| || ||{{yes}}|| || ||
| || 2014—2016<ref>Activities vary for every package</ref>
+
| || 2014—2018<ref>Activities vary for every package</ref>
 
|-
 
|-
|rowspan=3|[https://code.visualstudio.com/ Visual Studio Code]
+
|rowspan=4|[https://code.visualstudio.com/ Visual Studio Code]
|{{yes}}||{{yes}}||
+
|{{yes}}||{{yes}}||{{yes}}||
|[https://marketplace.visualstudio.com/items/webfreak.code-d code-d]<ref>Using [https://github.com/Pure-D/workspace-d workspace-d]</ref>
+
|[https://marketplace.visualstudio.com/items/webfreak.code-d code-d]<ref name="workspace-d"/>
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt"/>||{{yes}}||{{yes}}<ref name="dscanner"/> || ||
+
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt"/>||{{yes}}||{{yes}}<ref name="dscanner"/> || ||{{yes}}<ref>only GC calls (bytes allocated)</ref> ||{{yes}}||{{yes}}
| 0.10.13 || 2016-07
+
| 0.22.0 || 2019-12
 
|-
 
|-
|{{yes}}||{{yes}}||{{yes}}
+
|{{yes}}||{{yes}}||{{yes}}||
 
|[https://marketplace.visualstudio.com/items/webfreak.debug Debug]
 
|[https://marketplace.visualstudio.com/items/webfreak.debug Debug]
| || || || |||| ||{{yes}}||
+
| || || || |||| ||{{yes}}|| || ||
| 0.12.2 || 2016-09
+
| 0.25.0 || 2020-05
 
|-
 
|-
|{{yes}}||{{yes}}||{{yes}}<ref>Untested, but should work</ref>
+
|{{yes}}||{{yes}}||{{yes}}<ref>Untested, but should work</ref>||
 
|[https://marketplace.visualstudio.com/items/dlang-vscode.dlang D Language]
 
|[https://marketplace.visualstudio.com/items/dlang-vscode.dlang D Language]
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt"/>||{{yes}}||{{yes}}<ref name="dscanner"/> || ||
+
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt"/>||{{yes}}||{{yes}}<ref name="dscanner"/> || ||{{yes}}<ref>only tracegen (function calling statistics)</ref> || ||
| 0.8.0 || 2016-09
+
| 0.9.0 || 2018-12 ([https://github.com/dlang-vscode/dlang-vscode#notice-as-this-extension-is-not-longer-under-active-development-it-is-suggested-to-migrate-to-a-much-more Unmaintained])
 +
|-
 +
|{{yes}}||{{yes}}||{{yes}}||
 +
|[https://marketplace.visualstudio.com/items/LaurentTreguier.vscode-dls Dlang]
 +
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dfmt-or-builtin"/>|| ||{{yes}}<ref name="dscanner"/> || || || ||
 +
| 1.16.11 || 2020-05 (Unmaintained)
 
|-
 
|-
|[http://www.zeusedit.com/d.html Zeus]
+
|[https://www.zeusedit.com/d.html Zeus]
|{{yes}}|| ||
+
|{{yes}}|| || ||
 
|(built-in)
 
|(built-in)
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}|| || ||{{yes}}||
+
|{{yes}}||{{yes}}<ref name="dcd"/>||{{yes}}<ref name="dcd"/>||{{yes}}|| || ||{{yes}}|| || ||
| 3.98e || 2016-06
+
| 3.98v || 2019-09-06
 
|-
 
|-
 
|}
 
|}
Line 142: Line 174:
  
 
== See also ==
 
== See also ==
* [[IDEs]] integration with full IDEs
+
* [[IDEs]]
  
 
[[Category:Text editors]]
 
[[Category:Text editors]]

Latest revision as of 12:03, 19 May 2022

Text Editors

Text editors and lightweight development environments with D support.

Editor Platforms Add-on Features Version Last known activity
Windows Linux OS X FreeBSD Syntax highlighting Auto-completion Code navigation Code formatting Building Linting Debugging Profiling Coverage Analysis Auto Issue Fixing
Atom Green check.png Green check.png Green check.png language-D Green check.png 3.3.1 2016-08
atomize-d[1] Green check.png Green check.png[2] Green check.png[3] Green check.png[4] 2017-08
ide-dlang Green check.png Green check.png[2] Green check.png[2] Green check.png[5] Green check.png[4] 1.17.1 2020-04 (Unmaintained)
Dhee Green check.png Green check.png Green check.png (built-in) Green check.png Green check.png 2.0.10 2018-12
Emacs Green check.png Green check.png Green check.png Green check.png Official Emacs D-Mode Green check.png Green check.png[2][6] Green check.png[2] Green check.png 2.0.10 2019-10
Geany Green check.png Green check.png Green check.png Green check.png (built-in) Green check.png Green check.png Green check.png 1.3.6 2019-09
jEdit Green check.png Green check.png Green check.png Green check.png (built-in) Green check.png Green check.png 5.5.0 2018-04
KDE's KWrite, Kate Green check.png Green check.png (built-in) Green check.png 20.04.3 2020-07
Lumen Green check.png[2] 2017-09
Notepad++ Green check.png (built-in) Green check.png[7] 7.8.9 2020-07
RDMD for Notepad++ Green check.png 0.1.0.2 2020-08
SciTE Green check.png Green check.png Green check.png Green check.png (built-in) Green check.png 4.4.4 2020-07
Sublime Text 3 Green check.png Green check.png Green check.png (built-in) Green check.png[8] v4131 2022-03
DKit Green check.png[2] Green check.png Green check.png[4] 2.02 stable / 3 (beta) 2017-10
DFormat Green check.png 0.3.3 2016-01
sublime-d[1] Green check.png[2] Green check.png[2] Green check.png[3] 0.0.1 2016-10
SublimeLinter-contrib-dmd Green check.png 1.3.1 2019-08
SynWrite Green check.png (built-in) Green check.png Green check.png[2] Green check.png Green check.png 6.40.2770 2017-08
Textadept Green check.png Green check.png Green check.png (built-in) Green check.png 10.8 2020-01
textadept-d Green check.png Green check.png[2] Green check.png[2] Green check.png[3] Green check.png[4] 2019-01
TextMate Green check.png d.tmbundle Green check.png Green check.png[2] Green check.png[2] Green check.png 2019-06
Vim Neovim Green check.png Green check.png Green check.png Green check.png D in Vim Green check.png Green check.png Green check.png Green check.png Green check.png 2014—2018[9]
Visual Studio Code Green check.png Green check.png Green check.png code-d[1] Green check.png Green check.png[2] Green check.png[2] Green check.png[3] Green check.png Green check.png[4] Green check.png[10] Green check.png Green check.png 0.22.0 2019-12
Green check.png Green check.png Green check.png Debug Green check.png 0.25.0 2020-05
Green check.png Green check.png Green check.png[11] D Language Green check.png Green check.png[2] Green check.png[2] Green check.png[3] Green check.png Green check.png[4] Green check.png[12] 0.9.0 2018-12 (Unmaintained)
Green check.png Green check.png Green check.png Dlang Green check.png Green check.png[2] Green check.png[2] Green check.png[5] Green check.png[4] 1.16.11 2020-05 (Unmaintained)
Zeus Green check.png (built-in) Green check.png Green check.png[2] Green check.png[2] Green check.png Green check.png 3.98v 2019-09-06
  1. 1.0 1.1 1.2 Using workspace-d
  2. 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 via DCD
  3. 3.0 3.1 3.2 3.3 3.4 via Dfmt
  4. 4.0 4.1 4.2 4.3 4.4 4.5 4.6 via Dscanner
  5. 5.0 5.1 via Dfmt or via built-in formatter
  6. Needs additional packages check [1]
  7. Lexer is not 100% compliant with current D specification.
  8. Sublime Text likely won't ever be able to support external syntax highlighting engines. There is a high chance of issues with newer language constructs. It is possible to submit patches yourself.
  9. Activities vary for every package
  10. only GC calls (bytes allocated)
  11. Untested, but should work
  12. only tracegen (function calling statistics)

See also