|
@@ -0,0 +1,88 @@
|
|
|
+-- 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")
|
|
|
+
|
|
|
+local nvim_lsp = require'lspconfig'
|
|
|
+local configs = require'lspconfig/configs'
|
|
|
+local capabilities = vim.lsp.protocol.make_client_capabilities()
|
|
|
+capabilities.textDocument.completion.completionItem.snippetSupport = true
|
|
|
+
|
|
|
+configs.emmet_ls = {
|
|
|
+ default_config = {
|
|
|
+ cmd = {'emmet-ls', '--stdio'};
|
|
|
+ filetypes = {'html', 'css', 'javascript', 'javascriptreact', 'typescript', 'typescriptreact'};
|
|
|
+ root_dir = function()
|
|
|
+ return vim.loop.cwd()
|
|
|
+ end;
|
|
|
+ settings = {};
|
|
|
+ };
|
|
|
+}
|
|
|
+
|
|
|
+nvim_lsp.emmet_ls.setup{
|
|
|
+ -- on_attach = on_attach;
|
|
|
+}
|