Nim support for vim and advanced support for neovim. Still in heavy development.
This fork is mainly for backing up my temporary fixes (a.k.a. dirty fixes) to some bugs that I discovered which cannot be fixed properly somehow at the time. Or some modifications that suit my need only, which does no apply to general audience.
This fork is NOT intended to be merged upstream.
- improved nimsuggest highlighting
- do not highlight operators for avoiding ugliness
- re-calculate identifier length to dirty fix nim-lang/nimsuggest#24
- enable nimsuggest highlighting by default
- modified
hi link
s for syntax highlightinghi link nimPragma Title
hi link nimPragmas Macro
- use the indent file from
zah/nim.vim
- Asynchronous
- Up to date syntax highlighting
- Normal vim highlight
- More intelligent highlight with nimsuggest (experimental)
- Semantic highlighting for specified nim symbol kinds (experimental)
- Indentation
- Error checking
- Using
:make
- Neomake
- Using
- Project navigation with nimsuggest
- Jump to definition
- Get symbol information (type, module, file, signature, etc...)
- Find usages (file and/or project)
- Autocompletion
- Nimsuggest omnicompletion (still sync, deoplete/ycm incoming...)
- Autocomplete module names (experimental)
- IDE like stuff
- Jump to documentation in web
- Refactoring
- Rename symbol in file or project
- Outline listing all symbols in the module (like tagbar)
- Jump to outline symbol with unite (experimental)
- REPL (experimental)
- Open repl
- Send current buffer
- Send selection
This plugin doesn't work if zah's nim plugin is installed.
-
Linux (OS X and Windows untested at the moment)
-
Nim (0.13.0)
-
Nimsuggest (0.13.0)
-
- NOTE: Vim is not currently supporting async features
-
Optional: vim-operator-user for defining routine text object
-
Optional: unite-outline for jumping to symbols inside module
-
Optional: YouCompleteMe for jumping to symbols inside module
-
Optional: Neomake for compilation errors
Easiest way to install this plugin is with a plugin manager:
Plug "baabelfish/nvim-nim"
NeoBundle "baabelfish/nvim-nim"
git clone https://github.com/baabelfish/nvim-nim ~/.vim/bundle/nvim-nim
- No support for main/project file yet
- Launching new nimsuggest for every completion
- Using stdio to communicate with nimsuggest
- Docstring is still missing
- Completion is a bit wonky with plain vim. Works well with YouCompleteMe
- Debugger support
- Async autocomplete with deoplete (maybe a seperate plugin)