Compare commits

..

1 Commits

Author SHA1 Message Date
8edd393b3d nvim: replace with a new config 2025-11-22 23:23:53 +01:00
11 changed files with 317 additions and 282 deletions

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,7 @@
return { return {
"folke/flash.nvim",
event = "VeryLazy",
---@type Flash.Config
opts = { opts = {
modes = { modes = {
char = { char = {
@@ -6,19 +9,46 @@ return {
}, },
}, },
}, },
init = function() keys = {
local set = vim.keymap.set {
set({ "n", "x", "o" }, "\\", function() "\\",
require("flash").jump() mode = { "n", "x", "o" },
end, { desc = "Flash" }) function()
set({ "n", "x", "o" }, "=", function() require("flash").jump()
require("flash").treesitter() end,
end, { desc = "Flash Treesitter" }) desc = "Flash",
set({ "o" }, "r", function() },
require("flash").remote() {
end, { desc = "Remote Flash" }) "=",
set({ "n", "x", "o" }, " t", function() mode = { "n", "x", "o" },
require("flash").treesitter_search() function()
end, { desc = "Treesitter Search" }) require("flash").treesitter()
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,5 +1,10 @@
return { return {
init = function(mc) "jake-stewart/multicursor.nvim",
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,5 +1,8 @@
return { return {
init = function() "stevearc/oil.nvim",
vim.keymap.set("n", "<leader>-", "<cmd>Oil<cr>", { desc = "Oil file manager" }) opts = {},
end, lazy = false,
keys = {
{ "<leader>-", "<cmd>Oil<cr>", desc = "Oil file manager" },
},
} }

View File

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