docs-v2/content/influxdb/v2.1/tools/flux-vim-lsp.md

2.6 KiB

title description menu weight
Use the Flux LSP with Vim Use the Flux LSP with Vim to add auto-completion, syntax checking, and other language-specific features to your editor.
influxdb_2_1
parent
Tools & integrations
102

Requirements

Install the Flux plugin

There are many ways to install and manage Vim plugins. We recommend either of the following two methods:

Both methods require you to add the following to your .vimrc so that Vim can recognize the .flux file type:

" Flux file type
au BufRead,BufNewFile *.flux		set filetype=flux

Install with vim-lsp

  1. Install flux-lsp-cli with npm

    npm i -g @influxdata/flux-lsp-cli
    
  2. Install vim-lsp

    If it doesn't exist yet, create a directory called pack/$USER/start/ in your ~/.vim/ and clone vim-lsp into it:

    cd ~
    mkdir -p .vim/pack/$USER/start/
    cd .vim/pack/$USER/start/
    git clone https://github.com/prabirshrestha/vim-lsp
    
  3. Edit your .vimrc

    Next, edit your .vimrc configuration file to include the following:

    let g:lsp_diagnostics_enabled = 1
    
    if executable('flux-lsp')
        au User lsp_setup call lsp#register_server({
            \ 'name': 'flux lsp',
            \ 'cmd': {server_info->[&shell, &shellcmdflag, 'flux-lsp']},
            \ 'whitelist': ['flux'],
            \ })
    endif
    
    autocmd FileType flux nmap gd <plug>(lsp-definition)
    

Install with vim-coc

  1. Install flux-lsp-cli from npm

    npm i -g @influxdata/flux-lsp-cli
    
  2. Install plug-vim

    Install plug-vim, a plugin manager for Vim.

  3. Install vim-coc

    Install vim-coc, a code-completion plugin for Vim.

  4. Configure vim-coc

    vim-coc uses a coc-settings.json located in your ~/.vim/ directory. To run the Flux LSP, add the Flux section under languageserver:

    {
      "languageserver": {
          "flux": {
            "command": "flux-lsp",
            "filetypes": ["flux"]
          }
      }
    }
    

    To debug flux-lsp, configure it to log to /tmp/fluxlsp:

    {
      "languageserver": {
          "flux": {
            "command": "flux-lsp",
            "args": ["-l", "/tmp/fluxlsp"],
            "filetypes": ["flux"]
          }
      }
    }