Skip to content

JCavallo/nvim-nim

 
 

Repository files navigation

nvim-nim Build Status

Nim support for vim and advanced support for neovim. Still in heavy development.

Features

  • 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
  • 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

Installation

This plugin doesn't work if zah's nim plugin is installed.

Dependencies

  • Linux (OS X and Windows untested at the moment)

  • Nim (0.13.0)

  • Nimsuggest (0.13.0)

  • Neovim (1.2) or Vim (7.4)

    • 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

Configuration

Easiest way to install this plugin is with a plugin manager:

vim-plug

Plug "baabelfish/nvim-nim"

neobundle

NeoBundle "baabelfish/nvim-nim"

pathogen

git clone https://github.com/baabelfish/nvim-nim ~/.vim/bundle/nvim-nim

Screenshots

Syntax highlighting

Syntax highlighting

Autocompletion

Autocomplete

Symbol information and module outline

Definition

Symbol usage listing

Usages

Caveats (Will be fixed asap)

  • 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

Planned features

  • Debugger support
  • Async autocomplete with deoplete (maybe a seperate plugin)

About

Vim support for nim.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Vim Script 75.6%
  • Python 15.8%
  • Nim 5.4%
  • Shell 3.2%