Skip to content
master
Switch branches/tags
Code

Latest commit

- Make sure that the exact name `config.nims` and/or `nim.cfg` is
  matched for boundary detection.
- Also search the folder at boundary depth 0 since its still a part
  of the project, it's only when boundary depth > 0 that the folder
  is separated from the project.
ef00ec9

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nim language plugin for NeoVim

This plugin is still pretty much a work-in-progress.

CI

asciicast

Requirements

  • neovim >= 0.4.3
  • nim >= 0.20 (choosenim can be used to install this version)

Installation

Features

  • Semantic highlighting with nimsuggest. Highlight as you type (experimental)
  • "Go to Definition" support using nimsuggest.
  • Autocompletion using nimsuggest.
  • Find references to a symbol.
  • Get signature and documentation of a symbol.
  • Section movements!
  • NEP-1 style indentation!
  • And more...

Auto completion

Install prabirshrestha/asyncomplete.vim and configure it to your liking.

Add this to your configuration file to register the autocomplete source:

au User asyncomplete_setup call asyncomplete#register_source({
    \ 'name': 'nim',
    \ 'whitelist': ['nim'],
    \ 'completor': {opt, ctx -> nim#suggest#sug#GetAllCandidates({start, candidates -> asyncomplete#complete(opt['name'], ctx, start, candidates)})}
    \ })
Support for different completion plugins

While prabirshrestha/asyncomplete.vim is the most tested plugin for use with nim.nvim, it's worth noting that this plugin was made to support a wide range of completion plugins.

If your favorite completion plugin supports asynchronous completion sources in vimscript, the functions in autoload/nim/suggest/sug.vim can be used to integrate nim.nvim with it. Details on how to do so differs between plugins, so please refer to your completion plugin's documentations.

See Support for other completion plugins for pre-made configuration snippets for other plugins.

If you have any questions, you can find me in the #nim IRC channel under the handle leorize.

Usage

See the project's wiki for more information.