This commit is contained in:
Tiago Sousa 2023-11-10 23:47:26 +00:00
parent 947d39d9d2
commit c34bce1a44
5 changed files with 119 additions and 23 deletions

View file

@ -9,18 +9,11 @@ return require('packer').startup(function(use)
use("tpope/vim-fugitive") use("tpope/vim-fugitive")
use("theprimeagen/harpoon") use("theprimeagen/harpoon")
use("mbbill/undotree") use("mbbill/undotree")
use("nvim-tree/nvim-web-devicons") use("stevearc/dressing.nvim")
-- fidget change when rewrite version comes out -- fidget change when rewrite version comes out
use { use("j-hui/fidget.nvim")
'j-hui/fidget.nvim',
tag = 'legacy',
config = function()
require("fidget").setup {
-- options
}
end,
}
use("norcalli/nvim-colorizer.lua") use("norcalli/nvim-colorizer.lua")
use("lervag/vimtex") use("lervag/vimtex")
@ -51,7 +44,10 @@ return require('packer').startup(function(use)
use("nvim-orgmode/orgmode") use("nvim-orgmode/orgmode")
use('nvim-lualine/lualine.nvim') use({
"nvim-lualine/lualine.nvim",
requires = { "nvim-tree/nvim-web-devicons" }
})
use("nvim-treesitter/playground") use("nvim-treesitter/playground")
use("romgrk/nvim-treesitter-context") use("romgrk/nvim-treesitter-context")

View file

@ -12,3 +12,4 @@ end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
require("lazy").setup("tsousa.plugins") require("lazy").setup("tsousa.plugins")

View file

@ -4,6 +4,7 @@ return require('packer').startup(function(use)
use("nvim-lua/popup.nvim") use("nvim-lua/popup.nvim")
use("nvim-telescope/telescope.nvim") use("nvim-telescope/telescope.nvim")
use("tpope/vim-surround") use("tpope/vim-surround")
use("stevearc/dressing.nvim")
use("mbbill/undotree") use("mbbill/undotree")
-- fidget change when rewrite version comes out -- fidget change when rewrite version comes out

View file

@ -1,15 +1,112 @@
return { return {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
run = "TSUpdate", version = false, -- last release is way too old and doesn't work on Windows
config = function() build = ":TSUpdate",
endrequire 'nvim-treesitter.configs'.setup { event = { "LazyFile", "VeryLazy" },
ensure_installed = { "lua", "vim", "python", "rust", "haskell", "c", "java", "bash", "go" }, init = function(plugin)
sync_install = false, -- PERF: add nvim-treesitter queries to the rtp and it's custom query predicates early
-- This is needed because a bunch of plugins no longer `require("nvim-treesitter")`, which
highlight = { -- no longer trigger the **nvim-treeitter** module to be loaded in time.
enable = true, -- Luckily, the only thins that those plugins need are the custom queries, which we make available
additional_vim_regex_highlighting = false, -- during startup.
}, require("lazy.core.loader").add_to_rtp(plugin)
} require("nvim-treesitter.query_predicates")
end,
dependencies = {
{
"nvim-treesitter/nvim-treesitter-textobjects",
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,
},
},
cmd = { "TSUpdateSync", "TSUpdate", "TSInstall" },
keys = {
{ "<c-space>", desc = "Increment selection" },
{ "<bs>", desc = "Decrement selection", mode = "x" },
},
---@type TSConfig
---@diagnostic disable-next-line: missing-fields
opts = {
highlight = { enable = true },
indent = { enable = true },
ensure_installed = {
"bash",
"c",
"diff",
"html",
"javascript",
"jsdoc",
"json",
"jsonc",
"lua",
"luadoc",
"luap",
"markdown",
"markdown_inline",
"python",
"regex",
"toml",
"vim",
"vimdoc",
"yaml",
"org",
"dockerfile",
"go",
"haskell",
"rust",
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<C-space>",
node_incremental = "<C-space>",
scope_incremental = false,
node_decremental = "<bs>",
},
},
textobjects = {
move = {
enable = true,
goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer" },
goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer" },
goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer" },
goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer" },
},
},
},
---@param opts TSConfig
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 end
require("nvim-treesitter.configs").setup(opts)
end,
} }

View file

@ -49,6 +49,7 @@ symbol = " "
[git_branch] [git_branch]
symbol = " " symbol = " "
format = ' [$symbol$branch(:$remote_branch)]($style) '
[golang] [golang]
symbol = " " symbol = " "