Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 37 additions & 30 deletions .config/nvim/lazy-lock.json
Original file line number Diff line number Diff line change
@@ -1,47 +1,54 @@
{
"LuaSnip": { "branch": "master", "commit": "3732756842a2f7e0e76a7b0487e9692072857277" },
"accelerated-jk": { "branch": "master", "commit": "156c5158b72059404f6b8aaf15b59f87dd0aaa88" },
"aerial.nvim": { "branch": "master", "commit": "3c42785790d401731e7809a25f27f62dae2fec12" },
"LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
"R.nvim": { "branch": "main", "commit": "ef081566170e20d536bfaab168eb8841c0753b1c" },
"accelerated-jk.nvim": { "branch": "main", "commit": "8fb5dad4ccc1811766cebf16b544038aeeb7806f" },
"aerial.nvim": { "branch": "master", "commit": "28fe6e822ae344544c379d60fcb13c9519a1f08a" },
"annotate.nvim": { "branch": "main", "commit": "c8fee95916c7e853609766c90b9bbd451ab1475f" },
"beacon.nvim": { "branch": "master", "commit": "5ab668c4123bc51269bf6f0a34828e68c142e764" },
"blink-cmp-dictionary": { "branch": "master", "commit": "944b3b215b01303672d4213758db7c5c5a1e3c92" },
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
"browsher.nvim": { "branch": "main", "commit": "de87ffcdac45fc4fdd3f18882b81dbc002a2013d" },
"blink-cmp-dictionary": { "branch": "master", "commit": "898a958cece34da20524d04ebc032a92a9565643" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"browsher.nvim": { "branch": "main", "commit": "f09b445c2c9d08dcfe76a6b621161169df9bf9b5" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"conform.nvim": { "branch": "master", "commit": "afce105eb47b0869dfafdac90d82f02ef2419d61" },
"conform.nvim": { "branch": "master", "commit": "016802de402556da54c36bd7359b441266b01cdd" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "cdafc320f03f2572c40ab93a4eecb733d4016d07" },
"gv.vim": { "branch": "master", "commit": "b6bb6664e2c95aa584059f195eb3a9f3cb133994" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"indent-o-matic": { "branch": "master", "commit": "4d11e98f523d3c4500b1dc33f0d1a248a4f69719" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lsp-progress.nvim": { "branch": "main", "commit": "ae52979ad412371ea6dc39ff70c8dfc681fb42b8" },
"lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" },
"flash.nvim": { "branch": "main", "commit": "5f0f270fdc7c5b0c21d903ee85b9cb06f2ac636a" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "5be654f2232c10ddcad19c1607a67b6b4b78fc29" },
"gv.vim": { "branch": "master", "commit": "ed7e9c6a118d92462c7d709c34a92682b60fa9f7" },
"img-clip.nvim": { "branch": "main", "commit": "b6ddfb97b5600d99afe3452d707444afda658aca" },
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
"indent-o-matic": { "branch": "master", "commit": "81fa0e03bd2615a23b23312512371a2fc47fc0a4" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lsp-progress.nvim": { "branch": "main", "commit": "f6d5af10563b895ff846346f57cbd4451439f4c1" },
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
"lush.nvim": { "branch": "main", "commit": "9c60ec2279d62487d942ce095e49006af28eed6e" },
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
"mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-lspconfig": { "branch": "master", "commit": "5bfcc89fd155b4ffc02d18ab3b7d19c2d4e246a7" },
"nvim-tree.lua": { "branch": "master", "commit": "3fb91e18a727ecc0385637895ec397dea90be42a" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" },
"nvim-tree.lua": { "branch": "master", "commit": "b2aadda94b107480c48e548d6db51c6840b7b33c" },
"nvim-treesitter": { "branch": "main", "commit": "857651fce37eba032ebe28f3a206283cdc65c45a" },
"nvim-web-devicons": { "branch": "master", "commit": "2ae6958df7ced50baac5035cec0c15799eedfbf7" },
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
"onedark.vim": { "branch": "main", "commit": "68dca198f23ef979dc6a123ad50c598902117232" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"render-markdown.nvim": { "branch": "main", "commit": "6e0e8902dac70fecbdd8ce557d142062a621ec38" },
"stickybuf.nvim": { "branch": "master", "commit": "0c1e5f1a3eb36eea2cea57083828269cc62c58e4" },
"telescope.nvim": { "branch": "master", "commit": "83a3a713d6b2d2a408491a1b959e55a7fa8678e8" },
"onedark.vim": { "branch": "main", "commit": "47bec7a6196a843dad195d2666c3ac84c6e80c78" },
"pasteimg.nvim": { "branch": "main", "commit": "49afda85eee886187b458b58aaf74a0590138461" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"punchlist.nvim": { "branch": "main", "commit": "33cbbc166a3447746284647390d0eb9282e9b2dd" },
"render-markdown.nvim": { "branch": "main", "commit": "4663eb3ecd538bd5062628fb6d95bbe6bdca78f6" },
"snacks.nvim": { "branch": "main", "commit": "882c996cf28183f4d63640de0b4c02ec886d01f2" },
"snakemake": { "branch": "main", "commit": "35ab0421813248cea482de3fd796ad48e53d88d7" },
"stickybuf.nvim": { "branch": "master", "commit": "9e00edfd94baef4a78b4248ae8309a2d4943f118" },
"telescope.nvim": { "branch": "master", "commit": "40aedd8a68c78a656a10a8d62d80c54af59420fb" },
"toggleterm.nvim": { "branch": "main", "commit": "c80844fd52ba76f48fabf83e2b9f9b93273f418d" },
"treesj": { "branch": "main", "commit": "4770492244ccecdc9b01e0e81fa8f2f6b4a23841" },
"treesj": { "branch": "main", "commit": "79aedb401bbdc7e4202f7881eab5f6feb2105b0a" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" },
"vim-diff-enhanced": { "branch": "master", "commit": "8d161f1e97a5f5e64ea4219e6663f98a109df7b1" },
"vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
"vim-diff-enhanced": { "branch": "master", "commit": "386820ebbcc3d55a43d81035f4352afc42cc49a1" },
"vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" },
"vim-mergetool": { "branch": "master", "commit": "0275a85256ad173e3cde586d54f66566c01b607f" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vim-table-mode": { "branch": "master", "commit": "e156dbbedce0bbf61c0919db7678fa246fabd616" },
"vim-table-mode": { "branch": "master", "commit": "bb025308a45c67c7c8f0763ba37bc2ee3f534df0" },
"vis": { "branch": "master", "commit": "6a87efbfbd97238716b602c2b53564aa6329b5de" },
"which-key.nvim": { "branch": "main", "commit": "0539da005b98b02cf730c1d9da82b8e8edb1c2d2" },
"zenburn.nvim": { "branch": "master", "commit": "0860da40c6f666dfff3381a8b0ee98e16e08ca66" },
"zenfade": { "branch": "main", "commit": "75284b99d9941bfee16ff5372f4b8205dd16f456" }
"zenfade": { "branch": "main", "commit": "4b4202bcfef909268e9c9f7d77c620400b9b3ca2" }
}
2 changes: 1 addition & 1 deletion .config/nvim/lua/config/autocmds.lua
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ vim.api.nvim_create_autocmd("FileType", {
-- Briefly highlight yanked text
vim.api.nvim_create_autocmd("TextYankPost", {
callback = function()
vim.highlight.on_yank{higroup = "IncSearch", timeout=100}
vim.hl.on_yank({ higroup = "IncSearch", timeout = 100 })
end,
pattern = "*",
})
Expand Down
2 changes: 1 addition & 1 deletion .config/nvim/lua/config/lazy.lua
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
if not vim.uv.fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
Expand Down
5 changes: 5 additions & 0 deletions .config/nvim/lua/config/options.lua
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ vim.opt.signcolumn = "yes" -- always show the signcolumn to minimize distraction
-- vim.cmd(":autocmd InsertLeave * set cul") -- Turn color back on when exiting insert mode
-- vim.cmd("set guicursor=i:block") -- Always use block cursor. In some terminals and fonts (like iTerm), it can be hard to see the cursor when it changes to a line.

-- Visual mode uses block cursor; insert mode uses bar cursor (highlighted with
-- CursorIM highlight group); replace mode uses an underscore as the cursor,
-- also with CursorIM highlight
vim.opt.guicursor = "n-v-c:block,i:ver25-CursorIM,r-cr:hor20-CursorIM"

-- Forces the OSC 52 clipboard provider. Needs a terminal emulator that
-- supports it (like iTerm, Alacritty). See :help clipboard-osc52 for details
vim.g.clipboard = 'osc52'
Expand Down
2 changes: 1 addition & 1 deletion .config/nvim/lua/plugins/gitsigns.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ return {
local gs = package.loaded.gitsigns

local function map(mode, l, r, desc)
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
vim.keymap.set(mode, l, r, { buf = buffer, desc = desc })
end

map("n", "]h", gs.next_hunk, "Next hunk")
Expand Down
241 changes: 79 additions & 162 deletions .config/nvim/lua/plugins/nvim-lspconfig.lua
Original file line number Diff line number Diff line change
@@ -1,176 +1,93 @@
-- nvim-lspconfig allows convenient configuration of LSP clients
return {
"neovim/nvim-lspconfig",
config = function()

-- nvim 0.11 changed the way lspconfig works, so we split the config based on
-- version (hence the duplication)
local post_v011 = vim.version().minor >= 11

if post_v011 then
return {
"neovim/nvim-lspconfig",
version = "v2.5",
config = function()
-- Python language server
vim.lsp.config.pyright = {
cmd = { "pyright-langserver", "--stdio" },
filetypes = { "python" },
root_markers = {
"pyproject.toml",
"setup.py",
"setup.cfg",
"requirements.txt",
"Pipfile",
"pyrightconfig.json",
".git",
},
}

-- ruff for Python as well
vim.lsp.config("ruff", {
init_options = {
settings = {
lint = {
preview = true,
},
},
},
})

-- Bash language server
vim.lsp.config.bashls = {
cmd = { "bash-language-server", "start" },
filetypes = { "sh", "bash" },
root_markers = { ".git" },
}

-- R language server
vim.lsp.config.r_language_server = {
cmd = { "R", "--slave", "-e", "languageserver::run()" },
filetypes = { "r", "rmd" },
root_markers = { ".git", "DESCRIPTION" },
}

vim.lsp.config.ansible = {
cmd = { "ansible-language-server", "--stdio" },
filetypes = { "yaml.ansible" },
}
vim.lsp.config("pyright", {
cmd = { "pyright-langserver", "--stdio" },
filetypes = { "python" },
root_markers = {
"pyproject.toml",
"setup.py",
"setup.cfg",
"requirements.txt",
"Pipfile",
"pyrightconfig.json",
".git",
},
})

-- Lua language server
vim.lsp.config.lua_ls = {
cmd = { "lua-language-server" },
filetypes = { "lua" },
root_markers = { ".luarc.json", ".luarc.jsonc", ".git" },
vim.lsp.config("ruff", {
init_options = {
settings = {
Lua = {
runtime = { version = "LuaJIT" },
workspace = {
library = { vim.env.VIMRUNTIME },
},
},
lint = { preview = true },
},
}

-- By default show the virtual text.
vim.diagnostic.config({ virtual_text = true })

-- LSP keymaps
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(ev)
vim.keymap.set("n", "<leader>cv", function()
local current_config = vim.diagnostic.config()
vim.diagnostic.config({
virtual_text = not current_config.virtual_text,
})
end, { buffer = ev.buf, desc = "Toggle diagnostic virtual text" })
vim.keymap.set(
"n",
"<leader>ce",
vim.diagnostic.open_float,
{ buffer = ev.buf, desc = "Open diagnostics/errors" }
)
end,
})
end,
keys = {
{
"<leader>cl",
function()
local clients = vim.lsp.get_clients({ bufnr = 0 })
if #clients > 0 then
vim.cmd("LspStop")
else
vim.cmd("LspStart")
end
end,
desc = "Toggle LSP",
},
},
}
else
return {
"neovim/nvim-lspconfig",
version = "v2.5",
init = function()
local lspconfig = require("lspconfig")
})

-- Below, autostart = false means that you need to explicity call :LspStart (<leader>cl)
--
-- ----------------------------------------------------------------------
-- CONFIGURE ADDITIONAL LANGUAGE SERVERS HERE
--
-- pyright is the language server for Python
lspconfig.pyright.setup({ autostart = false })
vim.lsp.config("bashls", {
cmd = { "bash-language-server", "start" },
filetypes = { "sh", "bash" },
root_markers = { ".git" },
})

lspconfig.bashls.setup({ autostart = false })
vim.lsp.config("r_language_server", {
cmd = { "R", "--slave", "-e", "languageserver::run()" },
filetypes = { "r", "rmd" },
root_markers = { ".git", "DESCRIPTION" },
})

-- language server for R
lspconfig.r_language_server.setup({ autostart = false })
vim.lsp.config("ansible", {
cmd = { "ansible-language-server", "--stdio" },
filetypes = { "yaml.ansible" },
})

-- Language server for Lua. These are the recommended options
-- when mainly using Lua for Neovim
lspconfig.lua_ls.setup({
settings = {
Lua = {
runtime = {
version = "LuaJIT",
},
workspace = {
library = { vim.env.VIMRUNTIME },
},
vim.lsp.config("lua_ls", {
cmd = { "lua-language-server" },
filetypes = { "lua" },
root_markers = { ".luarc.json", ".luarc.jsonc", ".git" },
settings = {
Lua = {
runtime = { version = "LuaJIT" },
workspace = {
library = { vim.env.VIMRUNTIME },
},
},
})

-- Use LspAttach autocommand to only map the following keys after
-- the language server attaches to the current buffer
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(ev)
vim.keymap.set("n", "<leader>cgd", vim.lsp.buf.definition, { buffer = ev.buf, desc = "Goto Definition" })
vim.keymap.set("n", "<leader>cK", vim.lsp.buf.hover, { buffer = ev.buf, desc = "Hover help" })
vim.keymap.set("n", "<leader>crn", vim.lsp.buf.rename, { buffer = ev.buf, desc = "Rename" })
vim.keymap.set("n", "<leader>cgr", vim.lsp.buf.references, { buffer = ev.buf, desc = "Goto References" })
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Code Action" })
end,
})
end,
keys = {
-- because autostart=false above, need to manually start the language server.
{
"<leader>cl",
function()
local clients = vim.lsp.get_clients({ bufnr = 0 })
if #clients > 0 then
vim.cmd("LspStop")
else
vim.cmd("LspStart")
end
end,
desc = "Toggle LSP",
},
{ "<leader>ce", vim.diagnostic.open_float, desc = "Open diagnostics/errors" },
{ "]d", vim.diagnostic.goto_next, desc = "Next diagnostic/error" },
{ "[d", vim.diagnostic.goto_prev, desc = "Prev diagnostic/error" },
})

vim.diagnostic.config({ virtual_text = true })

vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(ev)
vim.keymap.set("n", "<leader>cv", function()
local current_config = vim.diagnostic.config()
vim.diagnostic.config({
virtual_text = not current_config.virtual_text,
})
end, { buf = ev.buf, desc = "Toggle diagnostic virtual text" })
vim.keymap.set(
"n",
"<leader>ce",
vim.diagnostic.open_float,
{ buf = ev.buf, desc = "Open diagnostics/errors" }
)
end,
})
end,
keys = {
{
"<leader>cl",
function()
local clients = vim.lsp.get_clients({ bufnr = 0 })
if #clients > 0 then
vim.cmd("LspStop")
else
vim.cmd("LspStart")
end
end,
desc = "Toggle LSP",
},
}
end
},
}
4 changes: 2 additions & 2 deletions .config/nvim/lua/plugins/nvim-tree.lua
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ return {
api.tree.reload()
end
end
vim.keymap.set("n", "ga", git_add, { buffer = bufnr, desc = "Git Add" })
vim.keymap.set("n", "gu", git_unstage, { buffer = bufnr, desc = "Git Unstage" })
vim.keymap.set("n", "ga", git_add, { buf = bufnr, desc = "Git Add" })
vim.keymap.set("n", "gu", git_unstage, { buf = bufnr, desc = "Git Unstage" })
end,
})
end,
Expand Down
2 changes: 1 addition & 1 deletion .config/nvim/lua/plugins/obsidian.lua
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ return {
return "<cmd>ObsidianFollowLink<CR>"
end
end,
opts = { buffer = true, expr = true },
opts = { buf = true, expr = true },
},
},

Expand Down
Loading
Loading