nvim: refactor cmds into commands

This commit is contained in:
Primrose 2025-07-08 15:44:05 +02:00
parent 1bdcd3386e
commit 7ae86384f6
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
14 changed files with 89 additions and 147 deletions

View file

@ -0,0 +1 @@
vim.bo.textwidth = 72

View file

@ -0,0 +1 @@
vim.o.expandtab = false

View file

@ -0,0 +1,2 @@
local opts = require("opts")
opts.matchit_let_in()

View file

@ -0,0 +1,6 @@
-- TODO: remove this when PR is merged
vim.bo.commentstring = "; %s"
vim.bo.varsofttabstop = "4,30,8,4"
vim.o.spell = true
vim.bo.spelllang = "fr"

View file

@ -0,0 +1,4 @@
vim.o.shiftwidth = 2
vim.o.tabstop = 2
vim.o.textwidth = 100
vim.o.colorcolumn = "100"

View file

@ -0,0 +1,2 @@
local opts = require("opts")
opts.matchit_let_in()

View file

@ -0,0 +1,2 @@
local opts = require("opts")
opts.matchit_let_in()

View file

@ -0,0 +1,4 @@
vim.o.shiftwidth = 2
vim.o.tabstop = 2
vim.o.textwidth = 100
vim.o.colorcolumn = "100"

View file

@ -1,6 +1,5 @@
require("maps")
require("opts")
require("cmds")
require("_lazy")

View file

@ -1,146 +0,0 @@
vim.api.nvim_create_autocmd("TextYankPost", { callback = vim.highlight.on_yank })
vim.filetype.add {
extension = {
[".*Caddyfile"] = "caddyfile",
hledger = "ledger",
mlw = "why3",
pro = "projet",
sk = "skel",
skel = "skel",
typ = "typst",
thy = "isabelle",
},
}
vim.api.nvim_create_autocmd("BufEnter", {
pattern = "justfile",
callback = function() vim.bo.filetype = "make" end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "gitcommit",
callback = function() vim.bo.textwidth = 72 end,
})
vim.api.nvim_create_autocmd("BufWinEnter", {
pattern = "*.md",
callback = function() vim.cmd("setlocal sw=2 ts=2 tw=100 colorcolumn=100") end,
})
vim.api.nvim_create_autocmd("BufWinEnter", {
pattern = "*.typ",
callback = function() vim.cmd("setlocal sw=2 ts=2 tw=100 colorcolumn=100") end,
})
vim.api.nvim_create_autocmd("BufWinEnter", {
pattern = "*.eml",
callback = function() vim.cmd("setlocal sw=2 ts=2 tw=80 colorcolumn=80") end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "ledger",
callback = function()
vim.cmd("setlocal varsofttabstop=4,30,8,4 spell spelllang=fr")
-- TODO: remove this when PR is merged
vim.bo.commentstring = "; %s"
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "asm",
callback = function() vim.bo.commentstring = "# %s" end,
})
-- "Projet" language taught at ISTIC
vim.api.nvim_create_autocmd("FileType", {
pattern = "projet",
callback = function() vim.bo.commentstring = "{ %s }" end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "skel",
callback = function()
vim.bo.commentstring = "(* %s *)"
vim.keymap.set("n", "<leader>f", function()
vim.cmd("w")
vim.cmd("silent exec '!necroprint % -o %'")
vim.cmd("e")
end, { buffer = true, silent = true })
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "why3",
callback = function()
vim.bo.commentstring = "(* %s *)"
vim.cmd([[setlocal sw=2 ts=2 et]])
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "go",
callback = function() vim.cmd("set noet") end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "nix", "haskell", "ocaml", "skel" },
callback = function() vim.cmd([[let b:match_words = '\<let\>:\<in\>']]) end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "ledger",
callback = function()
vim.keymap.set("n", "<leader>f", function()
local saved = vim.fn.winsaveview()
vim.cmd([[%!hledger print -f -]])
vim.fn.winrestview(saved)
end)
end,
})
vim.api.nvim_create_autocmd("OptionSet", {
pattern = "shiftwidth",
callback = function()
if vim.o.expandtab then
local c = ""
for _ = c:len(), vim.o.shiftwidth + 1 do
c = c .. " "
end
return vim.opt.lcs:append("leadmultispace:" .. c)
else
return nil
end
end,
})
vim.api.nvim_create_autocmd("OptionSet", {
pattern = "textwidth",
callback = function() vim.wo.colorcolumn = tostring(vim.bo.textwidth) end,
})
vim.api.nvim_create_user_command("Retab", function(opts)
if #opts.fargs ~= 2 then
return print("should have exactly two argument: [src] and [dst]")
end
local src = tonumber(opts.fargs[1])
local dst = tonumber(opts.fargs[2])
if src == nil then
print("first argument [src] is not a valid number")
end
if dst == nil then
print("second argument [dst] is not a valid number")
end
vim.bo.shiftwidth = src
vim.bo.tabstop = src
vim.bo.expandtab = false
vim.cmd("%retab!")
vim.bo.shiftwidth = dst
vim.bo.tabstop = dst
vim.bo.expandtab = true
vim.cmd("%retab!")
end, { nargs = "+" })
-- Dissambiguate the :W shortcut
vim.api.nvim_create_user_command("W", function(opts) vim.cmd(":w") end, { nargs = 0 })

View file

@ -1,3 +1,5 @@
M = {}
vim.o.hlsearch = false
vim.o.incsearch = true
vim.o.ignorecase = true
@ -34,3 +36,7 @@ vim.o.list = true
vim.o.splitright = true
vim.o.splitbelow = true
function M.matchit_let_in() vim.b.match_words = [[\<let\>:\<in\>]] end
return M

View file

@ -0,0 +1,29 @@
vim.api.nvim_create_autocmd("TextYankPost", {
group = vim.api.nvim_create_augroup("Visual", {}),
callback = function()
vim.highlight.on_yank {
higroup = "IncSearch",
timeout = 100,
}
end,
})
vim.api.nvim_create_autocmd("OptionSet", {
pattern = "shiftwidth",
callback = function()
if vim.o.expandtab then
local c = ""
for _ = c:len(), vim.o.shiftwidth + 1 do
c = c .. " "
end
return vim.opt.lcs:append("leadmultispace:" .. c)
else
return nil
end
end,
})
vim.api.nvim_create_autocmd("OptionSet", {
pattern = "textwidth",
callback = function() vim.wo.colorcolumn = tostring(vim.bo.textwidth) end,
})

View file

@ -0,0 +1,24 @@
vim.api.nvim_create_user_command("Retab", function(opts)
if #opts.fargs ~= 2 then
return print("should have exactly two argument: [src] and [dst]")
end
local src = tonumber(opts.fargs[1])
local dst = tonumber(opts.fargs[2])
if src == nil then
print("first argument [src] is not a valid number")
end
if dst == nil then
print("second argument [dst] is not a valid number")
end
vim.bo.shiftwidth = src
vim.bo.tabstop = src
vim.bo.expandtab = false
vim.cmd("%retab!")
vim.bo.shiftwidth = dst
vim.bo.tabstop = dst
vim.bo.expandtab = true
vim.cmd("%retab!")
end, { nargs = "+" })
vim.api.nvim_create_user_command("W", function() vim.cmd.w() end, {})

View file

@ -0,0 +1,8 @@
vim.filetype.add {
extension = {
[".*Caddyfile"] = "caddyfile",
hledger = "ledger",
pro = "projet",
typ = "typst",
},
}