lua.lua 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. -- https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone)
  2. local sumneko_root_path = DATA_PATH .. "/lspinstall/lua"
  3. local sumneko_binary = sumneko_root_path .. "/sumneko-lua-language-server"
  4. require'lspconfig'.sumneko_lua.setup {
  5. cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"},
  6. on_attach = require'lsp'.common_on_attach,
  7. settings = {
  8. Lua = {
  9. runtime = {
  10. -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
  11. version = 'LuaJIT',
  12. -- Setup your lua path
  13. path = vim.split(package.path, ';')
  14. },
  15. diagnostics = {
  16. -- Get the language server to recognize the `vim` global
  17. globals = {'vim'}
  18. },
  19. workspace = {
  20. -- Make the server aware of Neovim runtime files
  21. library = {
  22. [vim.fn.expand('$VIMRUNTIME/lua')] = true,
  23. [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true
  24. },
  25. maxPreload = 100000,
  26. preloadFileSize = 1000
  27. }
  28. }
  29. }
  30. }
  31. if O.lang.lua.autoformat then
  32. require('lv-utils').define_augroups({
  33. _lua_autoformat = {
  34. {
  35. 'BufWritePre', '*.lua',
  36. 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  37. }
  38. }
  39. })
  40. end
  41. local lua_arguments = {}
  42. local luaFormat = {
  43. formatCommand = "lua-format -i --no-keep-simple-function-one-line --column-limit=80",
  44. formatStdin = true
  45. }
  46. local lua_fmt = {
  47. formatCommand = "luafmt --indent-count 2 --line-width 120 --stdin",
  48. formatStdin = true
  49. }
  50. if O.lang.lua.formatter == 'lua-format' then
  51. table.insert(lua_arguments, luaFormat)
  52. elseif O.lang.lua.formatter == 'lua-fmt' then
  53. table.insert(lua_arguments, lua_fmt)
  54. end
  55. require"lspconfig".efm.setup {
  56. -- init_options = {initializationOptions},
  57. cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
  58. init_options = {documentFormatting = true, codeAction = false},
  59. filetypes = {"lua"},
  60. settings = {
  61. rootMarkers = {".git/"},
  62. languages = {
  63. lua = lua_arguments,
  64. }
  65. }
  66. }