Compare commits

...

1 Commits

Author SHA1 Message Date
4a698f6e1f nvim: migrate to paq package manager 2025-11-24 22:10:13 +01:00
10 changed files with 228 additions and 321 deletions

View File

@@ -1,4 +1,57 @@
require("config.options")
require("config.remap")
require("config.lazy")
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

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

View File

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

View File

@@ -1,19 +1,16 @@
return {
{
"EdenEast/nightfox.nvim",
opts = {
specs = {
all = {
syntax = {
operator = "#bf8040",
},
opts = {
specs = {
all = {
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 {
"stevearc/conform.nvim",
opts = {
formatters_by_ft = {
lua = { "stylua" },

View File

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

View File

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

View File

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

View File

@@ -1,241 +1,142 @@
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()
vim.api.nvim_create_autocmd("User", {
pattern = "VeryLazy",
local set = vim.keymap.set
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()
-- Setup some globals for debugging (lazy-loaded)
_G.dd = function(...)

View File

@@ -1,12 +1,5 @@
return {
"nvim-treesitter/nvim-treesitter",
branch = "master",
lazy = false,
build = ":TSUpdate",
main = "nvim-treesitter.configs",
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
},
opts = {
highlight = {
enable = true,