Compare commits

..

2 Commits

Author SHA1 Message Date
4a698f6e1f nvim: migrate to paq package manager 2025-11-24 22:10:13 +01:00
195176678c nvim: replace with a new config 2025-11-23 21:06:37 +01:00
11 changed files with 283 additions and 318 deletions

View File

@@ -1,4 +1,57 @@
require("config.options") require("config.options")
require("config.remap") require("config.remap")
require("config.lazy")
require("config.lsp") require("config.lsp")
local ok, paq = pcall(require, "paq")
if ok then
paq({
"EdenEast/nightfox.nvim",
"stevearc/conform.nvim",
"otavioschwanck/arrow.nvim",
"folke/flash.nvim",
"folke/snacks.nvim",
"stevearc/oil.nvim",
{
"jake-stewart/multicursor.nvim",
branch = "1.0",
},
{
"nvim-treesitter/nvim-treesitter-textobjects",
branch = "master",
},
{
"nvim-treesitter/nvim-treesitter",
branch = "master",
build = ":TSUpdate",
},
})
else
print("plugin paq missing")
end
local function load_plugin(name, setup)
local cfg = require(setup)
name = cfg.main or name
local ok, plugin = pcall(require, name)
if ok then
if cfg.config then
cfg.config(cfg.opts)
else
plugin.setup(cfg.opts)
end
if cfg.init then
cfg.init(plugin)
end
else
print("plugin " .. name .. " missing")
end
end
load_plugin("arrow", "plugins.arrow")
load_plugin("nightfox", "plugins.colorscheme")
load_plugin("conform", "plugins.conform")
load_plugin("flash", "plugins.flash")
load_plugin("multicursor-nvim", "plugins.multicursor")
load_plugin("oil", "plugins.oil")
load_plugin("snacks", "plugins.snacks")
load_plugin("treesitter", "plugins.treesitter")

View File

@@ -6,6 +6,7 @@
"multicursor.nvim": { "branch": "1.0", "commit": "a6cf4e7daaf10a6b14bb7838caf779f0de5070cd" }, "multicursor.nvim": { "branch": "1.0", "commit": "a6cf4e7daaf10a6b14bb7838caf779f0de5070cd" },
"nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" }, "nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
"oil.nvim": { "branch": "master", "commit": "7e1cd7703ff2924d7038476dcbc04b950203b902" }, "oil.nvim": { "branch": "master", "commit": "7e1cd7703ff2924d7038476dcbc04b950203b902" },
"snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" } "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" }
} }

View File

@@ -17,10 +17,13 @@ function M.terminalbg()
end end
end end
function M.update_colorscheme() function M.update_colorscheme(only_if_changed)
vim.o.background = M.terminalbg() local next = M.terminalbg()
if colorschemes then if not only_if_changed or next ~= vim.o.background then
vim.cmd.colorscheme(colorschemes[vim.o.background]) vim.o.background = next
if colorschemes then
vim.cmd.colorscheme(colorschemes[next])
end
end end
end end
@@ -42,7 +45,7 @@ local function watch(fname)
fname, fname,
{}, {},
vim.schedule_wrap(function(...) vim.schedule_wrap(function(...)
M.update_colorscheme() M.update_colorscheme(true)
w:stop() w:stop()
watch(fname) watch(fname)
end) end)

View File

@@ -1,5 +1,4 @@
return { return {
"otavioschwanck/arrow.nvim",
opts = { opts = {
show_icons = false, show_icons = false,
leader_key = "_", leader_key = "_",

View File

@@ -1,19 +1,16 @@
return { return {
{ opts = {
"EdenEast/nightfox.nvim", specs = {
opts = { all = {
specs = { syntax = {
all = { operator = "#bf8040",
syntax = {
operator = "#bf8040",
},
}, },
}, },
}, },
init = function()
local cs = require("config.colorscheme")
cs.set_colorschemes("nightfox", "dayfox")
cs.update_colorscheme()
end,
}, },
init = function()
local cs = require("config.colorscheme")
cs.set_colorschemes("nightfox", "dayfox")
cs.update_colorscheme()
end,
} }

View File

@@ -1,5 +1,4 @@
return { return {
"stevearc/conform.nvim",
opts = { opts = {
formatters_by_ft = { formatters_by_ft = {
lua = { "stylua" }, lua = { "stylua" },

View File

@@ -1,7 +1,4 @@
return { return {
"folke/flash.nvim",
event = "VeryLazy",
---@type Flash.Config
opts = { opts = {
modes = { modes = {
char = { char = {
@@ -9,46 +6,19 @@ return {
}, },
}, },
}, },
keys = { init = function()
{ local set = vim.keymap.set
"\\", set({ "n", "x", "o" }, "\\", function()
mode = { "n", "x", "o" }, require("flash").jump()
function() end, { desc = "Flash" })
require("flash").jump() set({ "n", "x", "o" }, "=", function()
end, require("flash").treesitter()
desc = "Flash", end, { desc = "Flash Treesitter" })
}, set({ "o" }, "r", function()
{ require("flash").remote()
"=", end, { desc = "Remote Flash" })
mode = { "n", "x", "o" }, set({ "n", "x", "o" }, " t", function()
function() require("flash").treesitter_search()
require("flash").treesitter() end, { desc = "Treesitter Search" })
end, end,
desc = "Flash Treesitter",
},
{
" r",
mode = "o",
function()
require("flash").remote()
end,
desc = "Remote Flash",
},
{
" R",
mode = { "o", "x" },
function()
require("flash").treesitter_search()
end,
desc = "Treesitter Search",
},
{
"<c-s>",
mode = { "c" },
function()
require("flash").toggle()
end,
desc = "Toggle Flash Search",
},
},
} }

View File

@@ -1,10 +1,5 @@
return { return {
"jake-stewart/multicursor.nvim", init = function(mc)
branch = "1.0",
config = function()
local mc = require("multicursor-nvim")
mc.setup()
local set = vim.keymap.set local set = vim.keymap.set
-- Add or skip cursor above/below the main cursor. -- Add or skip cursor above/below the main cursor.

View File

@@ -1,8 +1,5 @@
return { return {
"stevearc/oil.nvim", init = function()
opts = {}, vim.keymap.set("n", "<leader>-", "<cmd>Oil<cr>", { desc = "Oil file manager" })
lazy = false, end,
keys = {
{ "<leader>-", "<cmd>Oil<cr>", desc = "Oil file manager" },
},
} }

View File

@@ -1,241 +1,142 @@
return { return {
"folke/snacks.nvim",
priority = 1000,
lazy = false,
keys = {
{
"<leader><space>",
function()
Snacks.picker.smart()
end,
desc = "Smart Find Files",
},
{
"<leader>a",
function()
Snacks.picker.buffers()
end,
desc = "Buffers",
},
{
"<leader>r",
function()
Snacks.picker.recent()
end,
desc = "Recent files",
},
{
"<leader>R",
function()
Snacks.picker.resume()
end,
desc = "Resume",
},
{
"<leader>b",
function()
Snacks.picker.lines()
end,
desc = "Buffer lines",
},
{
"<leader>B",
function()
Snacks.picker.grep_buffers()
end,
desc = "Grep Open Buffers",
},
{
"<leader>f",
function()
Snacks.picker.files()
end,
desc = "Find Files",
},
{
"<leader>s",
function()
Snacks.picker.grep()
end,
desc = "Grep",
},
{
"<leader>S",
function()
Snacks.picker.git_status()
end,
desc = "Git Status",
},
{
"<leader>g",
function()
Snacks.picker.git_files()
end,
desc = "Find Git Files",
},
{
"<leader>G",
function()
Snacks.picker.git_grep()
end,
desc = "Git Grep",
},
{
"<leader>l",
function()
Snacks.lazygit()
end,
desc = "Lazygit",
},
{
"<leader>L",
function()
Snacks.lazygit.log_file()
end,
desc = "Lazygit log file",
},
{
"<leader>n",
function()
Snacks.notifier.show_history()
end,
desc = "Notification History",
},
{
"<leader>N",
function()
Snacks.picker.notifications()
end,
desc = "Notifications",
},
{
"<leader>C",
function()
Snacks.picker.commands()
end,
desc = "Commands",
},
{
"<leader>h",
function()
Snacks.picker.keymaps()
end,
desc = "Keymaps",
},
{
"<leader>:",
function()
Snacks.picker.command_history()
end,
desc = "Command History",
},
{
'<leader>"',
function()
Snacks.picker.registers()
end,
desc = "Registers",
},
{
"<leader>$",
function()
Snacks.rename.rename_file()
end,
desc = "Rename File",
},
{
"<leader>z",
function()
Snacks.zen.zoom()
end,
desc = "Toggle Zoom",
},
-- LSP
{
"gd",
function()
Snacks.picker.lsp_definitions()
end,
desc = "Goto Definition",
},
{
"gD",
function()
Snacks.picker.lsp_declarations()
end,
desc = "Goto Declaration",
},
{
"gr",
function()
Snacks.picker.lsp_references()
end,
nowait = true,
desc = "References",
},
{
"gI",
function()
Snacks.picker.lsp_implementations()
end,
desc = "Goto Implementation",
},
{
"gy",
function()
Snacks.picker.lsp_type_definitions()
end,
desc = "Goto T[y]pe Definition",
},
{
"<leader>w",
function()
Snacks.picker.lsp_symbols()
end,
desc = "LSP Symbols",
},
{
"<leader>d",
function()
Snacks.picker.diagnostics_buffer()
end,
desc = "Buffer Diagnostics",
},
{
"<leader>D",
function()
Snacks.picker.diagnostics()
end,
desc = "Diagnostics",
},
{
"<leader>W",
function()
Snacks.picker.lsp_workspace_symbols()
end,
desc = "LSP Workspace Symbols",
},
-- Terminal
{
"<c-/>",
function()
Snacks.terminal()
end,
mode = { "n", "t" },
desc = "Toggle Terminal",
},
{
"<c-_>",
function()
Snacks.terminal()
end,
mode = { "n", "t" },
desc = "which_key_ignore",
},
},
init = function() init = function()
vim.api.nvim_create_autocmd("User", { local set = vim.keymap.set
pattern = "VeryLazy",
set("n", "<leader><space>", function()
Snacks.picker.smart()
end, { desc = "Smart Find Files" })
set("n", "<leader><space>", function()
Snacks.picker.smart()
end, { desc = "Smart Find Files" })
set("n", "<leader>a", function()
Snacks.picker.buffers()
end, { desc = "Buffers" })
set("n", "<leader>r", function()
Snacks.picker.recent()
end, { desc = "Recent files" })
set("n", "<leader>R", function()
Snacks.picker.resume()
end, { desc = "Resume" })
set("n", "<leader>b", function()
Snacks.picker.lines()
end, { desc = "Buffer lines" })
set("n", "<leader>B", function()
Snacks.picker.grep_buffers()
end, { desc = "Grep Open Buffers" })
set("n", "<leader>f", function()
Snacks.picker.files()
end, { desc = "Find Files" })
set("n", "<leader>s", function()
Snacks.picker.grep()
end, { desc = "Grep" })
set("n", "<leader>S", function()
Snacks.picker.git_status()
end, { desc = "Git Status" })
set("n", "<leader>g", function()
Snacks.picker.git_files()
end, { desc = "Find Git Files" })
set("n", "<leader>G", function()
Snacks.picker.git_grep()
end, { desc = "Git Grep" })
set("n", "<leader>l", function()
Snacks.lazygit()
end, { desc = "Lazygit" })
set("n", "<leader>L", function()
Snacks.lazygit.log_file()
end, { desc = "Lazygit log file" })
set("n", "<leader>n", function()
Snacks.notifier.show_history()
end, { desc = "Notification History" })
set("n", "<leader>N", function()
Snacks.picker.notifications()
end, { desc = "Notifications" })
set("n", "<leader>C", function()
Snacks.picker.commands()
end, { desc = "Commands" })
set("n", "<leader>h", function()
Snacks.picker.keymaps()
end, { desc = "Keymaps" })
set("n", "<leader>:", function()
Snacks.picker.command_history()
end, { desc = "Command History" })
set("n", '<leader>"', function()
Snacks.picker.registers()
end, { desc = "Registers" })
set("n", "<leader>$", function()
Snacks.rename.rename_file()
end, { desc = "Rename File" })
set("n", "<leader>z", function()
Snacks.zen.zoom()
end, { desc = "Toggle Zoom" })
-- LSP
set("n", "gd", function()
Snacks.picker.lsp_definitions()
end, { desc = "Goto Definition" })
set("n", "gD", function()
Snacks.picker.lsp_declarations()
end, { desc = "Goto Declaration" })
set("n", "gr", function()
Snacks.picker.lsp_references()
end, { desc = "References" })
set("n", "gI", function()
Snacks.picker.lsp_implementations()
end, { desc = "Goto Implementation" })
set("n", "gy", function()
Snacks.picker.lsp_type_definitions()
end, { desc = "Goto T[y]pe Definition" })
set("n", "<leader>w", function()
Snacks.picker.lsp_symbols()
end, { desc = "LSP Symbols" })
set("n", "<leader>d", function()
Snacks.picker.diagnostics_buffer()
end, { desc = "Buffer Diagnostics" })
set("n", "<leader>D", function()
Snacks.picker.diagnostics()
end, { desc = "Diagnostics" })
set("n", "<leader>W", function()
Snacks.picker.lsp_workspace_symbols()
end, { desc = "LSP Workspace Symbols" })
-- Terminal
set({ "n", "t" }, "<c-/>", function()
Snacks.terminal()
end, { desc = "Toggle Terminal" })
set({ "n", "t" }, "<c-_>", function()
Snacks.terminal()
end, { desc = "which_key_ignore" })
vim.api.nvim_create_autocmd("VimEnter", {
callback = function() callback = function()
-- Setup some globals for debugging (lazy-loaded) -- Setup some globals for debugging (lazy-loaded)
_G.dd = function(...) _G.dd = function(...)

View File

@@ -1,12 +1,62 @@
return { return {
"nvim-treesitter/nvim-treesitter",
branch = "master",
lazy = false,
build = ":TSUpdate",
main = "nvim-treesitter.configs", main = "nvim-treesitter.configs",
opts = { opts = {
highlight = { highlight = {
enable = true, enable = true,
}, },
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["aa"] = "@parameter.outer",
["ia"] = "@parameter.inner",
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
["al"] = "@call.outer",
["il"] = "@call.inner",
["ao"] = "@loop.outer",
["io"] = "@loop.inner",
["ad"] = "@conditional.outer",
["id"] = "@conditional.inner",
["ar"] = "@return.outer",
["ir"] = "@return.inner",
["as"] = "@statement.outer",
["ag"] = "@assignment.outer",
["ig"] = "@assignment.inner",
},
},
move = {
enable = true,
set_jumps = true,
goto_next_start = {
["]m"] = "@function.outer",
["]]"] = "@class.outer",
},
goto_next_end = {
["]M"] = "@function.outer",
["]["] = "@class.outer",
},
goto_previous_start = {
["[m"] = "@function.outer",
["[["] = "@class.outer",
},
goto_previous_end = {
["[M"] = "@function.outer",
["[]"] = "@class.outer",
},
},
swap = {
enable = true,
swap_next = {
["<leader>p"] = "@parameter.inner",
},
swap_previous = {
["<leader>P"] = "@parameter.inner",
},
},
},
}, },
} }