From c09b607b8d6830ba4e9638c21a17b8ecb62b4b26 Mon Sep 17 00:00:00 2001 From: Martin Larsson Date: Mon, 22 Jan 2024 13:41:33 +0100 Subject: [PATCH] Add lots of languagu parsers, add textobjects, and add incremental selection --- nvim/lua/plugs/lspsaga.lua | 2 +- nvim/lua/plugs/treesitter.lua | 64 +++++++++++++++++++++------ nvim/lua/plugs/treesitter_context.lua | 3 -- 3 files changed, 52 insertions(+), 17 deletions(-) delete mode 100644 nvim/lua/plugs/treesitter_context.lua diff --git a/nvim/lua/plugs/lspsaga.lua b/nvim/lua/plugs/lspsaga.lua index 2aafc71..513f53a 100644 --- a/nvim/lua/plugs/lspsaga.lua +++ b/nvim/lua/plugs/lspsaga.lua @@ -2,7 +2,7 @@ return { "LarssonMartin1998/lspsaga.nvim", branch = "improved_winbar", dependencies = { - "nvim-treesitter/nvim-treesitter", + -- "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons", }, config = function() diff --git a/nvim/lua/plugs/treesitter.lua b/nvim/lua/plugs/treesitter.lua index e80a5c3..55ecd56 100644 --- a/nvim/lua/plugs/treesitter.lua +++ b/nvim/lua/plugs/treesitter.lua @@ -1,18 +1,56 @@ return { "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { - "vim", - "vimdoc", - "lua" - }, - sync_install = false, - -- This can be updated to a list of languages instead of defaulting to true - highlight = { enable = true }, - indent = {enable = true }, - }, + event = { "BufReadPre", "BufNewFile" }, build = ":TSUpdate", dependencies = { - "nvim-treesitter/nvim-treesitter-context" - } + "nvim-treesitter/nvim-treesitter-context", + "nvim-treesitter/nvim-treesitter-textobjects", + }, + config = function() + require("nvim-treesitter.configs").setup({ + ensure_installed = { + "vim", + "vimdoc", + "bash", + "lua", + "c", + "cpp", + "rust", + "cmake", + "make", + "yaml", + "ninja", + "gitignore", + }, + sync_install = false, + -- This can be updated to a list of languages instead of defaulting to true + highlight = { enable = true }, + indent = { enable = true }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = "", + node_incremental = "", + scope_incremental = false, + node_decremental = "", + }, + }, + textobjects = { + select = { + enable = true, + lookahead = true, + keymaps = { + ["ic"] = { query = "@class.inner" }, + ["ac"] = { query = "@class.outer" }, + ["ii"] = { query = "@conditional.inner" }, + ["ai"] = { query = "@conditional.outer" }, + ["if"] = { query = "@function.inner" }, + ["af"] = { query = "@function.outer" }, + ["il"] = { query = "@loop.inner" }, + ["al"] = { query = "@loop.outer" }, + }, + }, + }, + }) + end, } diff --git a/nvim/lua/plugs/treesitter_context.lua b/nvim/lua/plugs/treesitter_context.lua deleted file mode 100644 index ade5591..0000000 --- a/nvim/lua/plugs/treesitter_context.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { - "nvim-treesitter/nvim-treesitter-context" -}