diff options
Diffstat (limited to '.config/nvim/lua/core')
-rw-r--r-- | .config/nvim/lua/core/autocmds.lua | 58 | ||||
-rw-r--r-- | .config/nvim/lua/core/cmp.lua | 3 | ||||
-rw-r--r-- | .config/nvim/lua/core/commands.lua | 1 | ||||
-rw-r--r-- | .config/nvim/lua/core/log.lua | 2 | ||||
-rw-r--r-- | .config/nvim/lua/core/nvimtree.lua | 2 | ||||
-rw-r--r-- | .config/nvim/lua/core/which-key.lua | 4 |
6 files changed, 66 insertions, 4 deletions
diff --git a/.config/nvim/lua/core/autocmds.lua b/.config/nvim/lua/core/autocmds.lua index 1f50308..ecdcf36 100644 --- a/.config/nvim/lua/core/autocmds.lua +++ b/.config/nvim/lua/core/autocmds.lua @@ -1,4 +1,5 @@ local M = {} +local Log = require "core.log" --- Load the default set of autogroups and autocommands. function M.load_augroups() @@ -62,6 +63,63 @@ function M.load_augroups() } end +local get_format_on_save_opts = function() + local defaults = require("config.defaults").format_on_save + -- accept a basic boolean `format_on_save=true` + if type(options.format_on_save) ~= "table" then + return defaults + end + + return { + pattern = options.format_on_save.pattern or defaults.pattern, + timeout = options.format_on_save.timeout or defaults.timeout, + } +end + +function M.enable_format_on_save(opts) + local fmd_cmd = string.format( + ":silent lua vim.lsp.buf.formatting_sync({}, %s)", + opts.timeout_ms + ) + M.define_augroups { + format_on_save = { { "BufWritePre", opts.pattern, fmd_cmd } }, + } + Log:debug "enabled format-on-save" +end + +function M.disable_format_on_save() + M.remove_augroup "format_on_save" + Log:debug "disabled format-on-save" +end + +function M.configure_format_on_save() + if options.format_on_save then + if vim.fn.exists "#format_on_save#BufWritePre" == 1 then + M.remove_augroup "format_on_save" + Log:debug "reloading format-on-save configuration" + end + local opts = get_format_on_save_opts() + M.enable_format_on_save(opts) + else + M.disable_format_on_save() + end +end + +function M.toggle_format_on_save() + if vim.fn.exists "#format_on_save#BufWritePre" == 0 then + local opts = get_format_on_save_opts() + M.enable_format_on_save(opts) + else + M.disable_format_on_save() + end +end + +function M.remove_augroup(name) + if vim.fn.exists("#" .. name) == 1 then + vim.cmd("au! " .. name) + end +end + function M.define_augroups(definitions) -- {{{1 -- Create autocommand groups based on the passed definitions -- diff --git a/.config/nvim/lua/core/cmp.lua b/.config/nvim/lua/core/cmp.lua index 36d85fb..fe4119f 100644 --- a/.config/nvim/lua/core/cmp.lua +++ b/.config/nvim/lua/core/cmp.lua @@ -284,6 +284,9 @@ M.config = function() ["<C-e>"] = cmp.mapping.abort(), ["<CR>"] = cmp.mapping(function(fallback) if cmp.visible() and cmp.confirm(options.builtin.cmp.confirm_opts) then + if jumpable() then + luasnip.jump(1) + end return end diff --git a/.config/nvim/lua/core/commands.lua b/.config/nvim/lua/core/commands.lua index ce635ad..bb22dea 100644 --- a/.config/nvim/lua/core/commands.lua +++ b/.config/nvim/lua/core/commands.lua @@ -16,6 +16,7 @@ M.defaults = { [[ command! NvimUpdate lua require('bootstrap').update() ]], [[ command! NvimSyncCorePlugins lua require('plugin-loader'):sync_core_plugins() ]], [[ command! NvimReload lua require('config'):reload() ]], + [[ command! NvimToggleFormatOnSave lua require('core.autocmds').toggle_format_on_save() ]], } M.load = function(commands) diff --git a/.config/nvim/lua/core/log.lua b/.config/nvim/lua/core/log.lua index c44808f..815aeb1 100644 --- a/.config/nvim/lua/core/log.lua +++ b/.config/nvim/lua/core/log.lua @@ -1,6 +1,6 @@ local Log = {} -local logfile = string.format("%s/%s.log", vim.fn.stdpath "cache", "nvim") +local logfile = string.format("%s/%s.log", get_cache_dir(), "nvim") Log.levels = { TRACE = 1, diff --git a/.config/nvim/lua/core/nvimtree.lua b/.config/nvim/lua/core/nvimtree.lua index 08f5605..2ca2fb1 100644 --- a/.config/nvim/lua/core/nvimtree.lua +++ b/.config/nvim/lua/core/nvimtree.lua @@ -24,7 +24,7 @@ function M.config() view = { width = 30, side = "left", - auto_resize = false, + auto_resize = true, mappings = { custom_only = false, }, diff --git a/.config/nvim/lua/core/which-key.lua b/.config/nvim/lua/core/which-key.lua index ccf0c2d..85f766c 100644 --- a/.config/nvim/lua/core/which-key.lua +++ b/.config/nvim/lua/core/which-key.lua @@ -61,7 +61,7 @@ M.config = function() -- NOTE: Prefer using : over <cmd> as the latter avoids going back in normal-mode. -- see https://neovim.io/doc/user/map.html#:map-cmd vmappings = { - ["/"] = { "<ESC><CMD>lua ___comment_gc(vim.fn.visualmode())<CR>", "Comment" }, + ["k"] = { "<ESC><CMD>lua ___comment_gc(vim.fn.visualmode())<CR>", "Comment" }, }, mappings = { ["w"] = { "<cmd>w!<CR>", "Save" }, @@ -69,7 +69,7 @@ M.config = function() ["k"] = { "<cmd>lua require('Comment').toggle()<CR>", "Comment" }, ["c"] = { "<cmd>BufferClose!<CR>", "Close Buffer" }, ["f"] = { "<cmd>Telescope find_files<CR>", "Find File" }, - ["h"] = { "<cmd>nohlsearch<CR>", "No Highlight" }, + ["n"] = { "<cmd>nohlsearch<CR>", "No Highlight" }, b = { name = "Buffers", j = { "<cmd>BufferPick<cr>", "Jump" }, |