-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Editor Support
If you add more editor support, don't forget to add it to the FAQ as well.
The following editors have some Nim support:
-
https://marketplace.visualstudio.com/items?itemName=kosz78.nim (Nim Extension)
-
Syntax Highlight (nim, nims, nimble, nim.cfg)
-
Code Completion
-
Goto Definition
-
Find References
-
File outline
-
Lint-on-save (optional)
-
Build-on-save and / or hotkey (optional)
-
Workspace symbol search
-
Related extensions and information for Nim with VSCode
-
https://code.visualstudio.com (editor homepage)
-
https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow (indent visualizer)
-
https://marketplace.visualstudio.com/items?itemName=mattn.Runner (code runner)
-
https://marketplace.visualstudio.com/items?itemName=webfreak.debug (debugger)
-
http://forum.nim-lang.org/t/2061 (Nim Forum Thread)
- https://github.com/nim-lang/nim-mode (requires emacs 24.4)
- https://github.com/jameshfisher/nimrod-mode (works with emacs 23 too, as of 2014-02-15)
-
https://github.com/zah/nim.vim/
- Syntax Highlighting
- Auto-indent
- Build/Jump to errors within Vim
- Project Navigation and Jump to Definition (using the Ctags support listed below or Nim's idetools command)
-
https://github.com/baabelfish/nvim-nim
A very new plugin for Vim and Neovim, still in heavy development.
-
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)
- General lint/syntax-check plugin
- Supports running
nim check
on save by default - Only works with Vim8 and neovim since it uses async features
-
https://github.com/xomachine/textadept-nim
A very new 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 nim, edit the global config file: (from http://forum.nim-lang.org/t/312)
- remove nimrod from the list in
imports.exclude=(...lots of stuff)
- edit
source.files
to make scintilla recognise .nim
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
- Autocomplete
- Linting/Error Checking (on file save or on-the-fly)
- Jump-to-definition
- Syntax highlighting
There is a .lang file for gedit here
There is a pull request to provide Nim support in Geany.
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/Varriount/NimLime
NimLime is a Sublime Text plugin that supports:
- Syntax highlighting
- Go to definition
- Error checking and highlighting through the compiler
- Completion suggestions though the compiler
- Babel package manager interaction
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
- Syntax Highlighting
- Debugging
- Simple project handling
https://github.com/xyz32/KDevelop-template
Demo: https://vimeo.com/135918228
KDevelop templates for Nim project and Nim file:
- Project management (build/run configuration)
- New nim file
- Debug with gdb (You will need to uncomment the debug flag in the nim.cfg file)
- Syntax Highlighting (Needs Kate syntax highlighting).
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
Support Nim syntax highlighting and code folding via a plugin written entirely in Nim!.
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
Intro
Getting Started
- Install
- Docs
- Curated Packages
- Editor Support
- Unofficial FAQ
- Nim for C programmers
- Nim for Python programmers
- Nim for TypeScript programmers
- Nim for D programmers
- Nim for Java programmers
- Nim for Haskell programmers
Developing
- Build
- Contribute
- Creating a release
- Compiler module reference
- Consts defined by the compiler
- Debugging the compiler
- GitHub Actions/Travis CI/Circle CI/Appveyor
- GitLab CI setup
- Standard library and the JavaScript backend
Misc