Compare commits

..

8 Commits

Author SHA1 Message Date
c3806dfd61 diffview 2026-07-20 17:13:20 +02:00
1b250f4500 wrap plugin 2026-07-15 17:37:10 +02:00
0ef267297e better markdown defaults 2026-07-10 20:32:07 +02:00
17c19d3452 typst lsp 2026-07-08 21:09:45 +02:00
da91033d53 ghostty config 2026-07-08 21:02:16 +02:00
1c6f0a0e46 better options 2026-07-03 14:49:36 +02:00
1c2b5f8a0e transition to mini-completion 2026-07-03 14:41:01 +02:00
db120ff9e3 update plugins 2026-07-03 14:15:14 +02:00
18 changed files with 141 additions and 106 deletions

View File

@@ -1,10 +1,10 @@
# prefer this if stow is available
.PHONY: stow unstow
stow:
stow nvim
stow nvim ghostty
unstow:
stow -D nvim
stow -D nvim ghostty
LN := ln -svf
LNDIR := ln -sv
@@ -13,6 +13,7 @@ DOTFILES_DIR := $(shell pwd)
TARGET_DIR := $(HOME)
# if stow is not available, symlink configs instead
# this is currently outdated
.PHONY: link unlink
link: nvim

View File

@@ -0,0 +1,13 @@
font-feature = -calt, -liga, -dlig
# Use Alt for multi-teriminal management
keybind = ctrl+shift+t=unbind
keybind = alt+t=new_tab
keybind = ctrl+shift+w=unbind
keybind = alt+w=close_tab:this
keybind = ctrl+enter=unbind
keybind = alt+enter=toggle_fullscreen
# Disable touchpad horizontal-swipe tab switching.
# Will come in next version
# gtk-horizontal-tab-scroll = false

View File

@@ -5,6 +5,8 @@ Inspirations:
- [nolan](https://github.com/Hrumble/sneaky-nvim-config)
- [mats](https://github.com/BeerB34r/dotfiles)
[Great guide on vim.pack](https://echasnovski.com/blog/2026-03-13-a-guide-to-vim-pack#delete)
# Neovim Notes
See custom keymaps with short descriptions with `<leader><leader>h`.
@@ -41,6 +43,14 @@ Git shortcuts:
- `:Git` to run commands directly (`:Git status`, `:Git log --oneline`)
- `<leader>lg` open LazyGit
- `<leader>dv` open Diffview
- `<leader>dc` close Diffview
Toggle shortcuts:
- `<leader>tw` toggle soft wrap
- `<leader>ti` toggle inline diagnostics
- `<leader>tv` toggle virtual diagnostics
Oil usage:
@@ -96,15 +106,14 @@ Useful LSP commands:
- `<leader>ca` show code actions
- `<leader>cf` apply quick fixes
- `<leader>cs` show source actions
- `<C-Space>` trigger completion
Diagnostics:
- `g.` open diagnostic float
- `gl` send diagnostics to the location list
- `gld` display diagnostic information
- `gid` toggle inline diagnostics
- `gvd` toggle virtual line diagnostics
- `<leader>ti` toggle inline diagnostics
- `<leader>tv` toggle virtual diagnostics
- `]g` jump to next warning or error
- `[g` jump to previous warning or error

View File

@@ -0,0 +1 @@
require("romanzy.custom.wrap").toggle(true)

View File

@@ -0,0 +1 @@
require("romanzy.custom.wrap").toggle(true)

View File

@@ -0,0 +1 @@
require("romanzy.custom.wrap").toggle(true)

View File

@@ -0,0 +1 @@
require("romanzy.custom.wrap").toggle(true)

View File

@@ -16,6 +16,9 @@ function M.render()
return table.concat(parts)
end
_G.RomanzyTabline = M.render
function M.setup()
_G.RomanzyTabline = M.render
vim.opt.tabline = "%!v:lua.RomanzyTabline()"
end
return M

View File

@@ -0,0 +1,17 @@
local M = {}
--- Toggle wrapping, or force it to the provided state.
--- @param enabled? boolean
function M.toggle(enabled)
if enabled == nil then
enabled = not vim.wo.wrap
end
vim.wo.wrap = enabled
vim.wo.linebreak = enabled
vim.wo.breakindent = enabled
vim.bo.textwidth = enabled and 80 or 0
vim.bo.wrapmargin = 0
end
return M

View File

@@ -26,12 +26,15 @@ map("n", "<leader>fg", telescope_picker("live_grep"), { desc = "live grep" })
map("n", "<leader>fb", telescope_picker("buffers"), { desc = "find buffers" })
map("n", "<leader>fh", telescope_picker("help_tags"), { desc = "help tags" })
map("n", "<leader>lg", "<Cmd>LazyGit<CR>", { desc = "open lazygit" })
map("n", "<leader>dv", "<Cmd>DiffviewOpen<CR>", { desc = "open diffview" })
map("n", "<leader>dc", "<Cmd>DiffviewClose<CR>", { desc = "close diffview" })
map("n", "<leader>tw", require("romanzy.custom.wrap").toggle, { desc = "toggle soft wrap" })
-- map("n", "<leader>s", ":set spell!<CR>", { desc = "toggle spell" })
map("n", "<leader>sv", "<Cmd>vs<CR>", { desc = "split vertical" })
map("n", "<leader>sh", "<Cmd>sp<CR>", { desc = "split horizontal" })
map("n", "<leader>se", "<C-w>=", { desc = "equalize splits" })
map("n", "<leader>sc", "<C-w>c", { desc = "close split" })
map("n", "<leader>rh", "<Cmd>vertical resize -10<CR>", { desc = "make buffer narrower" })
map("n", "<leader>rl", "<Cmd>vertical resize +10<CR>", { desc = "make buffer wider" })
map("n", "<leader>rj", "<Cmd>resize -5<CR>", { desc = "make buffer shorter" })
@@ -47,10 +50,8 @@ map("n", "<leader>Y", '"+Y', { desc = "yank line to system clipboard" })
map("n", "<leader>p", '"+p', { desc = "paste from system clipboard" })
map("n", "<leader>P", '"+P', { desc = "paste before from system clipboard" })
map("t", "\\\\", "<C-\\><C-n>", { desc = "exit terminal" })
map("t", "<C-\\><C-\\>", "<C-\\><C-n>", { desc = "exit terminal" })
map("t", "<C-Esc>", "<C-\\><C-n>", { desc = "exit terminal" })
map("t", "\\<Esc>", "<C-\\><C-n>", { desc = "exit terminal" })
-- experimenting
map("t", { "\\\\", "<C-\\><C-\\>", "<C-Esc>", "\\<Esc>" }, "<C-\\><C-n>", { desc = "exit terminal" })
map("n", "<C-h>", "<C-w>h", { desc = "window left" })
map("n", "<C-j>", "<C-w>j", { desc = "window down" })
@@ -145,9 +146,9 @@ map("n", "[g", function()
end, { desc = "prev warning/error" })
map("n", "gld", vim.diagnostic.setloclist, { desc = "display diagnostic information" })
map("n", "gid", function()
map("n", "<leader>ti", function()
vim.diagnostic.config({ virtual_text = not vim.diagnostic.config().virtual_text })
end, { desc = "toggle inline diagnostics" })
map("n", "gvd", function()
map("n", "<leader>tv", function()
vim.diagnostic.config({ virtual_lines = not vim.diagnostic.config().virtual_lines })
end, { desc = "toggle virtual line diagnostics" })
end, { desc = "toggle virtual diagnostics" })

View File

@@ -12,7 +12,6 @@ o.textwidth = 80 -- Wraps inserted text after 80 columns when formatting is acti
o.scrolloff = 8 -- Keeps context lines visible around the cursor.
o.signcolumn = "yes" -- Always reserves space for signs in the gutter.
o.colorcolumn = "+1" -- Highlights the preferred maximum line width.
o.wrap = false -- Prevents long lines from wrapping on screen.
o.list = true -- Displays whitespace characters using listchars.
o.listchars = {
tab = "» ",
@@ -30,10 +29,11 @@ o.expandtab = true -- Inserts spaces when indenting by default.
o.smartindent = true -- Adds indentation automatically on new lines.
o.swapfile = false -- Disables swapfile creation.
o.incsearch = true -- Updates search matches as you type.
o.completeopt = { "menuone", "noselect", "fuzzy", "nosort" } -- Enables fuzzy completion matching.
o.pumheight = 8 -- Limits the completion popup menu size.
o.updatetime = 50 -- Reduces idle delay for swap and CursorHold events.
o.spelllang = { "en_us" } -- Uses US English for spell checking.
o.shell = "bash" -- Runs shell commands through bash.
o.tabline = "%!v:lua.RomanzyTabline()" -- Shows native tabs with custom labels.
-- Only show the invisible characters inside the code editing buffers
vim.cmd([[autocmd BufWinEnter * if &buftype != '' | setlocal nolist | endif]])

View File

@@ -1,13 +1,11 @@
require("romanzy.plugins.rose-pine")
require("romanzy.plugins.mini")
require("romanzy.plugins.blink-cmp")
require("romanzy.plugins.lazygit")
require("romanzy.plugins.diffview")
require("romanzy.plugins.oil")
require("romanzy.plugins.telescope")
require("romanzy.plugins.nvim-treesitter")
require("romanzy.plugins.conform")
require("romanzy.plugins.lsp")
require("romanzy.plugins.codamheader")
-- custom "plugins"
require("romanzy.custom.tabline")
require("romanzy.plugins.romanzy")

View File

@@ -1,39 +0,0 @@
vim.pack.add({ 'https://github.com/saghen/blink.lib', 'https://github.com/saghen/blink.cmp' })
local cmp = require('blink.cmp')
-- cmp.build():pwait()
cmp.setup({
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
-- 'super-tab' for mappings similar to vscode (tab to accept)
-- 'enter' for enter to accept
-- 'none' for no mappings
--
-- All presets have the following mappings:
-- C-space: Open menu or open docs if already open
-- C-n/C-p or Up/Down: Select next/previous item
-- C-e: Hide menu
-- C-k: Toggle signature help (if signature.enabled = true)
--
-- See :h blink-cmp-config-keymap for defining your own keymap
keymap = { preset = 'default' },
completion = {
documentation = { auto_show = false },
-- list = {
-- selection = {
-- preselect = false,
-- auto_insert = false,
-- },
-- },
},
-- (Default) list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, due to `opts_extend`
sources = { default = { 'lsp', 'path', 'snippets', 'buffer' } },
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
-- You may use a lua implementation instead by using `implementation = "lua"`
-- See the fuzzy documentation for more information
-- fuzzy = { implementation = "prefer_rust_with_warning" }
fuzzy = { implementation = "lua" }
})

View File

@@ -0,0 +1,6 @@
vim.pack.add({
{
src = "https://github.com/sindrets/diffview.nvim",
name = "diffview.nvim",
},
})

View File

@@ -43,7 +43,7 @@ end
configure_diagnostics()
local capabilities = require("blink.cmp").get_lsp_capabilities()
local capabilities = require("mini.completion").get_lsp_capabilities()
local managed_servers = {
"bashls",
"clangd",
@@ -55,6 +55,7 @@ local managed_servers = {
"ts_ls",
"tailwindcss",
"eslint",
"tinymist",
}
local servers = {
bashls = {},
@@ -62,8 +63,6 @@ local servers = {
jsonls = {},
marksman = {},
taplo = {},
tailwindcss = {},
ts_ls = {},
yamlls = {},
lua_ls = {
settings = {
@@ -81,6 +80,10 @@ local servers = {
},
},
},
ts_ls = {},
tailwindcss = {},
eslint = {},
tinymist = {},
}
for server_name, config in pairs(servers) do

View File

@@ -7,6 +7,7 @@ vim.pack.add({
})
local clue = require("mini.clue")
local completion = require("mini.completion")
local icons = require("mini.icons")
local git = require("mini.git")
local diff = require("mini.diff")
@@ -17,15 +18,6 @@ local ai = require("mini.ai")
local notify = require("mini.notify")
local surround = require("mini.surround")
local function set_mini_diff_highlights()
vim.api.nvim_set_hl(0, "MiniDiffSignAdd", { fg = "#9ccf8d" })
vim.api.nvim_set_hl(0, "MiniDiffSignChange", { fg = "#f6c177" })
vim.api.nvim_set_hl(0, "MiniDiffSignDelete", { fg = "#eb6f92" })
vim.api.nvim_set_hl(0, "MiniDiffOverAdd", { fg = "#9ccf8d" })
vim.api.nvim_set_hl(0, "MiniDiffOverChange", { fg = "#f6c177" })
vim.api.nvim_set_hl(0, "MiniDiffOverDelete", { fg = "#eb6f92" })
end
clue.setup({
triggers = {
{ mode = "n", keys = "<leader>" },
@@ -47,14 +39,40 @@ clue.setup({
},
})
completion.setup({})
local function complete_accept_top()
if vim.fn.pumvisible() == 0 then
return "<C-y>"
end
if vim.fn.complete_info({ "selected" }).selected == -1 then
return "<C-n><C-y>"
end
return "<C-y>"
end
vim.keymap.set("i", "<C-y>", complete_accept_top, { expr = true })
icons.setup({})
git.setup({})
diff.setup({})
local function set_mini_diff_highlights()
vim.api.nvim_set_hl(0, "MiniDiffSignAdd", { fg = "#9ccf8d" })
vim.api.nvim_set_hl(0, "MiniDiffSignChange", { fg = "#f6c177" })
vim.api.nvim_set_hl(0, "MiniDiffSignDelete", { fg = "#eb6f92" })
vim.api.nvim_set_hl(0, "MiniDiffOverAdd", { fg = "#9ccf8d" })
vim.api.nvim_set_hl(0, "MiniDiffOverChange", { fg = "#f6c177" })
vim.api.nvim_set_hl(0, "MiniDiffOverDelete", { fg = "#eb6f92" })
end
set_mini_diff_highlights()
vim.api.nvim_create_autocmd("ColorScheme", {
callback = set_mini_diff_highlights,
})
statusline.setup({ use_icons = true })
hipatterns.setup({
highlighters = {
fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" },
@@ -64,10 +82,13 @@ hipatterns.setup({
hex_color = hipatterns.gen_highlighter.hex_color(),
},
})
pairs.setup({
modes = { insert = true, command = true, terminal = false },
})
ai.setup({})
notify.setup({
lsp_progress = {
-- the message "lua_ls: processing completion..." and
@@ -75,6 +96,6 @@ notify.setup({
enable = true,
},
})
vim.notify = notify.make_notify()
surround.setup({})

View File

@@ -0,0 +1,2 @@
require("romanzy.custom.tabline").setup()
require("romanzy.custom.wrap").toggle(false)

View File

@@ -1,13 +1,5 @@
{
"plugins": {
"blink.cmp": {
"rev": "bda905a4bf1b3edfa708b0be193b8c63d8620c96",
"src": "https://github.com/saghen/blink.cmp"
},
"blink.lib": {
"rev": "5876dd95deeb70aadbe9f1c0b7117a135061cdac",
"src": "https://github.com/saghen/blink.lib"
},
"codam-header.nvim": {
"rev": "a8fbd2a7003eecbf6e85693e85d7d4d464625193",
"src": "https://github.com/BeerB34r/codam-header.nvim"
@@ -16,12 +8,16 @@
"rev": "619363c30309d29ffa631e67c8183f2a72caa373",
"src": "https://github.com/stevearc/conform.nvim"
},
"diffview.nvim": {
"rev": "4516612fe98ff56ae0415a259ff6361a89419b0a",
"src": "https://github.com/sindrets/diffview.nvim"
},
"lazygit.nvim": {
"rev": "a04ad0dbc725134edbee3a5eea29290976695357",
"src": "https://github.com/kdheepak/lazygit.nvim"
},
"mason-lspconfig.nvim": {
"rev": "21c5b3ebeaa0412e28096bb0701434c51c1fbf76",
"rev": "47059d71b42d74b0a1e9f61c1d99d301039c3b5b",
"src": "https://github.com/mason-org/mason-lspconfig.nvim"
},
"mason.nvim": {
@@ -29,11 +25,11 @@
"src": "https://github.com/mason-org/mason.nvim"
},
"mini.nvim": {
"rev": "1599a473aa6f5290a5d740b1144846e6f0c3963d",
"rev": "c5cdbadeb423ff724e27a42ab2d1c504d1d6fc5a",
"src": "https://github.com/echasnovski/mini.nvim"
},
"nvim-lspconfig": {
"rev": "bfcc0171a43f22afa61d927ffe9fcb6cb85dc99e",
"rev": "292f44408498103c47996ff5c18fd366293840d8",
"src": "https://github.com/neovim/nvim-lspconfig"
},
"nvim-treesitter": {