summaryrefslogtreecommitdiff
path: root/ftplugin/javascript.lua
diff options
context:
space:
mode:
authorchristianchiarulli <[email protected]>2021-07-01 23:42:26 -0400
committerchristianchiarulli <[email protected]>2021-07-01 23:42:26 -0400
commit20ed47e21e966a5b857ef9970ae6171b3a504ce1 (patch)
tree92bdefc7589545f4429a55b53e4493ad7832e632 /ftplugin/javascript.lua
parent9bb4f8a085644914c79343b48c808509311ee203 (diff)
lsp in ftplugin austonautomoy
Diffstat (limited to 'ftplugin/javascript.lua')
-rw-r--r--ftplugin/javascript.lua68
1 files changed, 68 insertions, 0 deletions
diff --git a/ftplugin/javascript.lua b/ftplugin/javascript.lua
new file mode 100644
index 00000000..173f6693
--- /dev/null
+++ b/ftplugin/javascript.lua
@@ -0,0 +1,68 @@
+-- npm install -g typescript typescript-language-server
+-- require'snippets'.use_suggested_mappings()
+-- local capabilities = vim.lsp.protocol.make_client_capabilities()
+-- capabilities.textDocument.completion.completionItem.snippetSupport = true;
+-- local on_attach_common = function(client)
+-- print("LSP Initialized")
+-- 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"
+ },
+ 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"),
+ settings = {documentFormatting = false},
+ handlers = {
+ ["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,
+ update_in_insert = true
+
+ })
+ }
+}
+
+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
+vim.cmd("setl ts=2 sw=2")