Added yazi, fixed nvim and tmux a bit, regular updates to ZSH

This commit is contained in:
Josh Patra
2025-11-22 17:06:24 -05:00
parent 1d36a7c23a
commit e6576ac9a4
10 changed files with 388 additions and 130 deletions

View File

@@ -0,0 +1,5 @@
syntax off
filetype off
set noundofile
set noswapfile
set noloadplugins

View File

@@ -1,58 +1,58 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "fb525166ccc30296fb3457441eb979113de46b00" },
"actions-preview.nvim": { "branch": "master", "commit": "36513ad213855d497b7dd3391a24d1d75d58e36f" },
"alpha-nvim": { "branch": "main", "commit": "a35468cd72645dbd52c0624ceead5f301c566dff" },
"clangd_extensions.nvim": { "branch": "main", "commit": "db28f29be928d18cbfb86fbfb9f83f584f658feb" },
"LuaSnip": { "branch": "master", "commit": "21e9fecfc07fb2cd707b6c7c3fa148550a34d053" },
"actions-preview.nvim": { "branch": "master", "commit": "cb938c25edaac38d362555f19244a9cb85d561e8" },
"alpha-nvim": { "branch": "main", "commit": "3979b01cb05734331c7873049001d3f2bb8477f4" },
"clangd_extensions.nvim": { "branch": "main", "commit": "b67cc417d9020fb4b83d46662351b4d16894905e" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "fd3e882e56956675c620898bf1ffcf4fcbe7ec84" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"codesnap.nvim": { "branch": "main", "commit": "be6d6b9a3b5e6999edbda76b16dace03d9bfcd3d" },
"compiler.nvim": { "branch": "main", "commit": "eb7f82bb8f9e722dd194f638e67ec53c12ce5ac5" },
"conform.nvim": { "branch": "master", "commit": "8132ec733eed3bf415b97b76797ca41b59f51d7d" },
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
"codesnap.nvim": { "branch": "main", "commit": "927d4a40361cf3c066a5426477822b41ba6069ab" },
"compiler.nvim": { "branch": "main", "commit": "c09ab4e795b92378727d7377c03b0d5c2453957c" },
"conform.nvim": { "branch": "master", "commit": "1bf8b5b9caee51507aa51eaed3da5b0f2595c6b9" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "6ef8c54fb526bf3a0bc4efb0b2fe8e6d9a7daed2" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "bef29b653ba71d442816bf56286c2a686210be04" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" },
"mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" },
"mini.indentscope": { "branch": "main", "commit": "5fdc3edf7bb1b6365980c2c47dac2f19ec93c97b" },
"mini.nvim": { "branch": "main", "commit": "8f2ea1e69546d2606b97cb1c0e9458a1a0d2e73f" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "7d527c76c43f46294de9c19d39c5a86317809b4b" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" },
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
"mini.indentscope": { "branch": "main", "commit": "0308f949f31769e509696af5d5f91cebb2159c69" },
"mini.nvim": { "branch": "main", "commit": "6e885e4c27743ae6bf5957ea78ce86c032835f09" },
"minimap.vim": { "branch": "master", "commit": "57287e2dd28fa3e63276a32d11c729df14741d54" },
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-lint": { "branch": "master", "commit": "2b0039b8be9583704591a13129c600891ac2c596" },
"nvim-lspconfig": { "branch": "master", "commit": "583a1d555c8e407868ce00c57e37eca4b7ff960e" },
"nvim-notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" },
"nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" },
"nvim-lint": { "branch": "master", "commit": "a0718addcf9b5ba4325eb45441020bb824af9503" },
"nvim-lspconfig": { "branch": "master", "commit": "b7c48a7111534b66bee077da8035ac7208a294ff" },
"nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-context": { "branch": "master", "commit": "b5ef8e3b8cb40b76975cfbcd2f590654eeb6ff00" },
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
"nvim-treesitter-context": { "branch": "master", "commit": "660861b1849256398f70450afdf93908d28dc945" },
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
"nvim-ufo": { "branch": "main", "commit": "80fe8215ba566df2fbf3bf4d25f59ff8f41bc0e1" },
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
"outline.nvim": { "branch": "main", "commit": "321f89ef79f168a78685f70d70c52d0e7b563abb" },
"nvim-ufo": { "branch": "main", "commit": "72d54c31079d38d8dfc5456131b1d0fb5c0264b0" },
"nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" },
"outline.nvim": { "branch": "main", "commit": "6b62f73a6bf317531d15a7ae1b724e85485d8148" },
"overseer.nvim": { "branch": "master", "commit": "6271cab7ccc4ca840faa93f54440ffae3a3918bd" },
"persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
"smart-splits.nvim": { "branch": "master", "commit": "dcc9a886ac7214db6dd67d27044b8388b628dcb6" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "626998e5c1b71c130d8bc6cf7abb6709b98287bb" },
"smart-splits.nvim": { "branch": "master", "commit": "71cf185c848d7c3ed62043df916f056a22cb4007" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "3610dc7dc91f06aa98b11dca5cc30dfa98626b7e" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope-undo.nvim": { "branch": "main", "commit": "928d0c2dc9606e01e2cc547196f48d2eaecf58e5" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" },
"vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" },
"vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
"vim-matchup": { "branch": "master", "commit": "c478d4a72bbf397eff42743198f1939f6a264736" },
"vim-matchup": { "branch": "master", "commit": "1c276e12b49a83c1bdca74351187b8adea5da4b9" },
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"vim-smoothie": { "branch": "master", "commit": "df1e324e9f3395c630c1c523d0555a01d2eb1b7e" },
"vim-startuptime": { "branch": "master", "commit": "b6f0d93f6b8cf6eee0b4c94450198ba2d6a05ff6" },

View File

@@ -1,16 +1,17 @@
return {
"mistricky/codesnap.nvim",
lazy = "true",
build = "make",
cmd = "CodeSnapPreviewOn",
build = "make build_generator",
lazy = false,
config = function()
require("codesnap").setup({
mac_window_bar = true, -- (Optional) MacOS style title bar switch
opacity = true, -- (Optional) The code snap has some opacity by default, set it to false for 100% opacity
watermark = "joshp", -- (Optional) you can custom your own watermark, but if you don't like it, just set it to ""
preview_title = "CodeSnap.nvim", -- (Optional) preview page title
bg_theme = "summer",
has_line_number = true,
mac_window_bar = true, -- macOS-style title bar
watermark = "", -- no watermark
has_line_number = true, -- show line numbers
has_breadcrumbs = false, -- disable breadcrumbs
show_workspace = false, -- disable workspace name
bg_theme = "sea", -- background theme
code_font_family = "SauceCodePro Nerd Font", -- your preferred font
save_path = "~/Pictures", -- save directory
})
end,
}

View File

@@ -21,12 +21,16 @@ return {
mason_tool_installer.setup({
ensure_installed = {
"prettier", -- prettier formatter
"stylua", -- lua formatter
"isort", -- python formatter
"black", -- python formatter
"pylint", -- python linter
"eslint_d", -- js linter
-- Formatters
"prettier",
"stylua",
"isort",
"black",
-- Linters
"eslint_d",
"pylint",
-- LSP servers
"vtsls", -- better TypeScript/JavaScript LSP (or use "typescript-language-server" for ts_ls)
},
})
end,
@@ -41,7 +45,6 @@ return {
{
"neovim/nvim-lspconfig",
lazy = false,
-- This table is used in the config function (below) for vim.diagnostic.config()
opts = {
diagnostics = {
underline = true,
@@ -66,7 +69,7 @@ return {
},
},
config = function(_, opts)
-- 1) Use opts.diagnostics to configure diagnostic signs
-- 1) Configure diagnostics
local diag = opts.diagnostics or {}
if diag.signs and diag.signs.text then
local sign_config = {}
@@ -82,7 +85,7 @@ return {
})
end
-- 2) Set up capabilities and each LSP
-- 2) Set up capabilities
local capabilities = require("cmp_nvim_lsp").default_capabilities()
capabilities.offsetEncoding = { "utf-16" }
capabilities.textDocument.foldingRange = {
@@ -90,51 +93,78 @@ return {
lineFoldingOnly = true,
}
local lspconfig = require("lspconfig")
-- 3) Setup LSP servers using vim.lsp.config
-- Example LSPs
lspconfig.ts_ls.setup({
-- TypeScript/JavaScript (using vtsls for better refactoring support)
vim.lsp.config("vtsls", {
capabilities = capabilities,
filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" },
})
lspconfig.html.setup({
capabilities = capabilities,
})
lspconfig.lua_ls.setup({
capabilities = capabilities,
})
lspconfig.gopls.setup({
capabilities = capabilities,
})
lspconfig.svelte.setup({
-- HTML
vim.lsp.config("html", {
capabilities = capabilities,
})
-- Python example
-- Lua
vim.lsp.config("lua_ls", {
capabilities = capabilities,
})
-- Go
vim.lsp.config("gopls", {
capabilities = capabilities,
})
-- Svelte
vim.lsp.config("svelte", {
capabilities = capabilities,
})
-- Python (Pyright)
local function get_python_path(workspace)
-- Use a pattern to find the venv path in the workspace directory
local venv_path = lspconfig.util.path.join(workspace, "venv", "bin", "python")
return venv_path
-- 1) Workspace-local venv: <workspace>/venv/bin/python
if workspace and workspace ~= "" then
local venv_path = vim.fs.joinpath(workspace, "venv", "bin", "python")
if vim.fn.executable(venv_path) == 1 then
return venv_path
end
end
-- 2) Active virtualenv, if any
if vim.env.VIRTUAL_ENV and vim.env.VIRTUAL_ENV ~= "" then
local venv_python = vim.fs.joinpath(vim.env.VIRTUAL_ENV, "bin", "python")
if vim.fn.executable(venv_python) == 1 then
return venv_python
end
end
-- 3) Fallback to system python
return "python3"
end
lspconfig.pyright.setup({
vim.lsp.config("pyright", {
capabilities = capabilities,
before_init = function(_, config)
config.settings = {
python = {
analysis = {
autoSearchPaths = true,
useLibraryCodeForTypes = true,
},
pythonPath = get_python_path(config.root_dir),
},
before_init = function(params, config)
-- Try a few ways to get a sane workspace path
local workspace = config.root_dir
or (params.rootUri and vim.uri_to_fname(params.rootUri))
or vim.loop.cwd()
config.settings = config.settings or {}
config.settings.python = config.settings.python or {}
config.settings.python.analysis = {
autoSearchPaths = true,
useLibraryCodeForTypes = true,
}
end,
on_attach = function(client, bufnr)
-- Optional: additional setup such as key mappings, etc.
config.settings.python.pythonPath = get_python_path(workspace)
end,
})
-- Rust
lspconfig.rust_analyzer.setup({
vim.lsp.config("rust_analyzer", {
capabilities = capabilities,
settings = {
["rust-analyzer"] = {},
@@ -142,18 +172,8 @@ return {
})
-- C/C++ (clangd)
lspconfig.clangd.setup({
vim.lsp.config("clangd", {
capabilities = capabilities,
init_options = {
clangdFileStatus = true,
usePlaceholders = true,
completeUnimported = true,
semanticHighlighting = true,
},
on_attach = function(client, bufnr)
require("clangd_extensions.inlay_hints").setup_autocmd()
require("clangd_extensions.inlay_hints").set_inlay_hints()
end,
cmd = {
"clangd",
"--background-index",
@@ -166,67 +186,85 @@ return {
"-j=12",
"--header-insertion-decorators",
},
root_dir = function(fname)
return require("lspconfig.util").root_pattern(
"Makefile",
"configure.ac",
"configure.in",
"config.h.in",
"meson.build",
"meson_options.txt",
"build.ninja"
)(fname) or require("lspconfig.util").root_pattern(
"compile_commands.json",
"compile_flags.txt"
)(fname) or require("lspconfig.util").find_git_ancestor(fname)
root_markers = {
"Makefile",
"configure.ac",
"configure.in",
"config.h.in",
"meson.build",
"meson_options.txt",
"build.ninja",
"compile_commands.json",
"compile_flags.txt",
".git",
},
on_attach = function(client, bufnr)
-- Optional: clangd extensions setup
local ok, clangd_ext = pcall(require, "clangd_extensions.inlay_hints")
if ok then
clangd_ext.setup_autocmd()
clangd_ext.set_inlay_hints()
end
end,
})
-- UFO setup
require("ufo").setup()
-- 3) Global LspAttach mappings
-- 4) Global LspAttach mappings
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(ev)
local opts = { buffer = ev.buf }
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Open diagnostic float" })
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous diagnostic" })
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next diagnostic" })
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts, { desc = "Go to declaration" })
vim.keymap.set(
"n",
"<leader>e",
vim.diagnostic.open_float,
{ buffer = ev.buf, desc = "Open diagnostic float" }
)
vim.keymap.set(
"n",
"[d",
vim.diagnostic.goto_prev,
{ buffer = ev.buf, desc = "Go to previous diagnostic" }
)
vim.keymap.set(
"n",
"]d",
vim.diagnostic.goto_next,
{ buffer = ev.buf, desc = "Go to next diagnostic" }
)
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { buffer = ev.buf, desc = "Go to declaration" })
vim.keymap.set(
"n",
"gd",
require("telescope.builtin").lsp_definitions,
opts,
{ desc = "Go to definition" }
{ buffer = ev.buf, desc = "Go to definition" }
)
vim.keymap.set(
"n",
"gr",
require("telescope.builtin").lsp_references,
opts,
{ desc = "Go to references" }
{ buffer = ev.buf, desc = "Go to references" }
)
vim.keymap.set(
"n",
"gi",
require("telescope.builtin").lsp_implementations,
opts,
{ desc = "Go to implementations" }
{ buffer = ev.buf, desc = "Go to implementations" }
)
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts, { desc = "Rename" })
vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = ev.buf, desc = "Hover" })
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { buffer = ev.buf, desc = "Rename" })
vim.keymap.set(
{ "n", "v" },
"<leader>ca",
require("actions-preview").code_actions,
opts,
{ desc = "Code actions" }
{ buffer = ev.buf, desc = "Code actions" }
)
vim.keymap.set("n", "<leader>f", function()
vim.lsp.buf.format({ async = true })
end, opts, { desc = "Format" })
end, { buffer = ev.buf, desc = "Format" })
end,
})
end,