If you add more editor support, don't forget to add it to the FAQ as well.
The following editors have some Nim support:
Visual Studio Code aka VSCode (and VSCodium)Nim extension written in the Nim language
Available on Visual Studio Market Place and OpenVSX (Nim Extension)
Syntax Highlight (nim, nims, nimble, nim.cfg)
Code Completion
Signature Help
Goto Definition
Find References
File outline
Lint-on-save (optional)
Build-on-save and / or hotkey (optional)
Workspace symbol search
Quick info
Nim check result reporting (macro development)
Related extensions and information for Nim with VSCode
https://plugins.jetbrains.com/plugin/15128-nim (JetBrains Official Nim Plugin)
Syntax highlighting - token-based and semantic
Syntax errors highlighting
Code completion, find usages and refactoring of unqualified symbols
Import and include resolution to relative files
Code folding
Structure view
Different forms of the same identifier are recognised properly, e.g. foo, f_O_O, fOO or even f oo
Coming soon:
https://plugins.jetbrains.com/plugin/14520-nimatron/ (Nimatron plugin):DEPRECATED
" acp plugins plug 'girishji/vimcomplete' plug 'girishji/lsp-complete.vim' plug 'yegappan/lsp' " for nim plugins plug 'Angluca/nim.vim' plug 'Angluca/auto-pairs' " lsp config au filetype nim call LspAddServer([#{ \ name: 'nimlsp', \ filetype: ['nim'], \ path: 'nimlsp', \ args: [] \ }])
- vim:
PlugInstall
- cmd:
nimble install nimlsp
- Very good plugins for nim :)
https://github.com/jayli/vim-easycomplete
Plug 'jayli/vim-easycomplete'
PlugInstall
nimble install nimlsp
https://github.com/zah/nim.vim/
https://github.com/alaviss/nim.nvim
An experimental plugin targeting Neovim (no Vim support) featuring:
http://gradha.github.io/articles/2014/02/invoking-dash-from-the-command-line-vim.html
Instructions to map Vim's K
letter to look up documentation under MacOSX using Dash.
https://github.com/w0rp/ale (Asynchronous Lint Engine)
nim check
on save by defaulthttps://github.com/baabelfish/nvim-nim
A plugin for Vim and Neovim, not updated in a few years.
nimble install nimlangserver
(no need to edit languages.toml
)~/.config/helix/languages.toml
:[[language]] name = "nim" language-servers = [ "nimlangserver" ]
https://github.com/xomachine/textadept-nim
A plugin for Textadept
LiClipse is a plugin for Eclipse (which also provides a standalone version for convenience) which provides Nim support providing syntax-highlighting, outline, comment/uncomment (ctrl+/), select/deselect scope (Shift+Alt+Up/Down), auto-indent, mark occurrences, user templates, multiple cursors (Ctrl+K or Ctrl+Alt+mouse select) and indent guides.
Recent versions of Scite have out-of-the-box support for Nim. For older versions:
http://sourceforge.net/p/scintilla/scite/ci/default/tree/src/nimrod.properties?format=raw
To enable syntax highlighting, edit the global config file: (from http://forum.nim-lang.org/t/312)
nimrod
from the list in imports.exclude=(...lots of stuff)
To add *.nim to Scite's "All Source" filter (tell Scite to treat .nim files as source code):
file.patterns.nimrod=*.nim
, add one more line : *source.patterns.nimrod=$(file.patterns.nimrod);
source.files=$(star *source.patterns.)
, we're done ;
Aporia is a Nim IDE written in Nim.
https://github.com/nim-lang/Aporia/
https://github.com/Gravityzwell/NimStudio
https://github.com/zah/nim.lt/
https://github.com/russpowers/nim-atom
There is a .lang file for gedit here
Geany is a lightweight GUI text editor using Scintilla and GTK+, including basic IDE features. It supports syntax highlighting for Nim since Geany 1.36.
Basic ~/.ctags
rules for Nim code (Feel free to improve and contribute) Don't use this if possible, Nim idetools provides better results.
--langdef=nim
--langmap=nim:.nim
--regex-nim=/(\w+)\*?\s*=\s*object/\1/t,class/
--regex-nim=/(\w+)\*?\s*=\s*enum/\1/t,enum/
--regex-nim=/(\w+)\*?\s*=\s*tuple/\1/t,tuple/
--regex-nim=/(\w+)\*?\s*=\s*range/\1/t,subrange/
--regex-nim=/(\w+)\*?\s*=\s*proc/\1/t,proctype/
--regex-nim=/proc\s+(\w+)/\1/f,procedure/
--regex-nim=/method\s+(\w+)/\1/f,method/
--regex-nim=/proc\s+`([^`]+)`/\1/o,operator/
--regex-nim=/template\s+(\w+)/\1/t,template/
--regex-nim=/macro\s+(\w+)/\1/m,macro/
Alternatively, there's a native tags generator specifically for Nim: https://bitbucket.org/nimcontrib/ntags
https://github.com/exhu/nimrod-misc/tree/master/jedit
https://github.com/vanyle/SublimeNim
SublimeNim is a Sublime Text 4 plugin for Nim. Some features:
nim check
)nimsuggest
)https://github.com/Varriount/NimLime
NimLime is a Sublime Text plugin that supports:
Syntax highlighting:
https://github.com/PhilipWitte/NimKate
Available from the bundle installer in preferences (repository).
Enable the experimental plugin 'Nim' from the menu Help -> About Plugin.. Support
https://github.com/xyz32/KDevelop-template
Demo: https://vimeo.com/135918228
KDevelop templates for Nim project and Nim file:
Make sure you have both Nim and Nimble installed.
Recent versions of Howl have built-in Nim syntax highlighting.
https://github.com/zyedidia/micro
Has built-in Nim syntax highlighting
https://github.com/jangko/nppnim
nppNim is a plugin written entirely in Nim
https://github.com/gremlin-art/nim2_ide
nim2_ide is a plugin written in Nim v2
nimsuggest
):
nimpretty
)Pull request with the description of how to apply the attached settings locally to enable the Nim syntax highlighting.
Has built-in Nim syntax highlighting and external linting support using Nim check with this hook
Nim lexer is present in addons. To install it, use menu item "Plugins / Addons Manager / Install".
Plugin "LSP Client" supports Nim LSP server good: https://wiki.freepascal.org/CudaText_plugins#LSP_server_for_Nim
Language Server Protocol (LSP)https://github.com/PMunch/nimlsp
Partial implementation including completion and definitions. Will require separate syntax and indenting plugin.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4