diff --git a/init.lua b/init.lua index f6dbe4bb..1e15c47f 100644 --- a/init.lua +++ b/init.lua @@ -248,6 +248,12 @@ vim.opt.rtp:prepend(lazypath) -- NOTE: Here is where you install your plugins. require('lazy').setup({ -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). + { + 'pmizio/typescript-tools.nvim', + dependencies = { 'nvim-lua/plenary.nvim', 'neovim/nvim-lspconfig' }, + opts = {}, + }, + 'mg979/vim-visual-multi', 'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically -- NOTE: Plugins can also be added by using a table, @@ -527,8 +533,9 @@ require('lazy').setup({ -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` { 'j-hui/fidget.nvim', opts = {} }, - -- Allows extra capabilities provided by nvim-cmp - 'hrsh7th/cmp-nvim-lsp', + -- `neodev` configures Lua LSP for your Neovim config, runtime and plugins + -- used for completion, annotations and signatures of Neovim apis + { 'folke/neodev.nvim', opts = {} }, }, config = function() -- Brief aside: **What is LSP?** @@ -686,8 +693,25 @@ require('lazy').setup({ -- Some languages (like typescript) have entire language plugins that can be useful: -- https://github.com/pmizio/typescript-tools.nvim -- - -- But for many setups, the LSP (`ts_ls`) will work just fine - -- ts_ls = {}, + -- But for many setups, the LSP (`tsserver`) will work just fine + tsserver = { + init_options = { + plugins = { + { + name = '@vue/typescript-plugin', + languages = { 'vue' }, + }, + }, + }, + }, + volar = { + filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue' }, + init_options = { + vue = { + hybridMode = false, + }, + }, + }, -- pylsp = {}, cmake = {}, @@ -758,7 +782,7 @@ require('lazy').setup({ -- Disable "format_on_save lsp_fallback" for languages that don't -- have a well standardized coding style. You can add additional -- languages here or re-enable it for the disabled ones. - local disable_filetypes = { c = true, cpp = true } + local disable_filetypes = { c = true, cpp = true, py = true, ts = true, vue = true } local lsp_format_opt if disable_filetypes[vim.bo[bufnr].filetype] then lsp_format_opt = 'never' @@ -776,10 +800,13 @@ require('lazy').setup({ json = { 'clang-format-15' }, lua = { 'stylua' }, -- Conform can also run multiple formatters sequentially - python = { 'isort' }, + python = { 'ruff' }, -- - -- You can use 'stop_after_first' to run the first available formatter from the list - -- javascript = { "prettierd", "prettier", stop_after_first = true }, + -- You can use a sub-list to tell conform to run *until* a formatter + -- is found. + -- javascript = { 'prettier' }, + -- vue = { 'prettier' }, + -- typescript = { 'prettier' }, }, }, },