mirror of
https://github.com/kristoferssolo/SoloVim.git
synced 2025-10-21 20:10:41 +00:00
86 lines
3.4 KiB
Lua
86 lines
3.4 KiB
Lua
local ft = { "javascriptreact", "typescriptreact", "javascript", "typescript" }
|
|
return {
|
|
{
|
|
"pmizio/typescript-tools.nvim",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"neovim/nvim-lspconfig",
|
|
},
|
|
ft = ft,
|
|
opts = {
|
|
on_attach = function(client)
|
|
client.server_capabilities.documentFormattingProvider = false
|
|
client.server_capabilities.documentRangeFormattingProvider = false
|
|
end,
|
|
settings = {
|
|
-- 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 = "all",
|
|
-- 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 = "tsserver",
|
|
-- specify a list of plugins to load by tsserver, e.g., for support `styled-components`
|
|
-- (see 💅 `styled-components` support section)
|
|
tsserver_plugins = {
|
|
"@styled/typescript-styled-plugin",
|
|
},
|
|
-- 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 = function(_)
|
|
-- Return empty table to disable formatting
|
|
return {}
|
|
end,
|
|
tsserver_file_preferences = {
|
|
includeInlayParameterNameHints = "all",
|
|
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
|
|
includeInlayFunctionParameterTypeHints = true,
|
|
includeInlayVariableTypeHints = true,
|
|
includeInlayVariableTypeHintsWhenTypeMatchesName = false,
|
|
includeInlayPropertyDeclarationTypeHints = true,
|
|
includeInlayFunctionLikeReturnTypeHints = true,
|
|
includeInlayEnumMemberValueHints = true,
|
|
},
|
|
-- 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 = true,
|
|
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 = "all",
|
|
-- 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" },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"dmmulroy/ts-error-translator.nvim",
|
|
ft = ft,
|
|
},
|
|
{
|
|
"folke/ts-comments.nvim",
|
|
opts = {},
|
|
event = "VeryLazy",
|
|
enabled = vim.fn.has("nvim-0.10.0") == 1,
|
|
ft = ft,
|
|
},
|
|
}
|