diff --git a/.config/nvim/lua/lazyvim/config/keymaps.lua b/.config/nvim/lua/lazyvim/config/keymaps.lua index 2e48020..196fde4 100644 --- a/.config/nvim/lua/lazyvim/config/keymaps.lua +++ b/.config/nvim/lua/lazyvim/config/keymaps.lua @@ -48,9 +48,6 @@ map("n", "", "zz", opts) -- Easy exit insert mode map("i", "jk", "", opts) --- Paste -map("i", "", '"+y', opts) - -- Save map("i", "", ":wa", opts) @@ -62,33 +59,4 @@ map("v", ">", ">gv", opts) map("v", "", ":m .+1==V", opts) map("v", "", ":m .-2==V", opts) -local util = require("lazyvim.functions") - --- lazygit -vim.keymap.set("n", "gg", function() - require("lazyvim.util").float_term({ "lazygit" }) -end, { desc = "Lazygit (cwd)" }) -vim.keymap.set("n", "gG", function() - util.float_term({ "lazygit" }, { cwd = util.get_root() }) -end, { desc = "Lazygit (root dir)" }) - --- toggle options -vim.keymap.set("n", "of", require("lazyvim.plugins.lsp.format").toggle, { desc = "Toggle format on Save" }) -vim.keymap.set("n", "os", function() - util.toggle("spell") -end, { desc = "Toggle Spelling" }) -vim.keymap.set("n", "ow", function() - util.toggle("wrap") -end, { desc = "Toggle Word Wrap" }) -vim.keymap.set("n", "on", function() - util.toggle("relativenumber", true) - util.toggle("number") -end, { desc = "Toggle Line Numbers" }) -vim.keymap.set("n", "od", util.toggle_diagnostics, { desc = "Toggle Diagnostics" }) -local conceallevel = vim.o.conceallevel > 0 and vim.o.conceallevel or 3 -vim.keymap.set("n", "oc", function() - util.toggle("conceallevel", false, { 0, conceallevel }) -end, { desc = "Toggle Conceal" }) - -vim.keymap.set("n", "ll", "lopen", { desc = "Open Location List" }) -vim.keymap.set("n", "lq", "copen", { desc = "Open Quickfix List" }) +vim.keymap.set("t", "", "", { desc = "Enter Normal Mode" }) diff --git a/.config/nvim/lua/lazyvim/functions.lua b/.config/nvim/lua/lazyvim/functions.lua index 87651f6..eff566e 100644 --- a/.config/nvim/lua/lazyvim/functions.lua +++ b/.config/nvim/lua/lazyvim/functions.lua @@ -82,6 +82,17 @@ function M.toggle(option, silent, values) end end +-- FIXME: create a togglable termiminal +-- Opens a floating terminal (interactive by default) +---@param cmd? string[]|string +---@param opts? LazyCmdOptions|{interactive?:boolean} +function M.float_term(cmd, opts) + opts = vim.tbl_deep_extend("force", { + size = { width = 0.9, height = 0.9 }, + }, opts or {}) + require("lazy.util").float_term(cmd, opts) +end + local enabled = true function M.toggle_diagnostics() enabled = not enabled diff --git a/.config/nvim/lua/lazyvim/plugins/snippets.lua b/.config/nvim/lua/lazyvim/plugins/snippets.lua index 0259b6f..6b63b4a 100644 --- a/.config/nvim/lua/lazyvim/plugins/snippets.lua +++ b/.config/nvim/lua/lazyvim/plugins/snippets.lua @@ -18,7 +18,6 @@ return { return require("luasnip").jumpable(1) and "luasnip-jump-next" or "" end, expr = true, - remap = true, silent = true, mode = "i", }, diff --git a/.config/nvim/lua/lazyvim/plugins/treesitter.lua b/.config/nvim/lua/lazyvim/plugins/treesitter.lua index 85bdf05..24c6350 100644 --- a/.config/nvim/lua/lazyvim/plugins/treesitter.lua +++ b/.config/nvim/lua/lazyvim/plugins/treesitter.lua @@ -10,9 +10,21 @@ return { autopairs = { enable = true }, indent = { enable = true }, context_commentstring = { enable = true, enable_autocmd = false }, - ensure_installed = "all", + ensure_installed = { + "c_sharp", + "lua", + "c", + "vim", + "help", + "javascript", + "typescript", + "sql", + "html", + "jsonc", + }, + auto_install = true, }, - config = function(plugin, opts) + config = function(_, opts) require("nvim-treesitter.configs").setup(opts) end, }, diff --git a/.config/nvim/lua/lazyvim/plugins/whichkey.lua b/.config/nvim/lua/lazyvim/plugins/whichkey.lua index 82f9310..a9cbbb1 100644 --- a/.config/nvim/lua/lazyvim/plugins/whichkey.lua +++ b/.config/nvim/lua/lazyvim/plugins/whichkey.lua @@ -24,22 +24,24 @@ return { scroll_down = "", -- binding to scroll down inside the popup scroll_up = "", -- binding to scroll up inside the popup }, - -- window = { - -- border = "rounded", -- none, single, double, shadow - -- position = "bottom", -- bottom, top - -- margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] - -- padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left] - -- winblend = 0, - -- }, - -- layout = { - -- height = { min = 4, max = 25 }, -- min and max height of the columns - -- width = { min = 20, max = 50 }, -- min and max width of the columns - -- spacing = 3, -- spacing between columns - -- align = "center", -- align columns left, center or right - -- }, + window = { + border = "rounded", -- none, single, double, shadow + position = "bottom", -- bottom, top + margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] + padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left] + winblend = 0, + }, + layout = { + height = { min = 4, max = 25 }, -- min and max height of the columns + width = { min = 20, max = 50 }, -- min and max width of the columns + spacing = 3, -- spacing between columns + align = "center", -- align columns left, center or right + }, }, config = function(_, opts) local whichkey = require("which-key") + local Util = require("lazyvim.functions") + whichkey.setup(opts) local leader_opts = { @@ -60,16 +62,13 @@ return { }) local leader_mappings = { - l = { name = "+lsp" }, b = { name = "+buffer" }, r = { name = "+replace" }, - f = { name = "+file" }, s = { name = "+search" }, h = { name = "+help" }, - g = { name = "+git" }, + gh = { name = "+hunks" }, t = { name = "+todo" }, N = { name = "+noice" }, - o = { name = "+option" }, H = { "split", "Split" }, V = { "vsplit", "V Split" }, @@ -81,12 +80,93 @@ return { ["'"] = { "close", "Close split" }, u = { "UndotreeToggle", "Undo Tree" }, + f = { + name = "+file", + n = { "enew", "New File" }, + t = { + function() + Util.float_term(nil, { cwd = Util.get_root() }) + end, + "Terminal (rood dir)", + }, + T = { + function() + Util.float_term() + end, + "Terminal (cwd)", + }, + }, + + l = { + name = "+lsp", + l = { "lopen", "Open Location List" }, + q = { "copen", "Open Quickfix List" }, + }, + C = { name = "Compiler", c = { "w! | !compiler %", "Compile File" }, b = { "w! | !pandoc % -t beamer -o presentation.pdf", "Beamer Presentation" }, }, + o = { + name = "+option", + f = { + function() + require("lazyvim.plugins.lsp.format").toggle() + end, + "Toggle format on save", + }, + s = { + function() + Util.toggle("spell") + end, + "Toggle spelling", + }, + w = { + function() + Util.toggle("wrap") + end, + "Toggle word wrap", + }, + n = { + function() + Util.toggle("relativenumber", true) + Util.toggle("number") + end, + "Toggle line numbers", + }, + d = { + function() + Util.toggle_diagnostics() + end, + "Toggle Diagnostics", + }, + c = { + function() + local conceallevel = vim.o.conceallevel > 0 and vim.o.conceallevel or 3 + Util.toggle("conceallevel", false, { 0, conceallevel }) + end, + "Toggle conceal", + }, + }, + + g = { + name = "+git", + g = { + function() + Util.float_term({ "lazygit" }) + end, + "Lazygit (cwd)", + }, + G = { + function() + Util.float_term({ "lazygit" }, { cwd = Util.get_root() }) + end, + "Lazygit (root dir)", + }, + }, + -- o = { -- name = "Options", -- c = { "lua vim.g.cmp_active=false", "Completion off" },