js-ts-ls.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. -- npm install -g typescript typescript-language-server
  2. -- require'snippets'.use_suggested_mappings()
  3. -- local capabilities = vim.lsp.protocol.make_client_capabilities()
  4. -- capabilities.textDocument.completion.completionItem.snippetSupport = true;
  5. -- local on_attach_common = function(client)
  6. -- print("LSP Initialized")
  7. -- require'completion'.on_attach(client)
  8. -- require'illuminate'.on_attach(client)
  9. -- end
  10. require'lspconfig'.tsserver.setup {
  11. cmd = {
  12. DATA_PATH ..
  13. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
  14. "--stdio"
  15. },
  16. filetypes = {
  17. "javascript", "javascriptreact", "javascript.jsx", "typescript",
  18. "typescriptreact", "typescript.tsx"
  19. },
  20. on_attach = require'lsp'.tsserver_on_attach,
  21. -- This makes sure tsserver is not used for formatting (I prefer prettier)
  22. -- on_attach = require'lsp'.common_on_attach,
  23. root_dir = require('lspconfig/util').root_pattern("package.json",
  24. "tsconfig.json",
  25. "jsconfig.json", ".git"),
  26. settings = {documentFormatting = false},
  27. handlers = {
  28. ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic
  29. .on_publish_diagnostics,
  30. {
  31. virtual_text = O.lang.tsserver.diagnostics.virtual_text,
  32. signs = O.lang.tsserver.diagnostics.signs,
  33. underline = O.lang.tsserver.diagnostics.underline,
  34. update_in_insert = true
  35. })
  36. }
  37. }
  38. if O.lang.tsserver.autoformat then
  39. require('lv-utils').define_augroups({
  40. _javascript_autoformat = {
  41. 'BufWritePre', '*.js', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  42. },
  43. _javascriptreact_autoformat = {
  44. 'BufWritePre', '*.jsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  45. },
  46. _typescript_autoformat = {
  47. 'BufWritePre', '*.ts', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  48. },
  49. _typescriptreact_autoformat = {
  50. 'BufWritePre', '*.tsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  51. }
  52. })
  53. end