Compare commits
29 Commits
c3ae8bbe1e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
baddfeecf0
|
|||
|
7a71256f95
|
|||
|
4b43236756
|
|||
|
5c952912c9
|
|||
|
7f9ce1be31
|
|||
|
bcc26b4728
|
|||
|
c7be652d62
|
|||
|
e801fd9864
|
|||
|
2228e08a7d
|
|||
|
e52cd237a3
|
|||
|
886b010ce9
|
|||
|
a8fca163a5
|
|||
|
df31db15d9
|
|||
|
ceca94e5db
|
|||
|
7ed9fb4e40
|
|||
|
f34ddbac36
|
|||
|
b3495ef161
|
|||
|
e7aaee0dd6
|
|||
|
513f2e3e20
|
|||
|
ad93476190
|
|||
|
620dd92101
|
|||
|
0904b788b1
|
|||
|
cdf15743c3
|
|||
|
29eb480ac0
|
|||
|
3148fa47c2
|
|||
|
67b668bf60
|
|||
|
e3394bb65c
|
|||
|
4b1128f820
|
|||
|
a6285798bf
|
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) Matej Janežič
|
||||
Copyright (c) 2025 Matej Janežič
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -13,6 +13,9 @@ vim.o.mouse = ""
|
||||
vim.o.mousescroll = "ver:0,hor:0"
|
||||
vim.o.writebackup = false
|
||||
vim.o.undofile = true
|
||||
vim.o.updatetime = 250
|
||||
vim.o.timeout = true
|
||||
vim.o.timeoutlen = 300
|
||||
|
||||
-- ui
|
||||
vim.o.breakindent = true
|
||||
@@ -32,17 +35,29 @@ vim.o.expandtab = true
|
||||
vim.o.ignorecase = true
|
||||
vim.o.smartcase = true
|
||||
|
||||
-- diagnostic show virtual text
|
||||
vim.diagnostic.config({ virtual_text = true })
|
||||
local function swap_diagnostic()
|
||||
local virtext = vim.diagnostic.config().virtual_text
|
||||
local virlines = vim.diagnostic.config().virtual_lines
|
||||
vim.diagnostic.config({ virtual_text = not virtext, virtual_lines = not virlines })
|
||||
end
|
||||
vim.keymap.set("n", "<leader>dt", swap_diagnostic)
|
||||
|
||||
-- osc52 escape codes copy
|
||||
local function ocs52_paste_fail()
|
||||
vim.notify("can't paste via osc52", vim.log.levels.WARN)
|
||||
return {}
|
||||
end
|
||||
vim.g.clipboard = {
|
||||
name = "osc52-writeonly",
|
||||
copy = {
|
||||
["+"] = require("vim.ui.clipboard.osc52").copy("+"),
|
||||
["*"] = require("vim.ui.clipboard.osc52").copy("*"),
|
||||
},
|
||||
paste = {
|
||||
["+"] = function()
|
||||
vim.notify("can't paste via osc52", vim.log.levels.WARN)
|
||||
return {}
|
||||
end,
|
||||
["+"] = ocs52_paste_fail,
|
||||
["*"] = ocs52_paste_fail,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ MiniDeps.now(function()
|
||||
vim.g.gruvbox_material_background = "light"
|
||||
vim.g.gruvbox_material_better_performance = 1
|
||||
vim.g.gruvbox_material_diagnostic_line_highlight = 1
|
||||
vim.g.gruvbox_material_diagnostic_text_highlight = 1
|
||||
vim.g.gruvbox_material_diagnostic_virtual_text = "colored"
|
||||
vim.g.gruvbox_material_enable_bold = 1
|
||||
vim.g.gruvbox_material_enable_italic = 1
|
||||
|
||||
@@ -19,4 +19,11 @@ now_if_args(function()
|
||||
sh = true,
|
||||
typescript = true,
|
||||
}
|
||||
|
||||
-- remap default <M-\> to first close pumenu if open
|
||||
local function suggest()
|
||||
if vim.fn.pumvisible() == 1 then vim.fn.complete(vim.fn.col("."), {}) end
|
||||
return vim.fn["copilot#Suggest"]()
|
||||
end
|
||||
vim.keymap.set("i", "<M-\\>", suggest)
|
||||
end)
|
||||
|
||||
11
lua/plugins/fidget.lua
Normal file
11
lua/plugins/fidget.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
MiniDeps.now(function()
|
||||
MiniDeps.add("j-hui/fidget.nvim")
|
||||
|
||||
local opts = {
|
||||
notification = {
|
||||
override_vim_notify = true,
|
||||
},
|
||||
}
|
||||
|
||||
require("fidget").setup(opts)
|
||||
end)
|
||||
@@ -1,8 +1,8 @@
|
||||
MiniDeps.later(function()
|
||||
MiniDeps.add("ibhagwan/fzf-lua")
|
||||
|
||||
local fzf = require("fzf-lua")
|
||||
fzf.setup({
|
||||
local fzf_lua = require("fzf-lua")
|
||||
fzf_lua.setup({
|
||||
files = {
|
||||
no_ignore = true,
|
||||
toggle_ignore_flag = "--no-ignore-vcs",
|
||||
@@ -13,11 +13,12 @@ MiniDeps.later(function()
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>sf", fzf.files)
|
||||
vim.keymap.set("n", "<leader>sg", fzf.live_grep)
|
||||
vim.keymap.set("n", "<leader>sw", fzf.grep_cword)
|
||||
vim.keymap.set("v", "<leader>sg", fzf.grep_visual)
|
||||
|
||||
vim.keymap.set("n", "<leader>sr", fzf.resume)
|
||||
vim.keymap.set("n", "<leader>sb", fzf.builtin)
|
||||
vim.keymap.set("n", "<leader>sf", fzf_lua.files)
|
||||
vim.keymap.set("n", "<leader>sg", fzf_lua.live_grep)
|
||||
vim.keymap.set("n", "<leader>sw", fzf_lua.grep_cword)
|
||||
vim.keymap.set("v", "<leader>sg", fzf_lua.grep_visual)
|
||||
vim.keymap.set("n", "<leader>sj", fzf_lua.jumps)
|
||||
vim.keymap.set("n", "<leader>sh", fzf_lua.helptags)
|
||||
vim.keymap.set("n", "<leader>sr", fzf_lua.resume)
|
||||
vim.keymap.set("n", "<leader>sb", fzf_lua.builtin)
|
||||
end)
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
MiniDeps.later(function()
|
||||
MiniDeps.add("f-person/git-blame.nvim")
|
||||
require("gitblame").setup({
|
||||
enabled = false,
|
||||
message_template = " <sha>: <author> <date> <summary>",
|
||||
date_format = "%Y-%m-%d",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>gt", ":GitBlameToggle<CR>")
|
||||
vim.keymap.set("n", "<leader>gs", ":GitBlameCopySHA<CR>")
|
||||
end)
|
||||
@@ -1,6 +1,8 @@
|
||||
MiniDeps.later(function()
|
||||
MiniDeps.add("nvim-lua/plenary.nvim")
|
||||
MiniDeps.add("ruifm/gitlinker.nvim")
|
||||
MiniDeps.add({
|
||||
source = "ruifm/gitlinker.nvim",
|
||||
depends = { "nvim-lua/plenary.nvim" },
|
||||
})
|
||||
require("gitlinker").setup({
|
||||
callbacks = {
|
||||
["git.aflabs.org"] = require("gitlinker.hosts").get_gitlab_type_url,
|
||||
|
||||
@@ -9,4 +9,12 @@ MiniDeps.later(function()
|
||||
changedelete = { text = "~" },
|
||||
},
|
||||
})
|
||||
|
||||
-- blame
|
||||
vim.keymap.set({ "n", "v" }, "<leader>gb", ":Gitsigns blame<CR>")
|
||||
vim.keymap.set({ "n", "v" }, "<leader>gt", ":Gitsigns blame_line<CR>")
|
||||
|
||||
-- hunks
|
||||
vim.keymap.set({ "n", "v" }, "<leader>ga", ":Gitsigns stage_hunk<CR>")
|
||||
vim.keymap.set({ "n", "v" }, "<leader>gr", ":Gitsigns reset_hunk<CR>")
|
||||
end)
|
||||
|
||||
@@ -58,6 +58,36 @@ MiniDeps.later(function()
|
||||
"format"
|
||||
)
|
||||
|
||||
local tD_dH = vim.lsp.protocol.Methods.textDocument_documentHighlight
|
||||
if client and client:supports_method(tD_dH) then
|
||||
local ag = vim.api.nvim_create_augroup
|
||||
local ac = vim.api.nvim_create_autocmd
|
||||
local g = ag("custom-lsp-tD_dH-highlight", { clear = false })
|
||||
|
||||
ac({ "CursorHold", "CursorHoldI" }, {
|
||||
buffer = bufnr,
|
||||
group = g,
|
||||
callback = vim.lsp.buf.document_highlight,
|
||||
})
|
||||
|
||||
ac({ "CursorMoved", "CursorMovedI" }, {
|
||||
buffer = bufnr,
|
||||
group = g,
|
||||
callback = vim.lsp.buf.clear_references,
|
||||
})
|
||||
|
||||
ac("LspDetach", {
|
||||
group = ag("custom-lsp-detach", { clear = true }),
|
||||
callback = function(e)
|
||||
vim.lsp.buf.clear_references()
|
||||
vim.api.nvim_clear_autocmds({
|
||||
group = "custom-lsp-tD_dH-highlight",
|
||||
buffer = e.buf,
|
||||
})
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- inlay hints
|
||||
if client and client.server_capabilities.inlayHintProvider then
|
||||
vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
|
||||
|
||||
12
lua/plugins/mini_cursorword.lua
Normal file
12
lua/plugins/mini_cursorword.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
MiniDeps.later(function()
|
||||
require("mini.cursorword").setup()
|
||||
|
||||
local function disable(args)
|
||||
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||
local tD_dH = vim.lsp.protocol.Methods.textDocument_documentHighlight
|
||||
if client and not client:supports_method(tD_dH) then return end
|
||||
vim.b[args.buf].minicursorword_disable = true
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", { callback = disable })
|
||||
end)
|
||||
@@ -1,10 +1,24 @@
|
||||
MiniDeps.later(
|
||||
function()
|
||||
MiniDeps.later(function()
|
||||
require("mini.indentscope").setup({
|
||||
draw = {
|
||||
delay = 0,
|
||||
animation = require("mini.indentscope").gen_animation.none(),
|
||||
},
|
||||
})
|
||||
|
||||
local disable = {
|
||||
"fzf",
|
||||
"fzflua_backdrop",
|
||||
"qf",
|
||||
}
|
||||
|
||||
local function term_disable(args) vim.b[args.buf].miniindentscope_disable = true end
|
||||
local function ft_disable(args)
|
||||
local ft = vim.bo[args.buf].filetype
|
||||
if not vim.tbl_contains(disable, ft) then return end
|
||||
vim.b[args.buf].miniindentscope_disable = true
|
||||
end
|
||||
)
|
||||
|
||||
vim.api.nvim_create_autocmd("TermOpen", { callback = term_disable })
|
||||
vim.api.nvim_create_autocmd("Filetype", { callback = ft_disable })
|
||||
end)
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
MiniDeps.now(function()
|
||||
require("mini.notify").setup()
|
||||
vim.notify = MiniNotify.make_notify()
|
||||
end)
|
||||
@@ -1 +0,0 @@
|
||||
MiniDeps.later(function() require("mini.pairs").setup() end)
|
||||
@@ -7,22 +7,65 @@ local function default_header()
|
||||
return ("good %s, %s"):format(day_part, username)
|
||||
end
|
||||
|
||||
local function reinstall_treesitter()
|
||||
local ts = require("nvim-treesitter")
|
||||
ts.install(ts.get_installed(), { force = true })
|
||||
end
|
||||
|
||||
local function deps_section()
|
||||
local mini_deps = require("mini.deps")
|
||||
local nr_deps = #vim.iter(mini_deps):enumerate():totable()
|
||||
|
||||
local items = {
|
||||
{
|
||||
name = "number of dependencies " .. nr_deps,
|
||||
action = "",
|
||||
section = "dependencies",
|
||||
},
|
||||
}
|
||||
|
||||
local function mk_dep_item(name, action)
|
||||
return { name = name, action = action, section = "dependencies" }
|
||||
end
|
||||
|
||||
local deps_actions = {
|
||||
mk_dep_item("update dependencies", "DepsUpdate"),
|
||||
mk_dep_item("snap dependencies", "DepsSnapSave"),
|
||||
mk_dep_item("load dependencies", "DepsSnapLoad"),
|
||||
mk_dep_item("clean dependencies", "DepsClean"),
|
||||
}
|
||||
|
||||
if vim.fn.getcwd() == vim.fn.stdpath("config") then
|
||||
for _, item in ipairs(deps_actions) do
|
||||
table.insert(items, item)
|
||||
end
|
||||
end
|
||||
|
||||
return items
|
||||
end
|
||||
|
||||
MiniDeps.now(function()
|
||||
local builtins = {
|
||||
{ name = "edit new buffer", action = "enew", section = "builtin actions" },
|
||||
{ name = "quit neovim", action = "qall", section = "builtin actions" },
|
||||
}
|
||||
|
||||
require("mini.starter").setup({
|
||||
query_updaters = "abcdefghijklmnopqrstuvwxyz0123456789_.",
|
||||
evaluate_single = true,
|
||||
header = default_header,
|
||||
footer = "",
|
||||
items = {
|
||||
--stylua: ignore start
|
||||
-- builtins
|
||||
{ name = "edit new buffer", action = "enew", section = "builtin actions" },
|
||||
{ name = "quit neovim", action = "qall", section = "builtin actions" },
|
||||
builtins,
|
||||
-- dependencies
|
||||
{ name = "update dependencies", action = "DepsUpdate", section = "dependencies" },
|
||||
{ name = "snap dependencies", action = "DepsSnapSave", section = "dependencies" },
|
||||
{ name = "load dependencies", action = "DepsSnapLoad", section = "dependencies" },
|
||||
--stylua: ignore end
|
||||
deps_section,
|
||||
-- debug
|
||||
{
|
||||
name = "reinstall treesitter parsers",
|
||||
action = reinstall_treesitter,
|
||||
section = "debug",
|
||||
},
|
||||
},
|
||||
})
|
||||
end)
|
||||
|
||||
4
lua/plugins/nvim_autopairs.lua
Normal file
4
lua/plugins/nvim_autopairs.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
MiniDeps.later(function()
|
||||
MiniDeps.add("windwp/nvim-autopairs")
|
||||
require("nvim-autopairs").setup()
|
||||
end)
|
||||
@@ -1,5 +1,7 @@
|
||||
MiniDeps.now(function()
|
||||
MiniDeps.add("folke/todo-comments.nvim")
|
||||
MiniDeps.add("nvim-lua/plenary.nvim")
|
||||
MiniDeps.add({
|
||||
source = "folke/todo-comments.nvim",
|
||||
depends = { "nvim-lua/plenary.nvim" },
|
||||
})
|
||||
require("todo-comments").setup()
|
||||
end)
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
return {
|
||||
["copilot.vim"] = "da369d90cfd6c396b1d0ec259836a1c7222fb2ea",
|
||||
["fzf-lua"] = "db3ccffe79480543d8e0f7b0cac0d9b220f9486e",
|
||||
["git-blame.nvim"] = "9874ec1ec8bc53beb33b7cd82c092b85271a578b",
|
||||
["copilot.vim"] = "f89e977c87180519ba3b942200e3d05b17b1e2fc",
|
||||
["fidget.nvim"] = "e32b672d8fd343f9d6a76944fedb8c61d7d8111a",
|
||||
["fzf-lua"] = "e9c8828f216e419d3b7fa1292d18378b14368492",
|
||||
["gitlinker.nvim"] = "cc59f732f3d043b626c8702cb725c82e54d35c25",
|
||||
["gitsigns.nvim"] = "1ee5c1fd068c81f9dd06483e639c2aa4587dc197",
|
||||
["gruvbox-material"] = "834dbf21836862300ced7444db4262b796330ab7",
|
||||
["gitsigns.nvim"] = "5813e4878748805f1518cee7abb50fd7205a3a48",
|
||||
["gruvbox-material"] = "cc47341018320a2c82262958a1af889e5eeacd6e",
|
||||
["guess-indent.nvim"] = "84a4987ff36798c2fc1169cbaff67960aed9776f",
|
||||
["mini.nvim"] = "d048db2ae04d8830b44c899b93e9052b2ad20fb7",
|
||||
["nvim-lspconfig"] = "ac98db2f9f06a56498ec890a96928774eae412c3",
|
||||
["nvim-treesitter"] = "4b74045bbe6de587c36b1e96956fa22769b4cdf7",
|
||||
["oil.nvim"] = "919e155fdf38e9148cdb5304faaaf53c20d703ea",
|
||||
["mini.nvim"] = "6bd3a01aaf7d248aea1b78aacdd5d44bffa002c1",
|
||||
["nvim-autopairs"] = "d9e44e54384e5b0f3536339c65484f2e41b528e3",
|
||||
["nvim-lspconfig"] = "f3979663c9c8cd9ad258344b9cfb5ad83cff61c1",
|
||||
["nvim-treesitter"] = "d3218d988f72ed34414959c9ccd802d393432d6e",
|
||||
["oil.nvim"] = "cbcb3f997f6f261c577b943ec94e4ef55108dd95",
|
||||
["plenary.nvim"] = "b9fd5226c2f76c951fc8ed5923d85e4de065e509",
|
||||
["rainbow-delimiters.nvim"] = "3277ad5f96eb03c9d618c88e24f683e4364e578c",
|
||||
["todo-comments.nvim"] = "19d461ddd543e938eb22505fb03fa878800270b6"
|
||||
["rainbow-delimiters.nvim"] = "8aafe2cbd89cd4090f573a98cab6b20366576fde",
|
||||
["todo-comments.nvim"] = "31e3c38ce9b29781e4422fc0322eb0a21f4e8668"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user