diff options
author | christianchiarulli <[email protected]> | 2021-06-30 18:45:40 -0400 |
---|---|---|
committer | christianchiarulli <[email protected]> | 2021-06-30 18:45:40 -0400 |
commit | 9e7ad6074746a3f7d60e164be919b53ad17a33dd (patch) | |
tree | 6ccd7982f850908d317945fd8967119b298c4ffb /lua/lsp/js-ts-ls.lua | |
parent | d8cf871a389d9900fa21077870a817cdb6a6b47b (diff) |
refactor autocommands
Diffstat (limited to 'lua/lsp/js-ts-ls.lua')
-rw-r--r-- | lua/lsp/js-ts-ls.lua | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/lua/lsp/js-ts-ls.lua b/lua/lsp/js-ts-ls.lua index 94e1b72d..0006dab7 100644 --- a/lua/lsp/js-ts-ls.lua +++ b/lua/lsp/js-ts-ls.lua @@ -7,17 +7,27 @@ -- require'completion'.on_attach(client) -- require'illuminate'.on_attach(client) -- end - require'lspconfig'.tsserver.setup { - cmd = {DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server", "--stdio"}, - filetypes = { "javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx" }, + cmd = { + DATA_PATH .. + "/lspinstall/typescript/node_modules/.bin/typescript-language-server", + "--stdio" + }, + filetypes = { + "javascript", "javascriptreact", "javascript.jsx", "typescript", + "typescriptreact", "typescript.tsx" + }, on_attach = require'lsp'.tsserver_on_attach, -- This makes sure tsserver is not used for formatting (I prefer prettier) -- on_attach = require'lsp'.common_on_attach, - root_dir = require('lspconfig/util').root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"), + root_dir = require('lspconfig/util').root_pattern("package.json", + "tsconfig.json", + "jsconfig.json", ".git"), settings = {documentFormatting = false}, handlers = { - ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { + ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic + .on_publish_diagnostics, + { virtual_text = O.lang.tsserver.diagnostics.virtual_text, signs = O.lang.tsserver.diagnostics.signs, underline = O.lang.tsserver.diagnostics.underline, @@ -26,3 +36,20 @@ require'lspconfig'.tsserver.setup { }) } } + +if O.lang.tsserver.autoformat then + require('lv-utils').define_augroups({ + _javascript_autoformat = { + 'BufWritePre', '*.js', 'lua vim.lsp.buf.formatting_sync(nil, 1000)' + }, + _javascriptreact_autoformat = { + 'BufWritePre', '*.jsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)' + }, + _typescript_autoformat = { + 'BufWritePre', '*.ts', 'lua vim.lsp.buf.formatting_sync(nil, 1000)' + }, + _typescriptreact_autoformat = { + 'BufWritePre', '*.tsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)' + } + }) +end |