diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 0000000..394e884 --- /dev/null +++ b/.stylua.toml @@ -0,0 +1 @@ +indent_type = "Spaces" diff --git a/flake/checks.nix b/flake/checks.nix index 970e91d..98e49bd 100644 --- a/flake/checks.nix +++ b/flake/checks.nix @@ -22,6 +22,10 @@ shellcheck = { enable = true; }; + + stylua = { + enable = true; + }; }; }; }; diff --git a/home/vim/after/ftplugin/pandoc.vim b/home/vim/after/ftplugin/markdown.vim similarity index 100% rename from home/vim/after/ftplugin/pandoc.vim rename to home/vim/after/ftplugin/markdown.vim diff --git a/home/vim/after/plugin/mappings/commentary.vim b/home/vim/after/plugin/mappings/commentary.lua similarity index 94% rename from home/vim/after/plugin/mappings/commentary.vim rename to home/vim/after/plugin/mappings/commentary.lua index 219d661..6ed3b89 100644 --- a/home/vim/after/plugin/mappings/commentary.vim +++ b/home/vim/after/plugin/mappings/commentary.lua @@ -1,4 +1,3 @@ -lua << EOF local wk = require("which-key") local keys = { @@ -9,4 +8,3 @@ local keys = { } wk.register(keys, { prefix = "gc" }) -EOF diff --git a/home/vim/after/plugin/mappings/misc.vim b/home/vim/after/plugin/mappings/misc.lua similarity index 91% rename from home/vim/after/plugin/mappings/misc.vim rename to home/vim/after/plugin/mappings/misc.lua index c7fcc8a..6aa25a2 100644 --- a/home/vim/after/plugin/mappings/misc.vim +++ b/home/vim/after/plugin/mappings/misc.lua @@ -1,4 +1,3 @@ -lua << EOF local wk = require("which-key") local keys = { @@ -6,4 +5,3 @@ local keys = { } wk.register(keys, { prefix = "" }) -EOF diff --git a/home/vim/after/plugin/mappings/telescope.vim b/home/vim/after/plugin/mappings/telescope.lua similarity index 96% rename from home/vim/after/plugin/mappings/telescope.vim rename to home/vim/after/plugin/mappings/telescope.lua index eb6363d..0867b36 100644 --- a/home/vim/after/plugin/mappings/telescope.vim +++ b/home/vim/after/plugin/mappings/telescope.lua @@ -1,4 +1,3 @@ -lua << EOF local wk = require("which-key") local telescope_builtin = require("telescope.builtin") @@ -14,5 +13,3 @@ local keys = { } wk.register(keys, { prefix = "" }) -EOF - diff --git a/home/vim/after/plugin/mappings/tree-sitter-textobjects.vim b/home/vim/after/plugin/mappings/tree-sitter-textobjects.lua similarity index 98% rename from home/vim/after/plugin/mappings/tree-sitter-textobjects.vim rename to home/vim/after/plugin/mappings/tree-sitter-textobjects.lua index 9cabd91..631731c 100644 --- a/home/vim/after/plugin/mappings/tree-sitter-textobjects.vim +++ b/home/vim/after/plugin/mappings/tree-sitter-textobjects.lua @@ -1,4 +1,3 @@ -lua << EOF local wk = require("which-key") local motions = { @@ -29,4 +28,3 @@ local objects = { wk.register(motions, { mode = "n" }) wk.register(objects, { mode = "o" }) -EOF diff --git a/home/vim/after/plugin/mappings/unimpaired.vim b/home/vim/after/plugin/mappings/unimpaired.lua similarity index 96% rename from home/vim/after/plugin/mappings/unimpaired.vim rename to home/vim/after/plugin/mappings/unimpaired.lua index 12029cc..f39a8c0 100644 --- a/home/vim/after/plugin/mappings/unimpaired.vim +++ b/home/vim/after/plugin/mappings/unimpaired.lua @@ -1,4 +1,3 @@ -lua << EOF local wk = require("which-key") local keys = { @@ -31,7 +30,7 @@ local keys = { x = "XML encode", y = "C string encode", -- Custom - d = { vim.diagnostic.goto_prev, "Previous diagnostic" } + d = { vim.diagnostic.goto_prev, "Previous diagnostic" }, }, ["]"] = { name = "Next", @@ -61,7 +60,7 @@ local keys = { x = "XML decode", y = "C string decode", -- Custom - d = { vim.diagnostic.goto_next, "Next diagnostic" } + d = { vim.diagnostic.goto_next, "Next diagnostic" }, }, -- Option mappings @@ -125,4 +124,3 @@ local keys = { } wk.register(keys) -EOF diff --git a/home/vim/default.nix b/home/vim/default.nix index 1ac9652..1aad3c1 100644 --- a/home/vim/default.nix +++ b/home/vim/default.nix @@ -54,8 +54,6 @@ in vim-beancount vim-jsonnet vim-nix - vim-pandoc - vim-pandoc-syntax vim-toml # General enhancements diff --git a/home/vim/lua/ambroisie/lsp.lua b/home/vim/lua/ambroisie/lsp.lua index 254d243..b682d27 100644 --- a/home/vim/lua/ambroisie/lsp.lua +++ b/home/vim/lua/ambroisie/lsp.lua @@ -39,7 +39,7 @@ M.on_attach = function(client, bufnr) -- * nothing displayed -- * single diagnostic at the end of the line (`virtual_text`) -- * full diagnostics using virtual text (`virtual_lines`) - local text = vim.diagnostic.config().virtual_text + local text = vim.diagnostic.config().virtual_text local lines = vim.diagnostic.config().virtual_lines -- Text -> Lines transition @@ -63,7 +63,7 @@ M.on_attach = function(client, bufnr) end local function show_buffer_diagnostics() - vim.diagnostic.open_float(nil, { scope="buffer" }) + vim.diagnostic.open_float(nil, { scope = "buffer" }) end local keys = { @@ -94,5 +94,4 @@ M.on_attach = function(client, bufnr) wk.register(keys, { buffer = bufnr }) end - return M diff --git a/home/vim/lua/ambroisie/utils.lua b/home/vim/lua/ambroisie/utils.lua index ca6de28..984c730 100644 --- a/home/vim/lua/ambroisie/utils.lua +++ b/home/vim/lua/ambroisie/utils.lua @@ -17,7 +17,9 @@ end ---@param cmd string? command to check ---@return fun(cmd: string): boolean executable M.is_executable_condition = function(cmd) - return function() return M.is_executable(cmd) end + return function() + return M.is_executable(cmd) + end end -- whether or not we are currently in an SSH connection diff --git a/home/vim/plugin/abbreviations.lua b/home/vim/plugin/abbreviations.lua new file mode 100644 index 0000000..f6d6ac3 --- /dev/null +++ b/home/vim/plugin/abbreviations.lua @@ -0,0 +1,9 @@ +local abbreviations = { + -- A few things that are hard to write in ASCII + ["(R)"] = "©", + ["(TM)"] = "™", +} + +for text, result in pairs(abbreviations) do + vim.cmd.abbreviate(text, result) +end diff --git a/home/vim/plugin/abbreviations.vim b/home/vim/plugin/abbreviations.vim deleted file mode 100644 index 5d36434..0000000 --- a/home/vim/plugin/abbreviations.vim +++ /dev/null @@ -1,5 +0,0 @@ -" A few useful sets of abbreviations - -" A few things that are hard to write in ASCII -abbreviate (R) © -abbreviate (TM) ™ diff --git a/home/vim/plugin/numbertoggle.lua b/home/vim/plugin/numbertoggle.lua new file mode 100644 index 0000000..1f97fc8 --- /dev/null +++ b/home/vim/plugin/numbertoggle.lua @@ -0,0 +1,23 @@ +-- Show lines numbers +vim.opt.number = true + +local numbertoggle = vim.api.nvim_create_augroup("numbertoggle", { clear = true }) + +-- Toggle numbers between relative and absolute when changing buffers +vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "InsertLeave", "WinEnter" }, { + pattern = "*", + group = numbertoggle, + command = "if &nu | setlocal rnu | endif", +}) +vim.api.nvim_create_autocmd({ "BufLeave", "FocusLost", "InsertEnter", "WinLeave" }, { + pattern = "*", + group = numbertoggle, + command = "if &nu | setlocal nornu | endif", +}) + +-- Never show the sign column in a terminal buffer +vim.api.nvim_create_autocmd({ "TermOpen" }, { + pattern = "*", + group = numbertoggle, + command = "setlocal nonu nornu", +}) diff --git a/home/vim/plugin/numbertoggle.vim b/home/vim/plugin/numbertoggle.vim deleted file mode 100644 index d9a969d..0000000 --- a/home/vim/plugin/numbertoggle.vim +++ /dev/null @@ -1,13 +0,0 @@ -" Idea for toggling taken from jeffkreeftmeijer - -" Show line numbers -set number - -augroup numbertoggle - autocmd! - " Toggle numbers between relative and absolute when changing buffers - autocmd BufEnter,FocusGained,InsertLeave,WinEnter * if &nu | set rnu | endif - autocmd BufLeave,FocusLost,InsertEnter,WinLeave * if &nu | set nornu | endif - " Disable line numbers and relative line numbers in terminal - autocmd TermOpen * setlocal nonu nornu -augroup END diff --git a/home/vim/plugin/settings/completion.vim b/home/vim/plugin/settings/completion.lua similarity index 91% rename from home/vim/plugin/settings/completion.vim rename to home/vim/plugin/settings/completion.lua index 43f6795..2d150e8 100644 --- a/home/vim/plugin/settings/completion.vim +++ b/home/vim/plugin/settings/completion.lua @@ -1,7 +1,6 @@ -" Show completion menu in all cases, and don't select anything -set completeopt=menu,menuone,noselect +-- Show completion menu in all cases, and don't select anything +vim.opt.completeopt = { "menu", "menuone", "noselect" } -lua << EOF local cmp = require("cmp") local cmp_under_comparator = require("cmp-under-comparator") local luasnip = require("luasnip") @@ -29,7 +28,7 @@ cmp.setup({ end, [""] = cmp.mapping(cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), { "i", "c" }), [""] = cmp.mapping(cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), { "i", "c" }), - [""] = cmp.mapping.scroll_docs(-5), + [""] = cmp.mapping.scroll_docs(-5), [""] = cmp.mapping.scroll_docs(5), [""] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = false }), [""] = cmp.mapping.abort(), @@ -61,4 +60,3 @@ cmp.setup({ ghost_text = true, }, }) -EOF diff --git a/home/vim/plugin/settings/dressing.vim b/home/vim/plugin/settings/dressing.lua similarity index 88% rename from home/vim/plugin/settings/dressing.vim rename to home/vim/plugin/settings/dressing.lua index 9508126..3928a59 100644 --- a/home/vim/plugin/settings/dressing.vim +++ b/home/vim/plugin/settings/dressing.lua @@ -1,8 +1,6 @@ -lua << EOF local dressing = require("dressing") dressing.setup({ -- Use a relative prompt size prefer_width = 0.4, }) -EOF diff --git a/home/vim/plugin/settings/fastfold.lua b/home/vim/plugin/settings/fastfold.lua new file mode 100644 index 0000000..78ee937 --- /dev/null +++ b/home/vim/plugin/settings/fastfold.lua @@ -0,0 +1,5 @@ +-- Intercept all fold commands +-- stylua: ignore +vim.g.fastfold_fold_command_suffixes = { + "x", "X", "a", "A", "o", "O", "c", "C", "r", "R", "m", "M", "i", "n", "N", +} diff --git a/home/vim/plugin/settings/fastfold.vim b/home/vim/plugin/settings/fastfold.vim deleted file mode 100644 index a1f1787..0000000 --- a/home/vim/plugin/settings/fastfold.vim +++ /dev/null @@ -1,5 +0,0 @@ -" Intercept all fold commands -let g:fastfold_fold_command_suffixes=[ - \ 'x', 'X', 'a', 'A', 'o', 'O', 'c', 'C', - \ 'r', 'R', 'm', 'M', 'i', 'n', 'N' - \ ] diff --git a/home/vim/plugin/settings/git.vim b/home/vim/plugin/settings/git.lua similarity index 97% rename from home/vim/plugin/settings/git.vim rename to home/vim/plugin/settings/git.lua index e67197f..4dbebca 100644 --- a/home/vim/plugin/settings/git.vim +++ b/home/vim/plugin/settings/git.lua @@ -1,5 +1,4 @@ -lua << EOF -local gitsigns = require('gitsigns') +local gitsigns = require("gitsigns") local wk = require("which-key") gitsigns.setup({ @@ -14,13 +13,13 @@ local keys = { ["[c"] = { "&diff ? '[c' : 'Gitsigns prev_hunk'", "Previous hunk/diff", expr = true }, ["]c"] = { "&diff ? ']c' : 'Gitsigns next_hunk'", "Next hunk/diff", expr = true }, - -- Commands ["g"] = { name = "Git", -- Actions b = { gitsigns.toggle_current_line_blame, "Toggle blame virtual text" }, d = { gitsigns.diffthis, "Diff buffer" }, + -- stylua: ignore D = { function() gitsigns.diffthis("~") end, "Diff buffer against last commit" }, g = { "Git", "Git status" }, h = { gitsigns.toggle_deleted, "Show deleted hunks" }, @@ -57,4 +56,3 @@ local visual = { wk.register(keys, { buffer = bufnr }) wk.register(objects, { buffer = bufnr, mode = "o" }) wk.register(visual, { buffer = bufnr, mode = "x" }) -EOF diff --git a/home/vim/plugin/settings/lspconfig.vim b/home/vim/plugin/settings/lspconfig.lua similarity index 98% rename from home/vim/plugin/settings/lspconfig.vim rename to home/vim/plugin/settings/lspconfig.lua index 04afafa..45be269 100644 --- a/home/vim/plugin/settings/lspconfig.vim +++ b/home/vim/plugin/settings/lspconfig.lua @@ -1,4 +1,3 @@ -lua << EOF local lspconfig = require("lspconfig") local lsp = require("ambroisie.lsp") local utils = require("ambroisie.utils") @@ -44,4 +43,3 @@ if utils.is_executable("rust-analyzer") then on_attach = lsp.on_attach, }) end -EOF diff --git a/home/vim/plugin/settings/lualine.vim b/home/vim/plugin/settings/lualine.lua similarity index 98% rename from home/vim/plugin/settings/lualine.vim rename to home/vim/plugin/settings/lualine.lua index 93c38bb..fdaccda 100644 --- a/home/vim/plugin/settings/lualine.vim +++ b/home/vim/plugin/settings/lualine.lua @@ -1,4 +1,3 @@ -lua << EOF local lualine = require("lualine") local utils = require("ambroisie.utils") @@ -60,4 +59,3 @@ lualine.setup({ "quickfix", }, }) -EOF diff --git a/home/vim/plugin/settings/luasnip.vim b/home/vim/plugin/settings/luasnip.lua similarity index 77% rename from home/vim/plugin/settings/luasnip.vim rename to home/vim/plugin/settings/luasnip.lua index 7d81a11..80309d7 100644 --- a/home/vim/plugin/settings/luasnip.vim +++ b/home/vim/plugin/settings/luasnip.lua @@ -1,3 +1 @@ -lua << EOF require("luasnip.loaders.from_vscode").lazy_load() -EOF diff --git a/home/vim/plugin/settings/null-ls.vim b/home/vim/plugin/settings/null-ls.lua similarity index 98% rename from home/vim/plugin/settings/null-ls.vim rename to home/vim/plugin/settings/null-ls.lua index b2102bd..8446683 100644 --- a/home/vim/plugin/settings/null-ls.vim +++ b/home/vim/plugin/settings/null-ls.lua @@ -1,4 +1,3 @@ -lua << EOF local null_ls = require("null-ls") local lsp = require("ambroisie.lsp") local utils = require("ambroisie.utils") @@ -66,7 +65,6 @@ null_ls.register({ }), }) - -- Shell (non-POSIX) null_ls.register({ null_ls.builtins.code_actions.shellcheck.with({ @@ -99,7 +97,7 @@ null_ls.register({ -- Shell (POSIX) null_ls.register({ null_ls.builtins.code_actions.shellcheck.with({ - -- Restrict to POSIX sh + -- Restrict to POSIX sh filetypes = { "sh" }, -- Only used if available condition = utils.is_executable_condition("shellcheck"), @@ -122,4 +120,3 @@ null_ls.register({ condition = utils.is_executable_condition("shfmt"), }), }) -EOF diff --git a/home/vim/plugin/settings/pandoc.vim b/home/vim/plugin/settings/pandoc.vim deleted file mode 100644 index 71b750c..0000000 --- a/home/vim/plugin/settings/pandoc.vim +++ /dev/null @@ -1,20 +0,0 @@ -" Which code-block languages should I expect to be high-lighted. -let g:pandoc#syntax#codeblocks#embeds#langs=[ - \ "bash=sh", - \ "c", - \ "cpp", - \ "go", - \ "haskell", - \ "python", - \ "rust", - \ "sh", - \ "vim", - \ "yaml", - \ "tex", - \ "toml", - \ "perl", - \ "json", - \ "latex=tex", - \ "make", - \ "makefile=make", - \ ] diff --git a/home/vim/plugin/settings/ssh.lua b/home/vim/plugin/settings/ssh.lua index 3af7b61..992a707 100644 --- a/home/vim/plugin/settings/ssh.lua +++ b/home/vim/plugin/settings/ssh.lua @@ -3,15 +3,15 @@ if not require("ambroisie.utils").is_ssh() then end local function copy(lines, _) - require('osc52').copy(table.concat(lines, '\n')) + require("osc52").copy(table.concat(lines, "\n")) end local function paste() - return {vim.fn.split(vim.fn.getreg(''), '\n'), vim.fn.getregtype('')} + return { vim.fn.split(vim.fn.getreg(""), "\n"), vim.fn.getregtype("") } end vim.g.clipboard = { - name = 'osc52', - copy = {['+'] = copy, ['*'] = copy}, - paste = {['+'] = paste, ['*'] = paste}, + name = "osc52", + copy = { ["+"] = copy, ["*"] = copy }, + paste = { ["+"] = paste, ["*"] = paste }, } diff --git a/home/vim/plugin/settings/surround.vim b/home/vim/plugin/settings/surround.lua similarity index 83% rename from home/vim/plugin/settings/surround.vim rename to home/vim/plugin/settings/surround.lua index e5eb81b..3585a12 100644 --- a/home/vim/plugin/settings/surround.vim +++ b/home/vim/plugin/settings/surround.lua @@ -1,5 +1,3 @@ -lua << EOF require("nvim-surround").setup({ -- No configuration at the moment }) -EOF diff --git a/home/vim/plugin/settings/telescope.vim b/home/vim/plugin/settings/telescope.lua similarity index 93% rename from home/vim/plugin/settings/telescope.vim rename to home/vim/plugin/settings/telescope.lua index fc2c5fb..4548ec5 100644 --- a/home/vim/plugin/settings/telescope.vim +++ b/home/vim/plugin/settings/telescope.lua @@ -1,4 +1,3 @@ -lua << EOF local telescope = require("telescope") telescope.setup({ @@ -8,8 +7,8 @@ telescope.setup({ [""] = "which_key", -- I want the normal readline mappings rather than scrolling [""] = false, - } - } + }, + }, }, extensions = { fzf = { @@ -23,4 +22,3 @@ telescope.setup({ telescope.load_extension("fzf") telescope.load_extension("lsp_handlers") -EOF diff --git a/home/vim/plugin/settings/tree-sitter.vim b/home/vim/plugin/settings/tree-sitter.lua similarity index 99% rename from home/vim/plugin/settings/tree-sitter.vim rename to home/vim/plugin/settings/tree-sitter.lua index 1204185..0d84abd 100644 --- a/home/vim/plugin/settings/tree-sitter.vim +++ b/home/vim/plugin/settings/tree-sitter.lua @@ -1,4 +1,3 @@ -lua << EOF local ts_config = require("nvim-treesitter.configs") ts_config.setup({ highlight = { @@ -55,4 +54,3 @@ ts_config.setup({ }, }, }) -EOF diff --git a/home/vim/plugin/settings/which-key.vim b/home/vim/plugin/settings/which-key.lua similarity index 74% rename from home/vim/plugin/settings/which-key.vim rename to home/vim/plugin/settings/which-key.lua index 505bdc4..2edfd70 100644 --- a/home/vim/plugin/settings/which-key.vim +++ b/home/vim/plugin/settings/which-key.lua @@ -1,4 +1,2 @@ -lua << EOF local wk = require("which-key") wk.setup() -EOF diff --git a/home/vim/plugin/signtoggle.lua b/home/vim/plugin/signtoggle.lua new file mode 100644 index 0000000..d6a26e2 --- /dev/null +++ b/home/vim/plugin/signtoggle.lua @@ -0,0 +1,20 @@ +local signtoggle = vim.api.nvim_create_augroup("signtoggle", { clear = true }) + +-- Only show sign column for the currently focused buffer +vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "WinEnter" }, { + pattern = "*", + group = signtoggle, + command = "setlocal signcolumn=yes", +}) +vim.api.nvim_create_autocmd({ "BufLeave", "FocusLost", "WinLeave" }, { + pattern = "*", + group = signtoggle, + command = "setlocal signcolumn=yes", +}) + +-- Never show the sign column in a terminal buffer +vim.api.nvim_create_autocmd({ "TermOpen" }, { + pattern = "*", + group = signtoggle, + command = "setlocal signcolumn=no", +}) diff --git a/home/vim/plugin/signtoggle.vim b/home/vim/plugin/signtoggle.vim deleted file mode 100644 index c2f0183..0000000 --- a/home/vim/plugin/signtoggle.vim +++ /dev/null @@ -1,8 +0,0 @@ -augroup signtoggle - autocmd! - " Only show the sign column for the current focused buffer - autocmd BufEnter,FocusGained,WinEnter * set signcolumn=yes - autocmd BufLeave,FocusLost,WinLeave * set signcolumn=no - " Disable the sign column in terminal - autocmd TermOpen * setlocal signcolumn=no -augroup END