mason.lua 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. return {
  2. {
  3. "williamboman/mason.nvim",
  4. config = function()
  5. require("mason").setup()
  6. end,
  7. },
  8. {
  9. "williamboman/mason-lspconfig.nvim",
  10. config = function()
  11. require("mason-lspconfig").setup({
  12. ensure_installed = {
  13. "lua_ls",
  14. "tsserver",
  15. "ts_ls",
  16. "tinymist",
  17. "marksman",
  18. "html",
  19. "r_language_server",
  20. },
  21. -- IMPORTANT: let rustaceanvim manage rust-analyzer
  22. automatic_enable = {
  23. exclude = { "rust_analyzer" },
  24. },
  25. })
  26. end,
  27. },
  28. {
  29. "neovim/nvim-lspconfig",
  30. config = function()
  31. local capabilities = require("cmp_nvim_lsp").default_capabilities()
  32. -- lua_ls
  33. vim.lsp.config("lua_ls", {
  34. capabilities = capabilities,
  35. })
  36. -- R
  37. vim.lsp.config("r_language_server", {
  38. capabilities = capabilities,
  39. })
  40. -- Markdown
  41. vim.lsp.config("marksman", {
  42. capabilities = capabilities,
  43. })
  44. -- HTML
  45. vim.lsp.config("html", {
  46. capabilities = capabilities,
  47. })
  48. -- Typst / tinymist
  49. vim.lsp.config("tinymist", {
  50. capabilities = capabilities,
  51. offset_encoding = "utf-8",
  52. root_dir = function(filename, bufnr)
  53. return vim.fn.getcwd()
  54. end,
  55. settings = {
  56. tinymist = {
  57. settings = {
  58. formatterMode = "typstfmt",
  59. },
  60. },
  61. },
  62. })
  63. -- Typescript (ts_ls)
  64. vim.lsp.config("ts_ls", {
  65. -- capabilities = capabilities,
  66. init_options = {
  67. plugins = {},
  68. },
  69. filetypes = {
  70. "javascript",
  71. "javascript.jsx",
  72. "typescript",
  73. "typescriptreact",
  74. "typescript.tsx",
  75. },
  76. })
  77. -- finally, enable the servers
  78. vim.lsp.enable({
  79. "lua_ls",
  80. "r_language_server",
  81. "marksman",
  82. "html",
  83. "tinymist",
  84. "ts_ls",
  85. -- "rust_analyzer", -- rustaceanvim config the LSP
  86. })
  87. end,
  88. },
  89. }