fix: small improvements

This commit is contained in:
2026-09-11 21:32:43 +02:00
parent 8292ff741d
commit 1cf3eef5e9
6 changed files with 81 additions and 36 deletions
+13 -1
View File
@@ -1,10 +1,22 @@
-- Modules -- Modules
vim.loader.enable() vim.loader.enable()
vim.opt.runtimepath:remove('/usr/share/nvim/site') vim.opt.runtimepath:remove('/usr/share/nvim/site')
for _, m in ipairs({ 'netrw', 'netrwPlugin', 'gzip', 'tarPlugin', 'zipPlugin', 'tutor_mode_plugin', 'rplugin' }) do for _, m in ipairs({
'netrw', 'netrwPlugin',
'gzip', 'tarPlugin',
'tutor_mode_plugin',
'remote_plugins',
'nvim_zip_plugin',
'nvim_net_plugin',
'spellfile_plugin',
}) do
vim.g['loaded_' .. m] = 1 vim.g['loaded_' .. m] = 1
end end
for _, p in ipairs({ 'node', 'python3', 'perl', 'ruby' }) do
vim.g['loaded_' .. p .. '_provider'] = 0
end
-- Config Global -- Config Global
vim.pack.add({ 'https://github.com/nvim-mini/mini.nvim' }) vim.pack.add({ 'https://github.com/nvim-mini/mini.nvim' })
local misc = require('mini.misc') local misc = require('mini.misc')
+18 -8
View File
@@ -5,21 +5,31 @@ local function show(buf_id, items, query)
MiniPick.default_show(buf_id, items, query) MiniPick.default_show(buf_id, items, query)
vim.api.nvim_buf_clear_namespace(buf_id, ns, 0, -1) vim.api.nvim_buf_clear_namespace(buf_id, ns, 0, -1)
for i, item in ipairs(items) do for i, item in ipairs(items) do
local hl = hls[item.text:match('%S')] if item.hl then
if hl then vim.api.nvim_buf_set_extmark(buf_id, ns, i - 1, 1, { end_col = 3, hl_group = item.hl, priority = 202, hl_mode = 'combine' })
vim.api.nvim_buf_set_extmark(buf_id, ns, i - 1, 0, { end_col = 2, hl_group = hl, priority = 202, hl_mode = 'combine' })
end end
end end
end end
return { return {
status = function() status = function()
local items = {} local lines = vim.fn.systemlist('git status -s -u')
for _, l in ipairs(vim.fn.systemlist('git status -s -u')) do if vim.v.shell_error ~= 0 then
local p = l:sub(4):gsub('.* %-> ', '') return vim.notify('Not a git repository', vim.log.levels.WARN)
if vim.uv.fs_stat(p) then items[#items + 1] = { text = l, path = p } end
end end
if #items == 0 then return vim.notify('No changes') end
local items = {}
for _, l in ipairs(lines) do
local s = l:sub(1, 2):match('%S+')
local p = l:sub(4):gsub('.* %-> ', ''):gsub('^"(.*)"$', '%1')
local hl = l:sub(1, 1) ~= ' ' and l:sub(1, 1) ~= '?' and 'DiagnosticOk' or hls[s:sub(1, 1)]
items[#items + 1] = {
text = string.format(' %-2s %s', s == '??' and '?' or s, p),
path = p,
hl = hl,
}
end
if #items == 0 then return vim.notify('No changes', vim.log.levels.INFO) end
MiniPick.start({ MiniPick.start({
source = { items = items, name = 'Git Status', show = show }, source = { items = items, name = 'Git Status', show = show },
+21 -20
View File
@@ -1,28 +1,29 @@
-- General -- General
vim.g.mapleader = ' ' -- Use `<Space>` as <Leader> key vim.g.mapleader = ' ' -- Use `<Space>` as <Leader> key
vim.o.undofile = true -- Enable persistent undo vim.o.undofile = true -- Enable persistent undo
vim.o.shada = "'100,<50,s10,:1000,/100,@100,h" -- Limit ShaDa file (for startup) vim.o.shada = "'50,<20,s10,:100,/50,@50,h" -- Limit ShaDa file (for startup)
-- UI -- UI
vim.o.breakindent = true -- Indent wrapped lines to match line start vim.o.breakindent = true -- Indent wrapped lines to match line start
vim.o.breakindentopt = 'list:-1' -- Add padding for lists (if 'wrap' is set) vim.o.breakindentopt = 'list:-1' -- Add padding for lists (if 'wrap' is set)
vim.o.cursorline = true -- Enable current line highlighting vim.o.cursorline = true -- Enable current line highlighting
vim.o.linebreak = true -- Wrap lines at 'breakat' (if 'wrap' is set) vim.o.linebreak = true -- Wrap lines at 'breakat' (if 'wrap' is set)
vim.o.list = true -- Show helpful text indicators vim.o.list = true -- Show helpful text indicators
vim.o.number = true -- Show line numbers vim.o.listchars = 'tab:→ ,trail:·,nbsp:␣' -- Characters for list mode
vim.o.pumheight = 10 -- Make popup menu smaller vim.o.number = true -- Show line numbers
vim.o.pummaxwidth = 80 -- Make popup menu not too wide vim.o.pumheight = 10 -- Make popup menu smaller
vim.o.shortmess = 'CFOSWacou' -- Disable some built-in completion messages vim.o.pummaxwidth = 80 -- Make popup menu not too wide
vim.o.signcolumn = 'yes' -- Always show signcolumn (less flicker) vim.o.shortmess = 'CFOSWacou' -- Disable some built-in completion messages
vim.o.splitbelow = true -- Horizontal splits will be below vim.o.signcolumn = 'yes' -- Always show signcolumn (less flicker)
vim.o.splitkeep = 'screen' -- Reduce scroll during window split vim.o.splitbelow = true -- Horizontal splits will be below
vim.o.splitright = true -- Vertical splits will be to the right vim.o.splitkeep = 'screen' -- Reduce scroll during window split
vim.o.wrap = false -- Don't visually wrap lines vim.o.splitright = true -- Vertical splits will be to the right
vim.o.winborder = 'rounded' -- Use border in floating windows vim.o.wrap = false -- Don't visually wrap lines
vim.o.pumborder = 'rounded' -- Use border in popup menu vim.o.winborder = 'rounded' -- Use border in floating windows
vim.o.cmdheight = 0 -- Hide the command line when not in use vim.o.pumborder = 'rounded' -- Use border in popup menu
vim.cmd('syntax off') -- Disable legacy syntax highlighting vim.o.cmdheight = 0 -- Hide the command line when not in use
require('vim._core.ui2').enable({ -- Enable new ui (requires nightly) vim.cmd('syntax off') -- Disable legacy syntax highlighting
require('vim._core.ui2').enable({ -- Enable new ui (requires nightly)
msg = { targets = 'msg' } msg = { targets = 'msg' }
}) })
+3 -1
View File
@@ -58,7 +58,8 @@ end
nmap_leader('ed', '<Cmd>lua MiniFiles.open()<CR>', 'Directory') nmap_leader('ed', '<Cmd>lua MiniFiles.open()<CR>', 'Directory')
nmap_leader('ef', explore_at_file, 'File directory') nmap_leader('ef', explore_at_file, 'File directory')
nmap_leader('ey', '<Cmd>lua vim.fn.setreg("+", vim.api.nvim_buf_get_name(0))<CR>', 'Yank absolute path') nmap_leader('ey', '<Cmd>lua vim.fn.setreg("+", vim.fn.fnamemodify(vim.api.nvim_buf_get_name(0), ":."))<CR>', 'Yank absolute path')
nmap_leader('eY', '<Cmd>lua vim.fn.setreg("+", vim.api.nvim_buf_get_name(0))<CR>', 'Yank relative path')
nmap_leader('en', '<Cmd>messages<CR>', 'Notifications') nmap_leader('en', '<Cmd>messages<CR>', 'Notifications')
-- Find -- Find
@@ -74,6 +75,7 @@ nmap_leader('fh', '<Cmd>Pick help<CR>', 'Help tags')
nmap_leader('fl', '<Cmd>Pick buf_lines scope="all"<CR>', 'Lines (all)') nmap_leader('fl', '<Cmd>Pick buf_lines scope="all"<CR>', 'Lines (all)')
nmap_leader('fL', '<Cmd>Pick buf_lines scope="current"<CR>', 'Lines (buf)') nmap_leader('fL', '<Cmd>Pick buf_lines scope="current"<CR>', 'Lines (buf)')
nmap_leader('fm', '<Cmd>Pick git_status<CR>', 'Modified / changed files') nmap_leader('fm', '<Cmd>Pick git_status<CR>', 'Modified / changed files')
nmap_leader('fo', '<Cmd>Pick oldfiles<CR>', 'Old / recent files')
nmap_leader('fr', '<Cmd>Pick resume<CR>', 'Resume') nmap_leader('fr', '<Cmd>Pick resume<CR>', 'Resume')
nmap_leader('fs', '<Cmd>Pick lsp scope="workspace_symbol_live"<CR>', 'Symbols workspace') nmap_leader('fs', '<Cmd>Pick lsp scope="workspace_symbol_live"<CR>', 'Symbols workspace')
nmap_leader('fS', '<Cmd>Pick lsp scope="document_symbol"<CR>', 'Symbols document') nmap_leader('fS', '<Cmd>Pick lsp scope="document_symbol"<CR>', 'Symbols document')
+11 -2
View File
@@ -12,7 +12,16 @@ Config.now(function()
return vim.iter({ vim.fn.glob('~/Code/*', 0, 1), vim.fn.glob('~/Documents/*/*', 0, 1) }) return vim.iter({ vim.fn.glob('~/Code/*', 0, 1), vim.fn.glob('~/Documents/*/*', 0, 1) })
:flatten() :flatten()
:filter(function(p) return vim.fn.isdirectory(p) == 1 end) :filter(function(p) return vim.fn.isdirectory(p) == 1 end)
:map(function(p) return { name = vim.fn.fnamemodify(p, ':t'), action = 'edit ' .. vim.fn.fnameescape(p), section = 'Projects' } end) :map(function(p)
return {
name = vim.fn.fnamemodify(p, ':t'),
action = function()
vim.fn.chdir(p)
require('mini.files').open(p)
end,
section = 'Projects',
}
end)
:totable() :totable()
end, end,
@@ -47,7 +56,7 @@ Config.later(function()
{ mode = { 'n', 'x' }, keys = 'g' }, { mode = { 'n', 'x' }, keys = 'g' },
{ mode = { 'n', 'x' }, keys = "'" }, { mode = { 'n', 'x' }, keys = "'" },
{ mode = { 'n', 'x' }, keys = '`' }, { mode = { 'n', 'x' }, keys = '`' },
{ mode = { 'n', 'x' }, keys = "'" }, { mode = { 'n', 'x' }, keys = '"' },
{ mode = { 'i', 'c' }, keys = '<C-r>' }, { mode = { 'i', 'c' }, keys = '<C-r>' },
{ mode = 'n', keys = '<C-w>' }, { mode = 'n', keys = '<C-w>' },
{ mode = { 'n', 'x' }, keys = 's' }, { mode = { 'n', 'x' }, keys = 's' },
+15 -4
View File
@@ -9,6 +9,8 @@ end)
-- Treesitter -- Treesitter
Config.now_if_args(function() Config.now_if_args(function()
vim.treesitter.language.register('bash', 'sh')
vim.treesitter.language.register('tsx', 'typescriptreact')
local filetypes = { local filetypes = {
'html', 'css', 'lua', 'go', 'php', 'blade', 'sql', 'javascript', 'html', 'css', 'lua', 'go', 'php', 'blade', 'sql', 'javascript',
@@ -23,10 +25,19 @@ Config.now_if_args(function()
end, 'Start tree-sitter') end, 'Start tree-sitter')
Config.later(function() Config.later(function()
vim.pack.add({ 'https://github.com/nvim-treesitter/nvim-treesitter' }) local missing = {}
require('nvim-treesitter').install(vim.tbl_map(function(ft)
return vim.treesitter.language.get_lang(ft) or ft for _, ft in ipairs(filetypes) do
end, filetypes)) local lang = vim.treesitter.language.get_lang(ft) or ft
if #vim.api.nvim_get_runtime_file('parser/' .. lang .. '.so', false) == 0 then
table.insert(missing, lang)
end
end
if #missing > 0 then
vim.pack.add({ 'https://github.com/nvim-treesitter/nvim-treesitter' })
require('nvim-treesitter').install(missing)
end
end) end)
end) end)