summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/core
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/core')
-rw-r--r--.config/nvim/lua/core/autocmds.lua58
-rw-r--r--.config/nvim/lua/core/cmp.lua3
-rw-r--r--.config/nvim/lua/core/commands.lua1
-rw-r--r--.config/nvim/lua/core/log.lua2
-rw-r--r--.config/nvim/lua/core/nvimtree.lua2
-rw-r--r--.config/nvim/lua/core/which-key.lua4
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" },