javascriptreact.lua 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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(
  29. vim.lsp.diagnostic.on_publish_diagnostics, {
  30. virtual_text = O.lang.tsserver.diagnostics.virtual_text,
  31. signs = O.lang.tsserver.diagnostics.signs,
  32. underline = O.lang.tsserver.diagnostics.underline,
  33. update_in_insert = true
  34. })
  35. }
  36. }
  37. require'lsp.ts-fmt-lint'.setup()
  38. if O.lang.tsserver.autoformat then
  39. require('lv-utils').define_augroups({
  40. _javascript_autoformat = {
  41. {
  42. 'BufWritePre', '*.js',
  43. 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  44. }
  45. },
  46. _javascriptreact_autoformat = {
  47. {
  48. 'BufWritePre', '*.jsx',
  49. 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  50. }
  51. },
  52. _typescript_autoformat = {
  53. {
  54. 'BufWritePre', '*.ts',
  55. 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  56. }
  57. },
  58. _typescriptreact_autoformat = {
  59. {
  60. 'BufWritePre', '*.tsx',
  61. 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
  62. }
  63. }
  64. })
  65. end
  66. vim.cmd("setl ts=2 sw=2")