summaryrefslogtreecommitdiff
path: root/mac/.config
diff options
context:
space:
mode:
Diffstat (limited to 'mac/.config')
-rw-r--r--mac/.config/TheSiahxyz/lua/TheSiahxyz/core/lazy.lua234
-rw-r--r--mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua283
-rw-r--r--mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua78
-rw-r--r--mac/.config/git/config4
4 files changed, 413 insertions, 186 deletions
diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/core/lazy.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/core/lazy.lua
index 52eff22..802a3a5 100644
--- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/core/lazy.lua
+++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/core/lazy.lua
@@ -23,17 +23,235 @@ vim.opt.rtp:prepend(lazypath)
-- Setup lazy.nvim
require("lazy").setup({
+ root = vim.fn.stdpath("data") .. "/lazy", -- directory where plugins will be installed
+ defaults = {
+ -- Set this to `true` to have all your plugins lazy-loaded by default.
+ -- Only do this if you know what you are doing, as it can lead to unexpected behavior.
+ lazy = false, -- should plugins be lazy-loaded?
+ -- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
+ -- have outdated releases, which may break your Neovim install.
+ version = nil, -- always use the latest git commit
+ -- version = "*", -- try installing the latest stable version for plugins that support semver
+ -- default `cond` you can use to globally disable a lot of plugins
+ -- when running inside vscode for example
+ cond = nil, ---@type boolean|fun(self:LazyPlugin):boolean|nil
+ },
+ -- leave nil when passing the spec as the first argument to setup()
-- highlight-start
spec = {
-- import your plugins
{ import = "TheSiahxyz.plugins" },
},
- -- highlight-end
- -- Configure any other settings here. See the documentation for more details.
- -- colorscheme that will be used when installing plugins.
- install = { colorscheme = { "catppuccin" } },
- -- automatically check for plugin updates
- checker = { enabled = false },
- -- automatically check for config file changes and reload the ui
- change_detection = { enabled = false },
+ local_spec = true, -- load project specific .lazy.lua spec files. They will be added at the end of the spec.
+ lockfile = vim.fn.stdpath("config") .. "/lazy-lock.json", -- lockfile generated after running update.
+ ---@type number? limit the maximum amount of concurrent tasks
+ concurrency = jit.os:find("Windows") and (vim.uv.available_parallelism() * 2) or nil,
+ git = {
+ -- defaults for the `Lazy log` command
+ -- log = { "--since=3 days ago" }, -- show commits from the last 3 days
+ log = { "-8" }, -- show the last 8 commits
+ timeout = 120, -- kill processes that take more than 2 minutes
+ url_format = "https://github.com/%s.git",
+ -- lazy.nvim requires git >=2.19.0. If you really want to use lazy with an older version,
+ -- then set the below to false. This should work, but is NOT supported and will
+ -- increase downloads a lot.
+ filter = true,
+ -- rate of network related git operations (clone, fetch, checkout)
+ throttle = {
+ enabled = false, -- not enabled by default
+ -- max 2 ops every 5 seconds
+ rate = 2,
+ duration = 5 * 1000, -- in ms
+ },
+ -- Time in seconds to wait before running fetch again for a plugin.
+ -- Repeated update/check operations will not run again until this
+ -- cooldown period has passed.
+ cooldown = 0,
+ },
+ pkg = {
+ enabled = true,
+ cache = vim.fn.stdpath("state") .. "/lazy/pkg-cache.lua",
+ -- the first package source that is found for a plugin will be used.
+ sources = {
+ "lazy",
+ "rockspec", -- will only be used when rocks.enabled is true
+ "packspec",
+ },
+ },
+ rocks = {
+ enabled = true,
+ root = vim.fn.stdpath("data") .. "/lazy-rocks",
+ server = "https://lumen-oss.github.io/rocks-binaries/",
+ -- use hererocks to install luarocks?
+ -- set to `nil` to use hererocks when luarocks is not found
+ -- set to `true` to always use hererocks
+ -- set to `false` to always use luarocks
+ hererocks = nil,
+ },
+ dev = {
+ -- Directory where you store your local plugin projects. If a function is used,
+ -- the plugin directory (e.g. `~/projects/plugin-name`) must be returned.
+ ---@type string | fun(plugin: LazyPlugin): string
+ path = "~/projects",
+ ---@type string[] plugins that match these patterns will use your local versions instead of being fetched from GitHub
+ patterns = {}, -- For example {"folke"}
+ fallback = false, -- Fallback to git when local plugin doesn't exist
+ },
+ install = {
+ -- install missing plugins on startup. This doesn't increase startup time.
+ missing = true,
+ -- try to load one of these colorschemes when starting an installation during startup
+ colorscheme = { "catppuccin" },
+ },
+ ui = {
+ -- a number <1 is a percentage., >1 is a fixed size
+ size = { width = 0.8, height = 0.8 },
+ wrap = true, -- wrap the lines in the ui
+ -- The border to use for the UI window. Accepts same border values as |nvim_open_win()|.
+ border = "none",
+ -- The backdrop opacity. 0 is fully opaque, 100 is fully transparent.
+ backdrop = 60,
+ title = nil, ---@type string only works when border is not "none"
+ title_pos = "center", ---@type "center" | "left" | "right"
+ -- Show pills on top of the Lazy window
+ pills = true, ---@type boolean
+ icons = {
+ cmd = " ",
+ config = "",
+ debug = "● ",
+ event = " ",
+ favorite = " ",
+ ft = " ",
+ init = " ",
+ import = " ",
+ keys = " ",
+ lazy = "󰒲 ",
+ loaded = "●",
+ not_loaded = "○",
+ plugin = " ",
+ runtime = " ",
+ require = "󰢱 ",
+ source = " ",
+ start = " ",
+ task = "✔ ",
+ list = {
+ "●",
+ "➜",
+ "★",
+ "‒",
+ },
+ },
+ -- leave nil, to automatically select a browser depending on your OS.
+ -- If you want to use a specific browser, you can define it here
+ browser = nil, ---@type string?
+ throttle = 1000 / 30, -- how frequently should the ui process render events
+ custom_keys = {
+ -- You can define custom key maps here. If present, the description will
+ -- be shown in the help menu.
+ -- To disable one of the defaults, set it to false.
+
+ ["<leader>gL"] = {
+ function(plugin)
+ require("lazy.util").float_term({ "lazygit", "log" }, {
+ cwd = plugin.dir,
+ })
+ end,
+ desc = "Open lazygit log",
+ },
+
+ ["<leader>is"] = {
+ function(plugin)
+ Util.notify(vim.inspect(plugin), {
+ title = "Inspect " .. plugin.name,
+ lang = "lua",
+ })
+ end,
+ desc = "Inspect Plugin",
+ },
+
+ ["<leader><C-p>"] = {
+ function(plugin)
+ require("lazy.util").float_term(nil, {
+ cwd = plugin.dir,
+ })
+ end,
+ desc = "Open terminal in plugin dir",
+ },
+ },
+ },
+ -- Output options for headless mode
+ headless = {
+ -- show the output from process commands like git
+ process = true,
+ -- show log messages
+ log = true,
+ -- show task start/end
+ task = true,
+ -- use ansi colors
+ colors = true,
+ },
+ diff = {
+ -- diff command <d> can be one of:
+ -- * browser: opens the github compare view. Note that this is always mapped to <K> as well,
+ -- so you can have a different command for diff <d>
+ -- * git: will run git diff and open a buffer with filetype git
+ -- * terminal_git: will open a pseudo terminal with git diff
+ -- * diffview.nvim: will open Diffview to show the diff
+ cmd = "git",
+ },
+ checker = {
+ -- automatically check for plugin updates
+ enabled = false,
+ concurrency = nil, ---@type number? set to 1 to check for updates very slowly
+ notify = true, -- get a notification when new updates are found
+ frequency = 3600, -- check for updates every hour
+ check_pinned = false, -- check for pinned packages that can't be updated
+ },
+ change_detection = {
+ -- automatically check for config file changes and reload the ui
+ enabled = false,
+ notify = false, -- get a notification when changes are found
+ },
+ performance = {
+ cache = {
+ enabled = true,
+ },
+ reset_packpath = true, -- reset the package path to improve startup time
+ rtp = {
+ reset = true, -- reset the runtime path to $VIMRUNTIME and your config directory
+ ---@type string[]
+ paths = {}, -- add any custom paths here that you want to includes in the rtp
+ ---@type string[] list any plugins you want to disable here
+ disabled_plugins = {
+ -- "gzip",
+ -- "matchit",
+ -- "matchparen",
+ -- "netrwPlugin",
+ -- "tarPlugin",
+ -- "tohtml",
+ -- "tutor",
+ -- "zipPlugin",
+ },
+ },
+ },
+ -- lazy can generate helptags from the headings in markdown readme files,
+ -- so :help works even for plugins that don't have vim docs.
+ -- when the readme opens with :help it will be correctly displayed as markdown
+ readme = {
+ enabled = true,
+ root = vim.fn.stdpath("state") .. "/lazy/readme",
+ files = { "README.md", "lua/**/README.md" },
+ -- only generate markdown helptags for plugins that don't have docs
+ skip_if_doc_exists = true,
+ },
+ state = vim.fn.stdpath("state") .. "/lazy/state.json", -- state info for checker and other things
+ -- Enable profiling of lazy.nvim. This will add some overhead,
+ -- so only enable this when you are debugging lazy.nvim
+ profiling = {
+ -- Enables extra stats on the debug tab related to the loader cache.
+ -- Additionally gathers stats about all package.loaders
+ loader = false,
+ -- Track each new require in the Lazy profiling tab
+ require = false,
+ },
})
diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua
index fbce0c7..b82eac6 100644
--- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua
+++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua
@@ -1,140 +1,173 @@
return {
- -- "nvim-treesitter/nvim-treesitter-textobjects",
- -- dependencies = {
- -- { "nvim-treesitter", build = ":TSUpdate" },
- -- { "nvim-treesitter/nvim-treesitter" },
- -- {
- -- "chrisgrieser/nvim-various-textobjs",
- -- event = "UIEnter",
- -- opts = {
- -- keymaps = {
- -- useDefaults = true,
- -- },
- -- },
- -- },
- -- },
- -- init = function()
- -- local wk = require("which-key")
- -- wk.add({
- -- {
- -- mode = { "n", "v", "x" },
- -- { "g>", group = "Swap next" },
- -- { "g<", group = "Swap prev" },
- -- { "<leader>]", group = "Next" },
- -- { "<leader>[", group = "Prev" },
- -- },
- -- })
- -- end,
- -- config = function()
- -- require("nvim-treesitter.configs").setup({
- -- textobjects = {
- -- select = {
- -- enable = true,
+ "nvim-treesitter/nvim-treesitter-textobjects",
+ branch = "main",
+ dependencies = {
+ { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
+ {
+ "chrisgrieser/nvim-various-textobjs",
+ event = "UIEnter",
+ opts = {
+ keymaps = {
+ useDefaults = true,
+ },
+ },
+ },
+ },
+ init = function()
+ -- Disable entire built-in ftplugin mappings to avoid conflicts.
+ -- See https://github.com/neovim/neovim/tree/master/runtime/ftplugin for built-in ftplugins.
+ vim.g.no_plugin_maps = true
- -- -- Automatically jump forward to textobj, similar to targets.vim
- -- lookahead = true,
+ -- Or, disable per filetype (add as you like)
+ -- vim.g.no_python_maps = true
+ -- vim.g.no_ruby_maps = true
+ -- vim.g.no_rust_maps = true
+ -- vim.g.no_go_maps = true
- -- keymaps = {
- -- -- You can use the capture groups defined in textobjects.scm
- -- ["a="] = { query = "@assignment.outer", desc = "Select outer part of an assignment" },
- -- ["i="] = { query = "@assignment.inner", desc = "Select inner part of an assignment" },
- -- ["h="] = { query = "@assignment.lhs", desc = "Select left hand side of an assignment" },
- -- ["l="] = { query = "@assignment.rhs", desc = "Select right hand side of an assignment" },
+ local wk = require("which-key")
+ wk.add({
+ {
+ mode = { "n", "v", "x" },
+ { "g>", group = "Swap next" },
+ { "g<", group = "Swap prev" },
+ { "<leader>]", group = "Next" },
+ { "<leader>[", group = "Prev" },
+ },
+ })
+ end,
+ config = function()
+ require("nvim-treesitter-textobjects").setup({
+ select = {
+ -- Automatically jump forward to textobj, similar to targets.vim
+ lookahead = true,
+ -- You can choose the select mode (default is charwise 'v')
+ --
+ -- Can also be a function which gets passed a table with the keys
+ -- * query_string: eg '@function.inner'
+ -- * method: eg 'v' or 'o'
+ -- and should return the mode ('v', 'V', or '<c-v>') or a table
+ -- mapping query_strings to modes.
+ selection_modes = {
+ ["@parameter.outer"] = "v", -- charwise
+ ["@function.outer"] = "V", -- linewise
+ ["@class.outer"] = "<c-v>", -- blockwise
+ },
+ -- If you set this to `true` (default is `false`) then any textobject is
+ -- extended to include preceding or succeeding whitespace. Succeeding
+ -- whitespace has priority in order to act similarly to eg the built-in
+ -- `ap`.
+ --
+ -- Can also be a function which gets passed a table with the keys
+ -- * query_string: eg '@function.inner'
+ -- * selection_mode: eg 'v'
+ -- and should return true of false
+ include_surrounding_whitespace = false,
+ },
+ move = {
+ -- whether to set jumps in the jumplist
+ set_jumps = true,
+ },
+ })
- -- -- works for javascript/typescript files (custom capture I created in after/queries/ecma/textobjects.scm)
- -- ["a:"] = { query = "@property.outer", desc = "Select outer part of an object property" },
- -- ["i:"] = { query = "@property.inner", desc = "Select inner part of an object property" },
- -- ["h:"] = { query = "@property.lhs", desc = "Select left part of an object property" },
- -- ["l:"] = { query = "@property.rhs", desc = "Select right part of an object property" },
+ -- keymaps
+ -- You can use the capture groups defined in `textobjects.scm`
+ vim.keymap.set({ "x", "o" }, "am", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@function.outer", "textobjects")
+ end)
+ vim.keymap.set({ "x", "o" }, "im", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@function.inner", "textobjects")
+ end)
+ vim.keymap.set({ "x", "o" }, "ac", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@class.outer", "textobjects")
+ end)
+ vim.keymap.set({ "x", "o" }, "ic", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@class.inner", "textobjects")
+ end)
+ -- You can also use captures from other query groups like `locals.scm`
+ vim.keymap.set({ "x", "o" }, "as", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@local.scope", "locals")
+ end)
+ -- keymaps
+ vim.keymap.set("n", "<leader>a", function()
+ require("nvim-treesitter-textobjects.swap").swap_next("@parameter.inner")
+ end)
+ vim.keymap.set("n", "<leader>A", function()
+ require("nvim-treesitter-textobjects.swap").swap_previous("@parameter.outer")
+ end)
+ -- You can use the capture groups defined in `textobjects.scm`
+ vim.keymap.set({ "n", "x", "o" }, "]m", function()
+ require("nvim-treesitter-textobjects.move").goto_next_start("@function.outer", "textobjects")
+ end)
+ vim.keymap.set({ "n", "x", "o" }, "]]", function()
+ require("nvim-treesitter-textobjects.move").goto_next_start("@class.outer", "textobjects")
+ end)
+ -- You can also pass a list to group multiple queries.
+ vim.keymap.set({ "n", "x", "o" }, "]o", function()
+ move.goto_next_start({ "@loop.inner", "@loop.outer" }, "textobjects")
+ end)
+ -- You can also use captures from other query groups like `locals.scm` or `folds.scm`
+ vim.keymap.set({ "n", "x", "o" }, "]s", function()
+ require("nvim-treesitter-textobjects.move").goto_next_start("@local.scope", "locals")
+ end)
+ vim.keymap.set({ "n", "x", "o" }, "]z", function()
+ require("nvim-treesitter-textobjects.move").goto_next_start("@fold", "folds")
+ end)
- -- ["aa"] = { query = "@parameter.outer", desc = "Select outer part of a parameter/argument" },
- -- ["ia"] = { query = "@parameter.inner", desc = "Select inner part of a parameter/argument" },
+ vim.keymap.set({ "n", "x", "o" }, "]M", function()
+ require("nvim-treesitter-textobjects.move").goto_next_end("@function.outer", "textobjects")
+ end)
+ vim.keymap.set({ "n", "x", "o" }, "][", function()
+ require("nvim-treesitter-textobjects.move").goto_next_end("@class.outer", "textobjects")
+ end)
- -- ["an"] = { query = "@conditional.outer", desc = "Select outer part of a conditional" },
- -- ["in"] = { query = "@conditional.inner", desc = "Select inner part of a conditional" },
+ vim.keymap.set({ "n", "x", "o" }, "[m", function()
+ require("nvim-treesitter-textobjects.move").goto_previous_start("@function.outer", "textobjects")
+ end)
+ vim.keymap.set({ "n", "x", "o" }, "[[", function()
+ require("nvim-treesitter-textobjects.move").goto_previous_start("@class.outer", "textobjects")
+ end)
- -- ["ap"] = { query = "@loop.outer", desc = "Select outer part of a loop" },
- -- ["ip"] = { query = "@loop.inner", desc = "Select inner part of a loop" },
+ vim.keymap.set({ "n", "x", "o" }, "[M", function()
+ require("nvim-treesitter-textobjects.move").goto_previous_end("@function.outer", "textobjects")
+ end)
+ vim.keymap.set({ "n", "x", "o" }, "[]", function()
+ require("nvim-treesitter-textobjects.move").goto_previous_end("@class.outer", "textobjects")
+ end)
- -- ["af"] = { query = "@call.outer", desc = "Select outer part of a function call" },
- -- ["if"] = { query = "@call.inner", desc = "Select inner part of a function call" },
+ -- Go to either the start or the end, whichever is closer.
+ -- Use if you want more granular movements
+ vim.keymap.set({ "n", "x", "o" }, "]d", function()
+ require("nvim-treesitter-textobjects.move").goto_next("@conditional.outer", "textobjects")
+ end)
+ vim.keymap.set({ "n", "x", "o" }, "[d", function()
+ require("nvim-treesitter-textobjects.move").goto_previous("@conditional.outer", "textobjects")
+ end)
- -- ["am"] = {
- -- query = "@function.outer",
- -- desc = "Select outer part of a method/function definition",
- -- },
- -- ["im"] = {
- -- query = "@function.inner",
- -- desc = "Select inner part of a method/function definition",
- -- },
+ local ts_repeat_move = require("nvim-treesitter-textobjects.repeatable_move")
- -- ["ac"] = { query = "@class.outer", desc = "Select outer part of a class" },
- -- ["ic"] = { query = "@class.inner", desc = "Select inner part of a class" },
- -- },
- -- },
- -- swap = {
- -- enable = true,
- -- swap_next = {
- -- ["g>a"] = { query = "@parameter.inner", desc = "swap parameters/argument with next" },
- -- ["g>:"] = { query = "@property.outer", desc = "swap object property with next" },
- -- ["g>m"] = { query = "@function.outer", desc = "swap function with next" },
- -- },
- -- swap_previous = {
- -- ["g<a"] = { query = "@parameter.inner", desc = "swap parameters/argument with prev" },
- -- ["g<:"] = { query = "@property.outer", desc = "swap object property with prev" },
- -- ["g<m"] = { query = "@function.outer", desc = "swap function with previous" },
- -- },
- -- },
- -- move = {
- -- enable = true,
- -- set_jumps = true, -- whether to set jumps in the jumplist
- -- goto_next_start = {
- -- ["]f"] = { query = "@call.outer", desc = "Next function call start" },
- -- ["]m"] = { query = "@function.outer", desc = "Next method/function def start" },
- -- ["]c"] = { query = "@class.outer", desc = "Next class start" },
- -- ["]="] = { query = "@conditional.outer", desc = "Next conditional start" },
- -- ["]l"] = { query = "@loop.outer", desc = "Next loop start" },
+ -- Repeat movement with ; and ,
+ -- ensure ; goes forward and , goes backward regardless of the last direction
+ vim.keymap.set({ "n", "x", "o" }, ";", ts_repeat_move.repeat_last_move_next)
+ vim.keymap.set({ "n", "x", "o" }, ",", ts_repeat_move.repeat_last_move_previous)
- -- -- You can pass a query group to use query from `queries/<lang>/<query_group>.scm file in your runtime path.
- -- -- Below example nvim-treesitter's `locals.scm` and `folds.scm`. They also provide highlights.scm and indent.scm.
- -- ["]-"] = { query = "@scope", query_group = "locals", desc = "Next scope" },
- -- ["]z"] = { query = "@fold", query_group = "folds", desc = "Next fold" },
- -- },
- -- goto_next_end = {
- -- ["]F"] = { query = "@call.outer", desc = "Next function call end" },
- -- ["]M"] = { query = "@function.outer", desc = "Next method/function def end" },
- -- ["]C"] = { query = "@class.outer", desc = "Next class end" },
- -- ["]+"] = { query = "@conditional.outer", desc = "Next conditional end" },
- -- ["]L"] = { query = "@loop.outer", desc = "Next loop end" },
- -- },
- -- goto_previous_start = {
- -- ["[f"] = { query = "@call.outer", desc = "Prev function call start" },
- -- ["[m"] = { query = "@function.outer", desc = "Prev method/function def start" },
- -- ["[c"] = { query = "@class.outer", desc = "Prev class start" },
- -- ["[="] = { query = "@conditional.outer", desc = "Prev conditional start" },
- -- ["[l"] = { query = "@loop.outer", desc = "Prev loop start" },
- -- },
- -- goto_previous_end = {
- -- ["[F"] = { query = "@call.outer", desc = "Prev function call end" },
- -- ["[M"] = { query = "@function.outer", desc = "Prev method/function def end" },
- -- ["[C"] = { query = "@class.outer", desc = "Prev class end" },
- -- ["[+"] = { query = "@conditional.outer", desc = "Prev conditional end" },
- -- ["[L"] = { query = "@loop.outer", desc = "Prev loop end" },
- -- },
- -- },
- -- },
- -- })
+ -- vim way: ; goes to the direction you were moving.
+ -- vim.keymap.set({ "n", "x", "o" }, ";", ts_repeat_move.repeat_last_move)
+ -- vim.keymap.set({ "n", "x", "o" }, ",", ts_repeat_move.repeat_last_move_opposite)
- -- local ts_repeat_move = require("nvim-treesitter.textobjects.repeatable_move")
+ -- Optionally, make builtin f, F, t, T also repeatable with ; and ,
+ vim.keymap.set({ "n", "x", "o" }, "f", ts_repeat_move.builtin_f_expr, { expr = true })
+ vim.keymap.set({ "n", "x", "o" }, "F", ts_repeat_move.builtin_F_expr, { expr = true })
+ vim.keymap.set({ "n", "x", "o" }, "t", ts_repeat_move.builtin_t_expr, { expr = true })
+ vim.keymap.set({ "n", "x", "o" }, "T", ts_repeat_move.builtin_T_expr, { expr = true })
- -- -- vim way: ; goes to the direction you were moving.
- -- vim.keymap.set({ "n", "x", "o" }, ";", ts_repeat_move.repeat_last_move)
- -- vim.keymap.set({ "n", "x", "o" }, ",", ts_repeat_move.repeat_last_move_opposite)
+ -- This repeats the last query with always previous direction and to the start of the range.
+ vim.keymap.set({ "n", "x", "o" }, "<home>", function()
+ ts_repeat_move.repeat_last_move({ forward = false, start = true })
+ end)
- -- -- Optionally, make builtin f, F, t, T also repeatable with ; and ,
- -- vim.keymap.set({ "n", "x", "o" }, "f", ts_repeat_move.builtin_f_expr, { expr = true })
- -- vim.keymap.set({ "n", "x", "o" }, "F", ts_repeat_move.builtin_F_expr, { expr = true })
- -- vim.keymap.set({ "n", "x", "o" }, "t", ts_repeat_move.builtin_t_expr, { expr = true })
- -- vim.keymap.set({ "n", "x", "o" }, "T", ts_repeat_move.builtin_T_expr, { expr = true })
- -- end,
+ -- This repeats the last query with always next direction and to the end of the range.
+ vim.keymap.set({ "n", "x", "o" }, "<end>", function()
+ ts_repeat_move.repeat_last_move({ forward = true, start = false })
+ end)
+ end,
}
diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua
index 7ca4ae9..7a9639c 100644
--- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua
+++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua
@@ -1,62 +1,38 @@
return {
"nvim-treesitter/nvim-treesitter",
+ lazy = false,
build = ":TSUpdate",
dependencies = { "nvim-treesitter/nvim-treesitter-textobjects" },
config = function()
require("nvim-treesitter").setup({
- -- A list of parser names, or "all"
- ensure_installed = {
- "bash",
- "c",
- "cpp",
- "dockerfile",
- "html",
- "java",
- "json5",
- "latex",
- "lua",
- "markdown",
- "markdown_inline",
- "python",
- "sql",
- "vim",
- "vimdoc",
- },
-
- -- Install parsers synchronously (only applied to `ensure_installed`)
- sync_install = true,
-
- -- Automatically install missing parsers when entering buffer
- -- Recommendation: set to false if you don"t have `tree-sitter` CLI installed locally
- auto_install = true,
-
- -- List of parsers to ignore installing (or "all")
- ignore_install = {},
-
- highlight = {
- -- `false` will disable the whole extension
- enable = true,
- disable = { "csv" },
- -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
- -- Set this to `true` if you depend on "syntax" being enabled (like for indentation).
- -- Using this option may slow down your editor, and you may see some duplicate highlights.
- -- Instead of true it can also be a list of languages
- additional_vim_regex_highlighting = { "markdown" },
- },
+ install_dir = vim.fn.stdpath("data") .. "/treesitter",
})
-
- -- local treesitter_parser_config = require("nvim-treesitter.parsers").get_parser_configs()
- -- treesitter_parser_config.templ = {
- -- install_info = {
- -- url = "https://github.com/vrischmann/tree-sitter-templ.git",
- -- files = { "src/parser.c", "src/scanner.c" },
- -- branch = "master",
- -- },
- -- }
- --
- -- vim.treesitter.language.register("templ", "templ")
end,
keys = {
- { "<leader>T", ":TSUpdate<cr>", desc = "Update treesitter" },
+ { "<leader>TU", ":TSUpdate<cr>", desc = "Update treesitter" },
+ {
+ "<leader>TI",
+ function()
+ require("nvim-treesitter").install({
+ "bash",
+ "c",
+ "cpp",
+ "dockerfile",
+ "html",
+ "java",
+ "javascript",
+ "json5",
+ "latex",
+ "lua",
+ "markdown",
+ "markdown_inline",
+ "python",
+ "sql",
+ "vim",
+ "vimdoc",
+ })
+ end,
+ desc = "Update treesitter",
+ },
},
}
diff --git a/mac/.config/git/config b/mac/.config/git/config
index 0324918..29c8585 100644
--- a/mac/.config/git/config
+++ b/mac/.config/git/config
@@ -10,6 +10,8 @@
branch = bold magenta
changed = yellow
untracked = blue
+[commit]
+ gpgSign = false
[credential]
helper = cache
helper = store
@@ -84,5 +86,3 @@
name = TheSiahxyz
email = 164138827+TheSiahxyz@users.noreply.github.com
signingkey = 67BE7AD056C803BA
-[commit]
- gpgsign = true