From 53d294a10e08dbfaeb0b75002fc43c5fa97bbaaa Mon Sep 17 00:00:00 2001 From: Nicholas Novak <34256932+NickyBoy89@users.noreply.github.com> Date: Sun, 3 May 2026 14:14:43 -0700 Subject: [PATCH] feat: Add typescript-tools --- nvim/.config/nvim/init.lua | 57 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index 613deb8..aabce25 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -32,6 +32,8 @@ require('lazy').setup({ 'tpope/vim-fugitive', 'tpope/vim-rhubarb', + 'preservim/nerdtree', + -- Detect tabstop and shiftwidth automatically --'tpope/vim-sleuth', @@ -164,6 +166,60 @@ require('lazy').setup({ { 'kaarmu/typst.vim' }, + { + "pmizio/typescript-tools.nvim", + dependencies = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig" }, + opts = {}, + config = function() + require("typescript-tools").setup({ + settings = { + log = "verbose", + -- spawn additional tsserver instance to calculate diagnostics on it + separate_diagnostic_server = true, + -- "change"|"insert_leave" determine when the client asks the server about diagnostic + publish_diagnostic_on = "insert_leave", + -- array of strings("fix_all"|"add_missing_imports"|"remove_unused"| + -- "remove_unused_imports"|"organize_imports") -- or string "all" + -- to include all supported code actions + -- specify commands exposed as code_actions + expose_as_code_action = {}, + -- string|nil - specify a custom path to `tsserver.js` file, if this is nil or file under path + -- not exists then standard path resolution strategy is applied + tsserver_path = nil, + -- specify a list of plugins to load by tsserver, e.g., for support `styled-components` + -- (see 💅 `styled-components` support section) + tsserver_plugins = {}, + -- this value is passed to: https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-megabytes + -- memory limit in megabytes or "auto"(basically no limit) + tsserver_max_memory = "auto", + -- described below + tsserver_format_options = {}, + tsserver_file_preferences = {}, + -- locale of all tsserver messages, supported locales you can find here: + -- https://github.com/microsoft/TypeScript/blob/3c221fc086be52b19801f6e8d82596d04607ede6/src/compiler/utilitiesPublic.ts#L620 + tsserver_locale = "en", + -- mirror of VSCode's `typescript.suggest.completeFunctionCalls` + complete_function_calls = false, + include_completions_with_insert_text = true, + -- CodeLens + -- WARNING: Experimental feature also in VSCode, because it might hit performance of server. + -- possible values: ("off"|"all"|"implementations_only"|"references_only") + code_lens = "off", + -- by default code lenses are displayed on all referencable values and for some of you it can + -- be too much this option reduce count of them by removing member references from lenses + disable_member_code_lens = true, + -- JSXCloseTag + -- WARNING: it is disabled by default (maybe you configuration or distro already uses nvim-ts-autotag, + -- that maybe have a conflict if enable this feature. ) + jsx_close_tag = { + enable = false, + filetypes = { "javascriptreact", "typescriptreact" }, + }, + }, + }) + end, + }, + { 'fatih/vim-go', build = ':GoUpdateBinaries', @@ -275,6 +331,7 @@ vim.g.go_highlight_function_calls = 1 vim.g.go_highlight_extra_types = 1 vim.g.go_highlight_operators = 1 vim.g.go_auto_type_info = 1 +vim.g.go_metalinter_autosave = 1 -- Rust development options vim.g.rustfmt_autosave = 1