All Projects → iamcco → Vim Language Server

iamcco / Vim Language Server

VImScript language server, LSP for vim script

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vim Language Server

Coc Flutter
flutter support for (Neo)vim
Stars: ✭ 259 (-1.89%)
Mutual labels:  lsp, neovim, autocomplete
Coc Angular
Angular Language Service coc extension for (neo)vim
Stars: ✭ 95 (-64.02%)
Mutual labels:  lsp, neovim, autocomplete
Thinkvim
Vim configuration in the 21st century
Stars: ✭ 832 (+215.15%)
Mutual labels:  lsp, neovim
Nvim Lspconfig
Quickstart configurations for the Nvim LSP client
Stars: ✭ 3,410 (+1191.67%)
Mutual labels:  lsp, neovim
Diagnostic Languageserver
diagnostic language server integrate with linters
Stars: ✭ 186 (-29.55%)
Mutual labels:  lsp, neovim
Lspsaga.nvim
neovim lsp plugin
Stars: ✭ 379 (+43.56%)
Mutual labels:  lsp, neovim
Kotlin Language Server
Intelligent Kotlin support for any editor/IDE using the Language Server Protocol
Stars: ✭ 650 (+146.21%)
Mutual labels:  lsp, autocomplete
Nvim Lsputils
Better defaults for nvim-lsp actions
Stars: ✭ 142 (-46.21%)
Mutual labels:  lsp, neovim
Neovim Config
Neovim configuration
Stars: ✭ 180 (-31.82%)
Mutual labels:  viml, neovim
lsp signature.nvim
LSP signature hint as you type
Stars: ✭ 915 (+246.59%)
Mutual labels:  autocomplete, lsp
coc-svelte
svelte support for (Neo)Vim
Stars: ✭ 156 (-40.91%)
Mutual labels:  autocomplete, lsp
lsp-fastaction.nvim
lsp codeaction UI for neovim
Stars: ✭ 39 (-85.23%)
Mutual labels:  neovim, lsp
Vim Yoink
Vim plugin that maintains a yank history to cycle between when pasting
Stars: ✭ 225 (-14.77%)
Mutual labels:  viml, neovim
Vim Packager
Vim plugin manager that utilizes "jobs" and "pack" features.
Stars: ✭ 197 (-25.38%)
Mutual labels:  viml, neovim
Vim Sneak
The missing motion for Vim 👟
Stars: ✭ 2,467 (+834.47%)
Mutual labels:  viml, neovim
Coc Metals
coc.nvim extension for Metals, the Scala language server
Stars: ✭ 124 (-53.03%)
Mutual labels:  lsp, neovim
Vim Galore
🎓 All things Vim!
Stars: ✭ 12,610 (+4676.52%)
Mutual labels:  viml, neovim
Vim Subversive
Vim plugin providing operator motions to quickly replace text
Stars: ✭ 168 (-36.36%)
Mutual labels:  viml, neovim
Lsp Status.nvim
Utility functions for getting diagnostic status and progress messages from LSP servers, for use in the Neovim statusline
Stars: ✭ 201 (-23.86%)
Mutual labels:  lsp, neovim
null-ls.nvim
Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.
Stars: ✭ 965 (+265.53%)
Mutual labels:  neovim, lsp

VimScript Language Server

CI Npm Type download

language server for VimScript

Features:

  • auto completion
  • function signature help
  • hover document
  • go to definition
  • go to references
  • document symbols
  • document highlight
  • folding range
  • select range
  • rename
  • snippets
  • diagnostic

autocomplete

Install

For yarn

yarn global add vim-language-server

For npm

npm install -g vim-language-server

For coc.nvim user install coc extension:

:CocInstall coc-vimlsp

Config

for document highlight

let g:markdown_fenced_languages = [
      \ 'vim',
      \ 'help'
      \]

lsp client config example with coc.nvim

  • Using node ipc
"languageserver": {
  "vimls": {
    "module": "/path/to/vim-language-server/bin/index.js",
    "args": ["--node-ipc"],
    "initializationOptions": {
      "isNeovim": true, // is neovim, default false
      "iskeyword": "@,48-57,_,192-255,-#", // vim iskeyword option
      "vimruntime": "", // $VIMRUNTIME option
      "runtimepath": "",   // vim runtime path separate by `,`
      "diagnostic": {
        "enable": true
      },
      "indexes": {
        "runtimepath": true,      // if index runtimepath's vim files this will effect the suggest
        "gap": 100,               // index time gap between next file
        "count": 3,               // count of files index at the same time
        "projectRootPatterns" : ["strange-root-pattern", ".git", "autoload", "plugin"] // Names of files used as the mark of project root. If empty, the default value [".git", "autoload", "plugin"] will be used
      },
      "suggest": {
        "fromVimruntime": true,   // completionItems from vimruntime's vim files
        "fromRuntimepath": false  // completionItems from runtimepath's vim files, if this is true that fromVimruntime is true
      }
    },
    "filetypes": [ "vim" ],
  }
}
  • Using stdio
"languageserver": {
  "vimls": {
    "command": "vim-language-server",
    "args": ["--stdio"],
    "initializationOptions": {
      "isNeovim": true, // is neovim, default false
      "iskeyword": "@,48-57,_,192-255,-#", // vim iskeyword option
      "vimruntime": "",                    // $VIMRUNTIME option
      "runtimepath": "",                   // vim runtime path separate by `,`
      "diagnostic": {
        "enable": true
      },
      "indexes": {
        "runtimepath": true,      // if index runtimepath's vim files this will effect the suggest
        "gap": 100,               // index time gap between next file
        "count": 3,               // count of files index at the same time
        "projectRootPatterns" : ["strange-root-pattern", ".git", "autoload", "plugin"] // Names of files used as the mark of project root. If empty, the default value [".git", "autoload", "plugin"] will be used
      },
      "suggest": {
        "fromVimruntime": true,   // completionItems from vimruntime's vim files
        "fromRuntimepath": false  // completionItems from runtimepath's vim files, if this is true that fromVimruntime is true
      }
    },
    "filetypes": [ "vim" ]
  }
}

Note:

  • if you set isNeovim: true, command like fixdel in vimrc which neovim does not support will report error.
  • if you want to speed up index, change gap to smaller and count to greater, this will cause high CPU usage for some time
  • if you don't want to index vim's runtimepath files, set runtimepath to false and you will not get any suggest from those files.

Usage

The screen record is using coc.nvim as LSP client.

Auto complete and function signature help:

autocomplete

Hover document:

hover

Go to definition and references:

goto

Document symbols:

symbols

Document highlight:

highlight

Folding range and selection range:

fold

Rename:

rename

Snippets and diagnostic:

dia

References

Similar project

Buy Me A Coffee ☕️

btc

image

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].