Editor Support
Pages 47
- Home
- Architectures
- BuildServices
- CircleCI
- Common Criticisms
- Community Guidelines (Proposal)
- Community Projects
- Compiler module reference
- Consts defined by the compiler
- Creating a release
- Debugging the compiler
- Editor Support
- Feature suggestions
- Fuzzing your nim code to rabbit out all the hard bugs
- Getting Started
- GitHubPages
- GitLab CI setup
- GSoC 2014 Ideas
- GSoC 2015 Ideas
- GSoC 2015 Organization Application
- GSoC 2016 Ideas
- Hunting crashes: The ultimate guide
- Hunting leaks
- IRC guidelines
- Meeting Notes
- NEP 2 Catching up with C and Rust: Ownership, destructors, unique pointers
- Nim for C programmers
- Nim for Python Programmers
- Nim use cases
- Official branches
- Playing with CPP VTABLE from Nim
- Profiling
- Pygments issues
- Roadmap
- Run nim source files like scripts (with tcc and binfmt_misc)
- Security
- Style Guide for Nim Code
- Tips and tricks
- TravisCI
- Tutorial: Creating a (micro) service
- Tutorial: Hacking the Nim compiler: Pragmas
- Tutorial: Sockets
- Unofficial FAQ
- UserGroups
- Using nimscript for configuration
- Whitespace FAQ
- Writing a Macro
- Show 32 more pages…
Intro
Getting Started
- Install
- Docs
- Curated Resources
- Editor Support
- Unofficial FAQ
- Nim for C programmers
- Nim for Python programmers
Developing
- Build
- Contribute
- Tips & Tools
- Code style
- Creating a release
- Compiler module reference
- Consts defined by the compiler
- Debugging the compiler
- Travis CI/Circle CI/App Veyor
- GitLab CI setup
Misc
Clone this wiki locally
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
-
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)
Emacs
- 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)
Vim
-
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
Kletter to look up documentation under MacOSX using Dash.
LiClipse
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.
Scite
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.filesto make scintilla recognise .nim
Aporia
Aporia is a Nim IDE written in Nim.
https://github.com/nim-lang/Aporia/
Visual Studio
https://github.com/Gravityzwell/NimStudio
LightTable
https://github.com/zah/nim.lt/
Atom
-
https://github.com/russpowers/nim-atom
- Autocomplete
- Linting/Error Checking (on file save or on-the-fly)
- Jump-to-definition
- Syntax highlighting
Gedit/Other GtkSourceView editors
There is a .lang file for gedit here
Geany
There is a pull request to provide Nim support in Geany.
Ctags
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
jEdit
https://github.com/exhu/nimrod-misc/tree/master/jedit
Sublime
-
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
Kate
Syntax highlighting:
https://github.com/PhilipWitte/NimKate
TextMate
Available from the bundle installer in preferences (repository).
QtCreator
https://github.com/filcuc/NimQtCreatorPlugin
QtCreator plugin that supports:
- Syntax highlighting
- Indentation
- Project management (build/run configuration)
- Debug with gdb
KDevelop
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.
Howl
Recent versions of Howl have built-in Nim syntax highlighting.
Micro
https://github.com/zyedidia/micro
Has built-in Nim syntax highlighting
Notepad++
Support Nim syntax highlighting and code folding via a plugin written entirely in Nim!.