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/ssh.lua221
-rw-r--r--mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua250
-rw-r--r--mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua22
-rw-r--r--mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/recordings.lua30
-rw-r--r--mac/.config/sesh/sesh.toml4
-rw-r--r--mac/.config/shell/profile8
7 files changed, 623 insertions, 146 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/ssh.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ssh.lua
index 748191f..df8aad5 100644
--- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ssh.lua
+++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ssh.lua
@@ -203,4 +203,225 @@ return {
require("telescope").load_extension("remote-sshfs")
end,
},
+ {
+ "inhesrom/remote-ssh.nvim",
+ branch = "master",
+ dependencies = {
+ "inhesrom/telescope-remote-buffer", --See https://github.com/inhesrom/telescope-remote-buffer for features
+ "nvim-telescope/telescope.nvim",
+ "nvim-lua/plenary.nvim",
+ "neovim/nvim-lspconfig",
+ -- nvim-notify is recommended, but not necessarily required into order to get notifcations during operations - https://github.com/rcarriga/nvim-notify
+ "rcarriga/nvim-notify",
+ },
+ config = function()
+ require("telescope-remote-buffer").setup(
+ -- Default keymaps to open telescope and search open buffers including "remote" open buffers
+ --fzf = "<leader>fz",
+ --match = "<leader>gb",
+ --oldfiles = "<leader>rb"
+ )
+
+ -- setup lsp_config here or import from part of neovim config that sets up LSP
+ require("remote-ssh").setup({
+ -- Optional: Custom on_attach function for LSP clients
+ on_attach = function(client, bufnr)
+ -- Your LSP keybindings and setup
+ end,
+
+ -- Optional: Custom capabilities for LSP clients
+ capabilities = vim.lsp.protocol.make_client_capabilities(),
+
+ -- Custom mapping from filetype to LSP server name
+ filetype_to_server = {
+ -- Example: Use pylsp for Python (default and recommended)
+ python = "pylsp",
+ -- More customizations...
+ },
+
+ -- Custom server configurations
+ server_configs = {
+ -- Custom config for clangd
+ clangd = {
+ filetypes = { "c", "cpp", "objc", "objcpp" },
+ root_patterns = { ".git", "compile_commands.json" },
+ init_options = {
+ usePlaceholders = true,
+ completeUnimported = true,
+ },
+ },
+ -- More server configs...
+ },
+
+ -- Async write configuration
+ async_write_opts = {
+ timeout = 30, -- Timeout in seconds for write operations
+ debug = false, -- Enable debug logging
+ log_level = vim.log.levels.INFO,
+ autosave = true, -- Enable automatic saving on text changes (default: true)
+ -- Set to false to disable auto-save while keeping manual saves (:w) working
+ save_debounce_ms = 3000, -- Delay before initiating auto-save to handle rapid editing (default: 3000)
+ },
+ })
+
+ -- Custom function to parse SSH config and extract Host entries
+ local function parse_ssh_hosts()
+ local ssh_config_path = vim.fn.expand("$HOME") .. "/.ssh/config"
+ local hosts = {}
+ local seen = {}
+
+ -- Check if file exists
+ if vim.fn.filereadable(ssh_config_path) == 0 then
+ return hosts
+ end
+
+ -- Read and parse SSH config file
+ local lines = vim.fn.readfile(ssh_config_path)
+ for _, line in ipairs(lines) do
+ -- Trim whitespace
+ local trimmed = vim.fn.trim(line)
+ -- Skip comments and empty lines
+ if trimmed ~= "" and not vim.startswith(trimmed, "#") then
+ -- Match "Host" keyword exactly (case-insensitive) followed by whitespace
+ -- Use pattern to ensure it's "Host " not "HostName" or other keywords
+ local host_match = string.match(string.lower(trimmed), "^host%s+(.+)$")
+ if host_match then
+ -- Handle multiple hosts on same line (space or comma separated)
+ for host in vim.gsplit(host_match, "[%s,]+") do
+ host = vim.fn.trim(host)
+ -- Skip wildcards and empty strings
+ if host ~= "" and host ~= "*" and not string.match(host, "^%*") and not seen[host] then
+ table.insert(hosts, host)
+ seen[host] = true
+ end
+ end
+ end
+ end
+ end
+
+ return hosts
+ end
+
+ -- Custom function to open RemoteTreeBrowser with selected SSH host
+ local function remote_tree_browser_picker()
+ local hosts = parse_ssh_hosts()
+ if #hosts == 0 then
+ return vim.notify(
+ "No SSH hosts found in ~/.ssh/config",
+ vim.log.levels.WARN,
+ { title = "Remote SSH" }
+ )
+ end
+
+ -- Use vim.ui.select (default Neovim UI)
+ vim.ui.select(hosts, { prompt = "Select SSH host for RemoteTreeBrowser" }, function(choice)
+ if choice and choice ~= "" then
+ -- Use rsync:// protocol with double slash (//) for SSH config Host aliases
+ -- Format: rsync://host-alias//path (double slash is required for SSH config aliases)
+ -- The plugin automatically detects and handles SSH config settings
+ local rsync_url = "rsync://" .. choice .. "//"
+
+ -- Run RemoteTreeBrowser command
+ -- rsync:// protocol will use SSH config to resolve Host alias
+ vim.schedule(function()
+ -- Step 1: Create browser
+ vim.api.nvim_cmd({ cmd = "RemoteTreeBrowser", args = { rsync_url } }, {})
+ -- Step 2: Hide browser (needed for proper positioning)
+ vim.defer_fn(function()
+ vim.api.nvim_cmd({ cmd = "RemoteTreeBrowserHide" }, {})
+ -- Step 3: Show browser (will open on the right side)
+ vim.defer_fn(function()
+ vim.api.nvim_cmd({ cmd = "RemoteTreeBrowserShow" }, {})
+ end, 50)
+ end, 100)
+ end)
+ end
+ end)
+ end
+
+ -- Toggle function for RemoteTreeBrowser show/hide
+ local function remote_tree_browser_toggle()
+ -- Try to access remote-ssh.nvim's TreeBrowser module
+ local ok, tree_browser = pcall(require, "remote-ssh.tree_browser")
+ if ok and tree_browser then
+ -- Check if browser buffer exists (like show_tree() does)
+ local bufnr = tree_browser.bufnr
+ if not bufnr or not vim.api.nvim_buf_is_valid(bufnr) then
+ -- Browser doesn't exist, show SSH config picker to create one
+ remote_tree_browser_picker()
+ return
+ end
+
+ -- Browser buffer exists, check if window is visible (like hide_tree() does)
+ local win_id = tree_browser.win_id
+ local is_visible = win_id and vim.api.nvim_win_is_valid(win_id)
+
+ if is_visible then
+ -- Browser is visible, hide it
+ if tree_browser.hide_tree then
+ tree_browser.hide_tree()
+ else
+ vim.api.nvim_cmd({ cmd = "RemoteTreeBrowserHide" }, {})
+ end
+ -- After hiding, return early to prevent any further actions
+ return
+ else
+ -- Browser exists but hidden, show it
+ -- Directly use command instead of show_tree() to avoid any callbacks
+ vim.api.nvim_cmd({ cmd = "RemoteTreeBrowserShow" }, {})
+ end
+ else
+ -- Fallback: only use this if module is not accessible
+ -- Check if browser buffer exists (not just visible windows)
+ local browser_buf_found = false
+ local browser_visible = false
+
+ -- Check all buffers, not just visible windows
+ for _, buf in ipairs(vim.api.nvim_list_bufs()) do
+ if vim.api.nvim_buf_is_valid(buf) then
+ local buf_name = vim.api.nvim_buf_get_name(buf)
+ -- Check if it's a remote tree browser buffer
+ if buf_name:match("rsync://") then
+ browser_buf_found = true
+ -- Check if this buffer is visible in any window
+ for _, win in ipairs(vim.api.nvim_list_wins()) do
+ if vim.api.nvim_win_get_buf(win) == buf then
+ browser_visible = true
+ break
+ end
+ end
+ break
+ end
+ end
+ end
+
+ if browser_buf_found then
+ -- Browser buffer exists
+ if browser_visible then
+ -- Browser is visible, hide it
+ vim.api.nvim_cmd({ cmd = "RemoteTreeBrowserHide" }, {})
+ else
+ -- Browser exists but hidden, show it
+ vim.api.nvim_cmd({ cmd = "RemoteTreeBrowserShow" }, {})
+ end
+ else
+ -- Browser not found, show SSH config picker
+ remote_tree_browser_picker()
+ end
+ end
+ end
+
+ -- Keymap for custom RemoteTreeBrowser picker
+ vim.keymap.set("n", "<leader>er", remote_tree_browser_picker, {
+ desc = "RemoteTreeBrowser (pick SSH host)",
+ silent = true,
+ })
+
+ -- Keymap for toggle RemoteTreeBrowser show/hide
+ vim.keymap.set("n", "<leader>ef", remote_tree_browser_toggle, {
+ desc = "Toggle RemoteTreeBrowser",
+ silent = true,
+ })
+ end,
+ },
}
diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua
index 3002fc0..fbce0c7 100644
--- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua
+++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/textobject.lua
@@ -1,140 +1,140 @@
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",
+ -- 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,
- -- Automatically jump forward to textobj, similar to targets.vim
- lookahead = true,
+ -- -- Automatically jump forward to textobj, similar to targets.vim
+ -- lookahead = 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" },
+ -- 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" },
- -- 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" },
+ -- -- 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" },
- ["aa"] = { query = "@parameter.outer", desc = "Select outer part of a parameter/argument" },
- ["ia"] = { query = "@parameter.inner", desc = "Select inner part of a parameter/argument" },
+ -- ["aa"] = { query = "@parameter.outer", desc = "Select outer part of a parameter/argument" },
+ -- ["ia"] = { query = "@parameter.inner", desc = "Select inner part of a parameter/argument" },
- ["an"] = { query = "@conditional.outer", desc = "Select outer part of a conditional" },
- ["in"] = { query = "@conditional.inner", desc = "Select inner part of a conditional" },
+ -- ["an"] = { query = "@conditional.outer", desc = "Select outer part of a conditional" },
+ -- ["in"] = { query = "@conditional.inner", desc = "Select inner part of a conditional" },
- ["ap"] = { query = "@loop.outer", desc = "Select outer part of a loop" },
- ["ip"] = { query = "@loop.inner", desc = "Select inner part of a loop" },
+ -- ["ap"] = { query = "@loop.outer", desc = "Select outer part of a loop" },
+ -- ["ip"] = { query = "@loop.inner", desc = "Select inner part of a loop" },
- ["af"] = { query = "@call.outer", desc = "Select outer part of a function call" },
- ["if"] = { query = "@call.inner", desc = "Select inner part of a function call" },
+ -- ["af"] = { query = "@call.outer", desc = "Select outer part of a function call" },
+ -- ["if"] = { query = "@call.inner", desc = "Select inner part of a function call" },
- ["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",
- },
+ -- ["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",
+ -- },
- ["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" },
+ -- ["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" },
- -- 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" },
- },
- },
- },
- })
+ -- -- 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" },
+ -- },
+ -- },
+ -- },
+ -- })
- local ts_repeat_move = require("nvim-treesitter.textobjects.repeatable_move")
+ -- local ts_repeat_move = require("nvim-treesitter.textobjects.repeatable_move")
- -- 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)
+ -- -- 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)
- -- 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,
+ -- -- 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,
}
diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua
index c486343..7ca4ae9 100644
--- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua
+++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/treesitter.lua
@@ -3,7 +3,7 @@ return {
build = ":TSUpdate",
dependencies = { "nvim-treesitter/nvim-treesitter-textobjects" },
config = function()
- require("nvim-treesitter.configs").setup({
+ require("nvim-treesitter").setup({
-- A list of parser names, or "all"
ensure_installed = {
"bash",
@@ -45,16 +45,16 @@ return {
},
})
- 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")
+ -- 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" },
diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/recordings.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/recordings.lua
new file mode 100644
index 0000000..9ce9124
--- /dev/null
+++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/recordings.lua
@@ -0,0 +1,30 @@
+local ls = require("luasnip")
+
+local s = ls.snippet
+local i = ls.insert_node
+local f = ls.function_node
+
+local fmt = require("luasnip.extras.fmt").fmta
+
+local recordings_snippet = s(
+ "recordings",
+ fmt(
+ [[---
+title: <title>
+date: <date>
+---
+
+<story>
+]],
+ {
+ title = i(1, "My Journal"),
+ date = f(function()
+ return os.date("%Y-%m-%d")
+ end, {}),
+ story = i(3),
+ }
+ )
+)
+
+ls.add_snippets("markdown", { recordings_snippet })
+ls.add_snippets("quarto", { recordings_snippet })
diff --git a/mac/.config/sesh/sesh.toml b/mac/.config/sesh/sesh.toml
index 954e199..76e6356 100644
--- a/mac/.config/sesh/sesh.toml
+++ b/mac/.config/sesh/sesh.toml
@@ -26,11 +26,11 @@ startup_command = "nvim tmux.conf"
preview_command = "bat --plain --wrap character --color=always ~/.config/tmux/tmux.conf"
[[session]]
-name = "config"
+name = "_config"
path = "~/.config"
[[session]]
-name = "dotfiles"
+name = "_dotfiles"
path = "~/.dotfiles"
[[session]]
diff --git a/mac/.config/shell/profile b/mac/.config/shell/profile
index 3e1ca79..546aafe 100644
--- a/mac/.config/shell/profile
+++ b/mac/.config/shell/profile
@@ -109,6 +109,12 @@ export JUPYTER_PLATFORM_DIRS="1"
### --- KODI --- ###
export KODI_DATA="$XDG_DATA_HOME/kodi"
+### --- LUA --- ###
+export LUA_BIN="/opt/homebrew/bin/lua"
+export LUA_CPATH="/usr/local/lib/lua/5.1/?.so;;"
+export LUA_INTERPRETER=lua5.1
+export LUA_PATH="/usr/local/share/lua/5.1/?.lua;;"
+
### --- LYNX --- ###
export LYNX_CFG="$HOME/.config/lynx/lynx.cfg"
export LYNX_LSS="$HOME/.config/lynx/lynx.lss"
@@ -245,6 +251,7 @@ export SDCV_PAGER='less --quit-if-one-screen -RX'
### --- ENV PATH --- ###
###################################################
# Add all directories in each subdirectory to $PATH
+export PATH="/usr/local/bin:$PATH"
[ -d ~/.local/bin ] && export PATH="$(find ~/.local/bin -path '*/.git*' -prune -o \( -type f -o -type l \) -perm -u=x -exec dirname {} \; | sort -u | paste -sd ':' -):$PATH"
[ -d ~/.local/share/.password-store ] && export PATH="$(find ~/.local/share/.password-store -type d -name '.extensions' | paste -sd ':' -):$PATH"
export PATH="$ASDF_DATA_DIR/shims:$PATH"
@@ -252,6 +259,7 @@ export PATH="/opt/homebrew/bin:$PATH"
[ -d /opt/homebrew/Caskroom ] && export PATH="$(find -L /opt/homebrew/Caskroom \( -name bin -o -name MacOS \) -type d -print 2>/dev/null | sort -u | paste -s -d ':' -):$PATH"
[ -d /opt/homebrew/Cellar ] && export PATH="$(find -L /opt/homebrew/Cellar -name bin -type d -print 2>/dev/null | sort -u | paste -s -d ':' -):$PATH"
[ -d /opt/homebrew/opt ] && export PATH="$(find -L /opt/homebrew/opt -name bin -type d -print 2>/dev/null | sort -u | paste -s -d ':' -):$PATH"
+[ -d /opt/homebrew/opt/coreutils/libexec ] && export PATH="$(find -L /opt/homebrew/opt/coreutils/libexec -name gnubin -type d -print 2>/dev/null | sort -u | paste -s -d ':' -):$PATH"
unsetopt PROMPT_SP 2>/dev/null