feat: remove ow directory, keep ow in type annotations only

This commit is contained in:
2025-10-05 00:30:22 +02:00
parent a1ff822efb
commit 8b17ef2b6b
39 changed files with 103 additions and 112 deletions
+97
View File
@@ -0,0 +1,97 @@
vim.api.nvim_create_autocmd("FileType", {
pattern = "help",
callback = function()
vim.wo.number = true
vim.wo.relativenumber = true
end,
})
vim.api.nvim_create_autocmd("FileType", {
desc = "Use tabs for indents in Go files",
pattern = "go",
callback = function()
vim.bo.expandtab = false
end,
})
vim.api.nvim_create_autocmd("FileType", {
desc = "Fix parsing compile errors into quickfixlist",
pattern = "zig",
callback = function()
vim.bo.errorformat = "%f:%l:%c: %t%.%#: %m,%-G%.%#"
end,
})
vim.api.nvim_create_autocmd({ "BufReadPost" }, {
desc = "Return cursor to last position when re-opening a buffer",
pattern = "*",
command = 'silent! normal! g`"zv',
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "c" },
callback = function()
vim.o.errorformat = "%-Gmake: *** [Makefile:,"
.. "%-Gg%\\?make[%*\\d]: *** [%f:%l:%m,"
.. "%-Gg%\\?make: *** [%f:%l:%m,"
.. "%-G%f:%l: (Each undeclared identifier is reported only once,"
.. "%-G%f:%l: for each function it appears in.),"
.. "%-GIn file included from %f:%l:%c:,"
.. "%-GIn file included from %f:%l:%c\\,,"
.. "%-GIn file included from %f:%l:%c,"
.. "%-GIn file included from %f:%l,"
.. "%-G%*[ ]from %f:%l:%c,"
.. "%-G%*[ ]from %f:%l:,"
.. "%-G%*[ ]from %f:%l\\,,"
.. "%-G%*[ ]from %f:%l,"
.. "%-G%f:%l:%c: note: '%*[^']' declared here,"
.. "%D%*\\a[%*\\d]: Entering directory %*[`']%f',"
.. "%X%*\\a[%*\\d]: Leaving directory %*[`']%f',"
.. "%D%*\\a: Entering directory %*[`']%f',"
.. "%X%*\\a: Leaving directory %*[`']%f',"
.. "%DMaking %*\\a in %f,"
.. "%f:%l:%c: %t%*[^:]: %m,"
.. "%*[^:]: %f:%l: %m,"
.. "%-G%.%#"
end,
})
vim.api.nvim_create_autocmd("FileType", {
desc = "Use two space indent for C++ files",
pattern = { "cpp" },
callback = function()
vim.bo.tabstop = 2
vim.bo.softtabstop = 2
vim.bo.shiftwidth = 2
vim.bo.cinoptions = "g0"
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "netrw" },
callback = function()
vim.keymap.set("n", "<C-h>", "-", { buffer = true, remap = true })
vim.keymap.set("n", "<C-l>", "<CR>", { buffer = true, remap = true })
end,
})
vim.api.nvim_create_autocmd("VimEnter", {
pattern = "*",
command = ":clearjumps",
})
vim.api.nvim_create_autocmd("FileType", {
desc = "Customize python indentation",
pattern = { "python" },
callback = function()
vim.opt_local.indentkeys:remove("<:>")
end,
})
vim.api.nvim_create_autocmd("TermLeave", {
desc = "Reload buffers when leaving terminal",
pattern = "*",
callback = function()
vim.cmd.checktime()
end,
})
+23
View File
@@ -0,0 +1,23 @@
vim.g.mapleader = " "
vim.g.vimsyn_embed = "lpP"
vim.g.netrw_banner = 0
vim.g.netrw_liststyle = 1
vim.g.netrw_list_hide = "\\.venv/,\\.git/"
vim.g.netrw_maxfilenamelen = 47
vim.g.netrw_mousemaps = 0
vim.g.netrw_sizestyle = "H"
vim.g.netrw_sort_by = "name"
vim.g.netrw_sort_options = "i"
vim.g.netrw_sort_sequence = "[\\/]\\s*,*"
vim.g.netrw_special_syntax = 1
vim.g.netrw_timefmt = "%d-%m-%Y %H:%M"
vim.g.c_syntax_for_h = 1
vim.g.python_indent = {
open_paren = "shiftwidth()",
continue = "shiftwidth()",
closed_paren_align_last_line = false,
}
local termfeatures = vim.g.termfeatures or {}
termfeatures.osc52 = false
vim.g.termfeatures = termfeatures
+164
View File
@@ -0,0 +1,164 @@
-- Tab mappings ---
vim.keymap.set("n", "tn", vim.cmd.tabnew)
vim.keymap.set("n", "tq", vim.cmd.tabclose)
-- Clipboard
if vim.env.TMUX and vim.fn.executable("tmux") then
vim.keymap.set(
{ "n", "x" },
"<leader>y",
"\"+y:call system('tmux load-buffer -w -', @+)<CR>"
)
else
vim.keymap.set({ "n", "x" }, "<leader>y", '"+y')
end
vim.keymap.set({ "n", "x" }, "<leader>p", '"+p')
vim.keymap.set({ "n", "x" }, "<leader>P", '"+P')
vim.keymap.set({ "n", "x" }, "<leader>+", ":call setreg('+', @\")<CR>")
-- Allow exiting insert mode in terminal by hitting <ESC>
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>")
-- Feed ESC in terminal mode using <C-\>
vim.keymap.set("t", "<C-\\>", function()
vim.api.nvim_feedkeys(
vim.api.nvim_replace_termcodes("<Esc>", true, false, true),
"n",
false
)
end)
-- Use :diffput/get instead of normal one to allow staging visual selection
vim.keymap.set({ "n", "x" }, "<leader>dp", ":diffput<CR>")
vim.keymap.set({ "n", "x" }, "<leader>do", ":diffget<CR>")
local close_pum = function()
if vim.fn.pumvisible() ~= 0 then
return "<cmd>pclose<cr>"
end
for _, winid in pairs(vim.api.nvim_tabpage_list_wins(0)) do
if vim.api.nvim_win_get_config(winid).relative ~= "" then
return "<cmd>fclose<cr>"
end
end
end
vim.keymap.set({ "n", "i" }, "<C-c>", function()
return close_pum()
end, { expr = true })
vim.keymap.set("n", "<C-w>q", ":bn | bd#<CR>")
-- Allow (de)indenting without deselecting
vim.keymap.set({ "x" }, "<", "<gv")
vim.keymap.set({ "x" }, ">", ">gv")
-- Remove default mappings
vim.keymap.set("", "<C-LeftMouse>", "")
vim.keymap.set("n", "gr", "<Nop>")
vim.keymap.set("n", "K", function()
if vim.bo.filetype == "vim" or vim.bo.filetype == "help" then
vim.cmd("help " .. vim.fn.expand("<cword>"))
else
vim.cmd("Man " .. vim.fn.expand("<cword>"))
end
end)
-- Remove right-click menu items
vim.cmd.aunmenu({ "PopUp.-1-" })
vim.cmd.aunmenu({ "PopUp.How-to\\ disable\\ mouse" })
-- Insert-mode Emacs bindings
vim.keymap.set("i", "<C-f>", "<Right>")
vim.keymap.set("i", "<C-b>", "<Left>")
vim.keymap.set("i", "<C-a>", "<C-o>^")
vim.keymap.set("i", "<C-e>", "<C-o>$")
-- vim.keymap.set('i', '<C-d>', '<C-o>x') -- Overrides de-indent
vim.keymap.set("i", "<M-f>", "<C-o>w")
vim.keymap.set("i", "<M-b>", "<C-o>b")
vim.keymap.set("i", "<M-d>", "<C-o>dw")
vim.keymap.set("i", "<M-BS>", "<C-o>db")
-- Command-mode Emacs bindings
vim.keymap.set("c", "<C-f>", "<Right>")
vim.keymap.set("c", "<C-b>", "<Left>")
vim.keymap.set("c", "<C-a>", "<Home>")
vim.keymap.set("c", "<C-e>", "<End>")
vim.keymap.set("c", "<C-d>", "<Delete>")
vim.keymap.set("c", "<C-n>", "<Down>")
vim.keymap.set("c", "<C-p>", "<Up>")
vim.keymap.set("c", "<M-f>", "<C-Right>")
vim.keymap.set("c", "<M-b>", "<C-Left>")
vim.keymap.set("c", "<M-d>", "<C-Right><C-w>")
vim.keymap.set("c", "<M-BS>", "<C-w>")
vim.keymap.set("n", "<leader>ve", function()
if vim.o.virtualedit == "all" then
vim.o.virtualedit = "block"
else
vim.o.virtualedit = "all"
end
end)
-- Replace all occurrences of word
vim.keymap.set("n", "<Leader>r", function()
local word = vim.fn.expand("<cword>")
local replacement = vim.fn.input('Replace "' .. word .. '" by? ')
if replacement ~= "" then
local cursor_pos = vim.api.nvim_win_get_cursor(0)
vim.cmd(":%s/\\<" .. word .. "\\>/" .. replacement .. "/g")
vim.api.nvim_win_set_cursor(0, cursor_pos)
end
end)
-- Default bindings that are good to know:
-- insert mode:
-- <C-T> - indent, see :h i_CTRL-T
-- <C-D> - un-indent, see :h i_CTRL-D
-- normal mode:
-- H/M/L - Jump to highest/middle/lowest line in window.
-- <count?><C-E> - scroll window down <count> lines, see :h CTRL-E
-- <count?><C-Y> - scroll window up <count> lines, see :h CTRL-Y
-- <C-A> - Increment
-- <C-X> - Decrement
-- <C-w>H - Move window to the left
-- <C-w>J - Move window down
-- <C-w>K - Move window up
-- <C-w>L - Move window to the right
-- gq{motion} - format word-wrap of the line that {motion} moves over
-- {Visual}gq - format word-wrap of the visually selected area
-- gqq - format word-wrap of the current line
-- commands:
-- :make - execute makeprg with given args, and put the output in
-- quickfix list
-- :grep - execute grepprg with given args, and put the results in
-- quickfix list
-- :cex {expr} - Create a quickfix list using the result of {expr} and
-- jump to the first error. For example:
-- :cex system('make')
-- :cgete {expr} - same as :cex but don't jump to the first error
-- :copen - open quickfix list
-- :cdo {cmd} - execute {cmd} in each valid entry in the quickfix list.
-- works like this:
-- :cfirst
-- :{cmd}
-- :cnext
-- :{cmd}
-- etc.
-- :cfdo {cmd} - same as :cdo but on each file in quickfix list
-- :cn - go to the next error in quickfix list that includes a file name
-- :cp - go to the previous error in quickfix list that includes a file name
-- :cc [num] - go to the specified error in quickfix list
-- @: - repeat last command
-- :s/foo/bar/ - substitute the first match of foo with bar in the current line
-- :s/foo/bar/g - same as above but for all matches in the current line
-- :%s/foo/bar/g - same as above, but for all lines in buffer
-- :%s/foo/bar/gc - same as above but asking for confirmation on each match
-- :lua << EOF - run a lua snippet using lua-heredoc syntax
-- local tbl = {1, 2, 3}
-- for k, v in ipairs(tbl) do
-- print(v)
-- end
-- EOF
-- :diffsplit <other-file> - open diff split
+153
View File
@@ -0,0 +1,153 @@
vim.opt.cursorline = true
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.mouse = "a"
vim.opt.mousemodel = "popup"
vim.opt.fillchars = {
diff = " ",
horiz = "",
horizup = "",
horizdown = "",
vert = "",
vertleft = "",
vertright = "",
verthoriz = "",
}
vim.opt.splitbelow = true
vim.opt.splitright = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.expandtab = true
vim.opt.shiftwidth = 4
vim.opt.smarttab = false
-- Folds are configured in nvim-treesitter, so this is only for fallback
vim.opt.foldenable = false
vim.opt.foldlevel = 99
vim.opt.foldlevelstart = 99
vim.opt.foldmethod = "indent"
vim.opt.foldignore = ""
vim.opt.completeopt:append({
"menu",
"menuone",
"preview",
"noinsert",
"noselect",
})
-- set nowrap
vim.opt.matchpairs:append({ "<:>" })
-- Only relevant with wrap enabled (default)
vim.opt.linebreak = true
vim.opt.breakindent = true
vim.opt.showbreak = " "
-- Minimum amount of lines to show offset +/- to cursorline
vim.opt.scrolloff = 3
vim.opt.visualbell = true
vim.opt.errorbells = false
-- Persistent undo even after you close a file and re-open it
vim.opt.undofile = true
-- Align indent to next multiple value of shiftwidth.
-- E.g., only insert as many spaces necessary for reaching the next shiftwidth
vim.opt.shiftround = true
-- Allow virtualedit (editing on empty spaces) in visual block mode (Ctrl+V)
vim.opt.virtualedit = "block"
-- True color support. Avoid if terminal does not support it.
vim.opt.termguicolors = true
vim.opt.signcolumn = "yes:2"
-- Diff options
vim.opt.diffopt = {}
-- Use vertical split by default
vim.opt.diffopt:append("vertical")
-- Insert filler lines
vim.opt.diffopt:append("filler")
-- Execute :diffoff when only one diff window remain
vim.opt.diffopt:append("closeoff")
-- Use internal diff library
vim.opt.diffopt:append("internal")
-- These make diffs easier to read, please see the following:
-- https://vimways.org/2018/the-power-of-diff/
vim.opt.diffopt:append({ "indent-heuristic", "algorithm:histogram" })
vim.opt.diffopt:append("linematch:40")
vim.opt.hlsearch = true
vim.opt.laststatus = 2
vim.opt.textwidth = 0
vim.opt.colorcolumn = "81"
vim.opt.shortmess:append("a")
vim.opt.autoread = true
-- vim.opt.cmdheight = 0 -- To hide cmdline when not used. Disabled due to
-- causing "Press ENTER to continue" messages for small messages.
vim.opt.jumpoptions = { "stack", "view", "clean" }
vim.opt.updatetime = 100
vim.opt.guicursor:append("a:Cursor")
vim.opt.inccommand = "split"
function _G._status_line_git()
local status = vim.b.gitsigns_status_dict
if not status then
return ""
end
local added = status.added or 0
local changed = status.changed or 0
local removed = status.removed or 0
local parts = {}
if added > 0 then
table.insert(
parts,
string.format("%%#GitSignsAdd#+%d%%*", status.added)
)
end
if changed > 0 then
table.insert(
parts,
string.format("%%#GitSignsChange#~%d%%*", status.changed)
)
end
if removed > 0 then
table.insert(
parts,
string.format("%%#GitSignsDelete#-%d%%*", status.removed)
)
end
return table.concat(parts, " ")
end
function _G._status_line_diagnostics()
local diag = vim.diagnostic.count(0)
local err = diag[vim.diagnostic.severity.ERROR] or 0
local warn = diag[vim.diagnostic.severity.WARN] or 0
local hint = diag[vim.diagnostic.severity.HINT] or 0
local info = diag[vim.diagnostic.severity.INFO] or 0
local parts = {}
if err > 0 then
table.insert(parts, string.format("%%#DiagnosticError#E%d%%*", err))
end
if warn > 0 then
table.insert(parts, string.format("%%#DiagnosticWarn#W%d%%*", warn))
end
if hint > 0 then
table.insert(parts, string.format("%%#DiagnosticHint#H%d%%*", hint))
end
if info > 0 then
table.insert(parts, string.format("%%#DiagnosticInfo#I%d%%*", info))
end
return table.concat(parts, " ")
end
vim.opt.statusline = " %{expand('%:.')}%4( %m%) %{%v:lua._status_line_git()%} %="
.. " %{%v:lua._status_line_diagnostics()%} "
.. " %{&filetype} %-6.6{&fileencoding}"
.. " %-4.4{&fileformat} %4.4(%p%%%)%6.6l:%-3.3v"
vim.cmd("syntax on")
vim.cmd("filetype plugin indent on")