Coder Social home page Coder Social logo

nvim-nim's Introduction

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)

nvim-nim's People

Contributors

baabelfish avatar jcavallo avatar rosshadden avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.