์๊ฐ ๋ฆฌ๋
์ค ํ๊ฒฝ(Alpine Linux)์์ lua-language-server ์ค์นํ๊ณ nvim์์ ์ค์ ๋ฐ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด ๋ณธ๋ค. alpine 3.2x ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํ๋ค. ๊ณผ๊ฑฐ alpine ๋ฒ์ ๋ค์ lua-language-server๊ฐ ์๊ฑฐ๋ nvim์ ๋ฒ์ ์ด ๋ฎ์ ํ๋ฌ๊ทธ์ธ ์ง์์ ๋ฌธ์ ๊ฐ ์์๋ค. ํ์ฌ ์์ ์ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ์ ์ ํ ๋ฒ์ ์ ์ง์ํ๊ณ ํจํค์ง๋ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์์ค ์ปดํ์ผ ๋ฑ์ ๋ถ๋ด์ด ์์ด์ก๋ค.
์ค์น luajit๋ฐ lua-language-server ๊ทธ๋ฆฌ๊ณ neovim๊ด๋ จ ํจํค์ง ์ค์น ์๋์ ๊ฒฝ์ฐ nvim(neovim) ์ค์น์ lfs.so,penlight๋ฑ์ด ๊ธฐ๋ณธ ํฌํจํ๊ฒ ๋๋ค. (์ถ๊ฐ ์ค์น ๋ถํ์) apk add --no-cache luajit luajit-dev lua-language-server ldoc apk add --no-cache neovim neovim-doc nvim-treesitter \ tree-sitter tree-sitter-cli tree-sitter-lua tree-sitter-bash \ tree-sitter-c tree-sitter-markdown tree-sitter-vimdoc ์ค์ ~/.config/nvim/init.lua์ ๋ค์ ์ค์ ์ ์ถ๊ฐ my_project_path๋ ๊ฐ๋ณ ๋ชจ๋์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ์ด๋ค. workspace์ library ๋ฒ์๊ฐ ํฌ๋ฉด ๋ถํ๊ฐ ์ปค์ง๋ฏ๋ก ์ ๋นํ ์กฐ์ ํด ์ฃผ์ด์ผ nvim์์ ๋ฌด๋ฆฌ๊ฐ ์๋ค. ์๋ ์ฃผ์ ํ์๋ ๋ถ๋ถ์ ์ฃผ์ํด์ ํ์ธํ๊ณ ์์ ์๊ฒ ๋ง๋ ํ๊ฒฝ์ ์ค์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณผ๊ฑฐ sumneko๋ผ๋ ์์ผ๋ก ์ค์ ํ๋๋ฐ ํ์ฌ lspconfig.lua_ls.setup์ผ๋ก ๋ฐ๋์๋ค. -- Now set capabilities on your LSP servers local lspconfig = require'lspconfig' local my_project_path = os.getenv('HOME') .. '/.local/lib/lua' print(my_project_path) lspconfig.lua_ls.setup { --capabilities = capabilities, root_dir = lspconfig.util.root_pattern(".git", ".luarc.json", ".luarc.js"), settings = { Lua = { runtime = { version = 'Luajit', path = vim.split(package.path, ";"), }, diagnostics = { globals = {'vim'}, update_in_insert = false, }, workspace = { library = { --// ๊ธฐ๋ณธ vim ๋ฐํ์ ํ๊ฒฝ ๋ชจ๋ ์ถ๊ฐ [vim.env.VIMRUNTIME] = true, --// ๋ชจ๋ vim์ ๋ฐํ์ ํ๊ฒฝ ๋ชจ๋ ์ถ๊ฐ --[vim.api.nvim_get_runtime_file("", true)] = true, --// my project ๋ชจ๋ ์ถ๊ฐ [vim.fn.expand(my_project_path)] = true, }, --// ์ 3์ ๋ชจ๋ ์ ์ธ checkThirdParty = false, }, telemetry = { enable = false, }, }, }, } ์ฐธ๊ณ lua-language-server - Getting Started https://github.com/sumneko/lua-language-server/wiki/Getting-Started#command-line