Intro

  • lua로 프로그래밍을 할 때 함수나 자동완성을 도와주는 플러그인이다.
  • nvim의 lua 내장함수 및 api도 지원한다.
  • 다른 lsp 서버의 설치와 설정보다 어려워서 많이 고생했다.
  • 가장 중요한 것은 lua-language-server를 제대로 설치하는 것이다.
  • 서버를 컴파일 하는 것보다는 바이너리를 다운 받아 쓰는 것을 권장한다.

Requirements

  • nvim-cmp :자동완성 플러그인
  • nvim-lsp :Language Server Protocol 플러그인
  • cmp-nvim-lsp : lsp 자동완성 지원 플러그인
  • sumneko lua-language-server : Lua lsp server 프로그램 (lua 5.1 ~ 5.4, luaJit 모두 지원)

lua-language-server Install

$ mkdir ~/data/lua-language-server && cd lua-language-server
$ tar xvfz ~/Download/lua-language-server-3.5.5.tar.gz .

$ cat <<EOF > ~/bin/lua-language-server  # 실행스크립트 작성
#!/usr/bin/bash
exec "~/data/lua-language-server/bin/lua-language-server" "$@"
EOF

$ chmod u+x ~/bin/lua-language-server # ~/bin 이 PATH에 설정되어 있어야
$ lua-language-server --version       # 에러 없이 버전이 출력되면 성공

lua-dev Install

  • 먼저 nvim-cmp nvim-lsp, cmp-nvim-lsp가 설치 및 설정되었다고 가정한다.

  • ~/.config/nvim/lua/plugins.lua 플러그인 설정 추가
    -- For lua devel
    use "folke/lua-dev.nvim"
    
  • 플러그인 설치
    :w
    :luafile %
    :PackerInstall
    
  • ~/.config/nvim/lua/settings.lua 설정 ```lua – lua-dev – IMPORTANT: make sure to setup lua-dev BEFORE lspconfig require(“lua-dev”).setup()

– then setup your lsp server as usual local lspconfig = require(‘lspconfig’)

– example to setup sumneko and enable call snippets lspconfig.sumneko_lua.setup({ Lua = { completion = { callSnippet = “Replace” } } })


* 적용하기 (또는 종료 후 다시 시작)

:luafile % ```

주의 사항

  • auto-complete가 작동하지 않는 가장 큰 이유는 sumneko_lua를 제대로 설치하지 않아서이다.
  • nvim-cmp의 설정에 위의 sumneko_lua 설정이 중복되지 않도록 한다.