All Projects → kbrw → Elixir.nvim

kbrw / Elixir.nvim

Vim Completion/Doc/Eval for Elixir (nvim), compile https://github.com/awetzel/neovim-elixir and https://github.com/awetzel/nvim-rplugin

Labels

Projects that are alternatives of or similar to Elixir.nvim

Vim Etherpad
Plugin to enable collaborative edition on etherpad with the best editor
Stars: ✭ 89 (-10.1%)
Mutual labels:  viml
Prolog.vim
Prolog Integration for Vim
Stars: ✭ 91 (-8.08%)
Mutual labels:  viml
Devbox
Solomon's dev environment
Stars: ✭ 95 (-4.04%)
Mutual labels:  viml
Vim Go Extra
Extra plugin for golang
Stars: ✭ 90 (-9.09%)
Mutual labels:  viml
Dotfiles
My dotfiles
Stars: ✭ 91 (-8.08%)
Mutual labels:  viml
Vim Jst
A vim plugin for highlighting and indenting JST/EJS syntax
Stars: ✭ 92 (-7.07%)
Mutual labels:  viml
Vim Jinja
Repository for Jinja support in vim.
Stars: ✭ 87 (-12.12%)
Mutual labels:  viml
Vim Ruby Minitest
Vim highlighting & completion for MiniTest
Stars: ✭ 97 (-2.02%)
Mutual labels:  viml
Vim Json
Syntax highlighting for JSON in Vim
Stars: ✭ 91 (-8.08%)
Mutual labels:  viml
Vip
DEPRECATED - Switch to https://github.com/tobyS/pdv and https://github.com/tobyS/vip instead!
Stars: ✭ 94 (-5.05%)
Mutual labels:  viml
Mango.vim
A color scheme for vim
Stars: ✭ 90 (-9.09%)
Mutual labels:  viml
Unite Tag
tags soruce for unite.vim
Stars: ✭ 91 (-8.08%)
Mutual labels:  viml
Vim config
My vim configuration; packaged to be other-user-friendly
Stars: ✭ 92 (-7.07%)
Mutual labels:  viml
Vim
我的VIM配置
Stars: ✭ 89 (-10.1%)
Mutual labels:  viml
Vim Howdoi
A Vim frontend for howdoi, the awesome command line tool that lets you ask what you need and grabs the snippet of code from SO.
Stars: ✭ 96 (-3.03%)
Mutual labels:  viml
Source Insight Vim
source-insight-like vim.
Stars: ✭ 88 (-11.11%)
Mutual labels:  viml
Yavide
Modern C/C++ integrated development environment
Stars: ✭ 1,306 (+1219.19%)
Mutual labels:  viml
Textobjectify
TextObjectify is a Vim plugin which improves text-objects
Stars: ✭ 98 (-1.01%)
Mutual labels:  viml
Preto
A minimal dark theme for VIM.
Stars: ✭ 97 (-2.02%)
Mutual labels:  viml
Cmd2.vim
cmdline-mode enhancement for Vim
Stars: ✭ 94 (-5.05%)
Mutual labels:  viml

elixir.nvim with real contextual completion and doc

NVim plugin for Elixir.

Thanks to the neovim host plugin: https://github.com/awetzel/neovim-elixir, you can develop your own vim plugin in Elixir !

The https://github.com/awetzel/nvim-rplugin project is a vim plugin in Elixir, containing vim functions and commands for documentation, elixir evaluation and completion.

This Vim plugin packages both to give you a nice development environment for Elixir in nvim.

screencast

Features

  • Omni completion with doc
  • Elixir documentation of modules and functions with colors with vim-ref (and K binding)
  • Interpret the currently selected Elixir Code with :ElixirExec
  • If no line selected, then the whole file is interpreted, useful to dynamically reload current file modules when the app runs with :MixStart
  • Bindings are kept along interpretations
  • You can reset binding using the bang: :ElixirExec!
  • Load nearest mix project in current file path with :MixLoad
  • Start the current mix project application inside your vim: :MixStart
  • Deoplete source file for async completion (https://github.com/Shougo/deoplete.nvim)
  • The command :ElixirQuickBuild parses the current buffer to maintain a map of line-> __ENV__, after a call, the completion and documentation will be aware of the context (aliases, imports, use).
  • The :ElixirQuickBuild background compilation can trigger error highlighting and log into vim to help your debugging.

Installation

Just copy this repository into your vim config directory and run install.sh to install both Elixir host for neovim and the elixir plugin.

After installation, run :UpdateRemotePlugins inside your neovim, then restart it to add then Elixir functions and commands to vim.

This package has two dependencies but optional: the official vim-elixir for syntax and indent and vim-ref for doc.

Plug 'elixir-lang/vim-elixir'
Plug 'thinca/vim-ref'
Plug 'awetzel/elixir.nvim', { 'do': 'yes \| ./install.sh' }

Configuration

Two possible configurations are available for the completion function:

  • g:elixir_maxmenu is an integer giving the max length of the function doc preview in omni completion, default to 70
  • g:elixir_docpreview is a boolean (int 0 or 1) to choose if you want the completion function to open doc in preview window or not, default to 0.
  • g:elixir_showerror is a boolean (int 0 or 1) to choose if you want to highlight the errorneous line and log the error into vim during :ElixirQuickBuild compilation. Default to 0.
  • g:elixir_autobuild is a boolean (int 0 or 1) to choose if you want to automatically launch the environment compilation (:ElixirQuickBuild) when you leave insert mode or when you save your file. Default to 0.
  • g:elixir_comp_minlen is an integer giving the minimum string length to complete by the omnicomp function, useful to avoid long time synchronious completion, default to 0
  • g:elixir_maxpreviews is an integer giving the maximum number of completion "words" where the inlined preview is shown, useful to avoid slow completion rendering, default to 100
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].