mirror of
https://github.com/pojokcodeid/nvim-lazy.git
synced 2025-06-22 00:49:01 +02:00
189 lines
6.1 KiB
Lua
189 lines
6.1 KiB
Lua
return {
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
dependencies = {
|
|
{
|
|
"nvim-treesitter/nvim-treesitter-context",
|
|
enabled = pcode.tscontext or false,
|
|
},
|
|
{
|
|
"JoosepAlviste/nvim-ts-context-commentstring",
|
|
lazy = true,
|
|
config = function()
|
|
require("ts_context_commentstring").setup({
|
|
enable_autocmd = false,
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"windwp/nvim-autopairs",
|
|
lazy = true,
|
|
dependencies = "hrsh7th/nvim-cmp",
|
|
event = "InsertEnter",
|
|
opts = {
|
|
check_ts = true,
|
|
ts_config = {
|
|
lua = { "string", "source" },
|
|
javascript = { "string", "template_string" },
|
|
java = false,
|
|
},
|
|
disable_filetype = { "TelescopePrompt", "spectre_panel" },
|
|
fast_wrap = {
|
|
map = "<M-e>",
|
|
chars = { "{", "[", "(", '"', "'", "`" },
|
|
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""),
|
|
offset = 0, -- Offset from pattern match
|
|
end_key = "$",
|
|
keys = "qwertyuiopzxcvbnmasdfghjkl",
|
|
check_comma = true,
|
|
highlight = "PmenuSel",
|
|
highlight_grey = "LineNr",
|
|
},
|
|
},
|
|
config = function(_, opts)
|
|
require("nvim-autopairs").setup(opts)
|
|
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
|
local cmp_status_ok, cmp = pcall(require, "cmp")
|
|
if not cmp_status_ok then
|
|
return
|
|
end
|
|
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } }))
|
|
end,
|
|
},
|
|
},
|
|
version = false, -- last release is way too old and doesn't work on Windows
|
|
build = ":TSUpdate",
|
|
-- event = { "LazyFile", "VeryLazy" },
|
|
lazy = true,
|
|
cmd = {
|
|
"TSInstall",
|
|
"TSUninstall",
|
|
"TSUpdate",
|
|
"TSUpdateSync",
|
|
"TSInstallInfo",
|
|
"TSInstallSync",
|
|
"TSInstallFromGrammar",
|
|
},
|
|
event = { "BufRead", "VeryLazy" },
|
|
opts = function()
|
|
return {
|
|
highlight = { enable = true },
|
|
indent = { enable = true },
|
|
ensure_installed = {},
|
|
incremental_selection = {
|
|
enable = true,
|
|
},
|
|
autopairs = {
|
|
enable = true,
|
|
},
|
|
}
|
|
end,
|
|
config = function(_, opts)
|
|
if type(opts.ensure_installed) == "table" then
|
|
---@type table<string, boolean>
|
|
local added = {}
|
|
opts.ensure_installed = vim.tbl_filter(function(lang)
|
|
if added[lang] then
|
|
return false
|
|
end
|
|
added[lang] = true
|
|
return true
|
|
end, opts.ensure_installed)
|
|
end
|
|
require("nvim-treesitter.configs").setup(opts)
|
|
vim.schedule(function()
|
|
require("lazy").load({ plugins = { "nvim-treesitter-textobjects" } })
|
|
end)
|
|
end,
|
|
},
|
|
{
|
|
"nvim-treesitter/nvim-treesitter-textobjects",
|
|
lazy = true,
|
|
config = function()
|
|
-- When in diff mode, we want to use the default
|
|
-- vim text objects c & C instead of the treesitter ones.
|
|
local move = require("nvim-treesitter.textobjects.move") ---@type table<string,fun(...)>
|
|
local configs = require("nvim-treesitter.configs")
|
|
for name, fn in pairs(move) do
|
|
if name:find("goto") == 1 then
|
|
move[name] = function(q, ...)
|
|
if vim.wo.diff then
|
|
local config = configs.get_module("textobjects.move")[name] ---@type table<string,string>
|
|
for key, query in pairs(config or {}) do
|
|
if q == query and key:find("[%]%[][cC]") then
|
|
vim.cmd("normal! " .. key)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
return fn(q, ...)
|
|
end
|
|
end
|
|
end
|
|
end,
|
|
},
|
|
-- Automatically add closing tags for HTML and JSX
|
|
{
|
|
"windwp/nvim-ts-autotag",
|
|
lazy = true,
|
|
event = "BufRead",
|
|
opts = {},
|
|
},
|
|
|
|
{
|
|
"RRethy/vim-illuminate",
|
|
lazy = true,
|
|
event = "BufRead",
|
|
opts = {
|
|
options = {
|
|
-- providers: provider used to get references in the buffer, ordered by priority
|
|
providers = {
|
|
"lsp",
|
|
"treesitter",
|
|
"regex",
|
|
},
|
|
-- delay: delay in milliseconds
|
|
delay = 120,
|
|
-- filetype_overrides: filetype specific overrides.
|
|
-- The keys are strings to represent the filetype while the values are tables that
|
|
-- supports the same keys passed to .configure except for filetypes_denylist and filetypes_allowlist
|
|
filetype_overrides = {},
|
|
-- filetypes_denylist: filetypes to not illuminate, this overrides filetypes_allowlist
|
|
filetypes_denylist = {
|
|
"dirvish",
|
|
"fugitive",
|
|
"alpha",
|
|
"NvimTree",
|
|
"lazy",
|
|
"neogitstatus",
|
|
"Trouble",
|
|
"lir",
|
|
"Outline",
|
|
"spectre_panel",
|
|
"toggleterm",
|
|
"DressingSelect",
|
|
"TelescopePrompt",
|
|
},
|
|
-- filetypes_allowlist: filetypes to illuminate, this is overridden by filetypes_denylist
|
|
filetypes_allowlist = {},
|
|
-- modes_denylist: modes to not illuminate, this overrides modes_allowlist
|
|
modes_denylist = {},
|
|
-- modes_allowlist: modes to illuminate, this is overridden by modes_denylist
|
|
modes_allowlist = {},
|
|
-- providers_regex_syntax_denylist: syntax to not illuminate, this overrides providers_regex_syntax_allowlist
|
|
-- Only applies to the 'regex' provider
|
|
-- Use :echom synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name')
|
|
providers_regex_syntax_denylist = {},
|
|
-- providers_regex_syntax_allowlist: syntax to illuminate, this is overridden by providers_regex_syntax_denylist
|
|
-- Only applies to the 'regex' provider
|
|
-- Use :echom synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name')
|
|
providers_regex_syntax_allowlist = {},
|
|
-- under_cursor: whether or not to illuminate under the cursor
|
|
under_cursor = true,
|
|
},
|
|
},
|
|
config = function(_, opts)
|
|
require("illuminate").configure(opts)
|
|
end,
|
|
},
|
|
}
|