summaryrefslogtreecommitdiff
path: root/.config/nvim/lua
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-08-04 00:53:58 +0300
committerKyren223 <ulmliad223@gmail.com>2024-08-04 00:53:58 +0300
commit2fb3e86bcf30f86e458829dcb5cc67676e1dfa0f (patch)
treef80befb3e9168c6020685a2a087661a31ed8e9ac /.config/nvim/lua
parent7023c01d4e60b5c40cd2b8dde1e48b5d8f3fdcd5 (diff)
feat(nvim): added some user commands and global functions for utility
Diffstat (limited to '.config/nvim/lua')
-rw-r--r--.config/nvim/lua/custom/config/autocmds.lua16
-rw-r--r--.config/nvim/lua/custom/config/commands.lua50
-rw-r--r--.config/nvim/lua/custom/globals.lua25
3 files changed, 75 insertions, 16 deletions
diff --git a/.config/nvim/lua/custom/config/autocmds.lua b/.config/nvim/lua/custom/config/autocmds.lua
deleted file mode 100644
index a9a9dc0..0000000
--- a/.config/nvim/lua/custom/config/autocmds.lua
+++ /dev/null
@@ -1,16 +0,0 @@
-vim.api.nvim_create_autocmd('TextYankPost', {
- desc = 'Highlight when yanking text',
- group = vim.api.nvim_create_augroup('highlight-yank', { clear = true }),
- callback = function()
- vim.highlight.on_yank()
- end,
-})
-
-vim.api.nvim_create_autocmd('BufEnter', {
- desc = 'Disable newlines on commented lines from continuing the comment',
- group = vim.api.nvim_create_augroup('disable-comments-continuation', { clear = true }),
- callback = function()
- -- vim.opt_local.formatoptions:remove('r') -- no comments on enter
- vim.opt_local.formatoptions:remove('o') -- no comments on `o` or `O`
- end,
-})
diff --git a/.config/nvim/lua/custom/config/commands.lua b/.config/nvim/lua/custom/config/commands.lua
new file mode 100644
index 0000000..9cec025
--- /dev/null
+++ b/.config/nvim/lua/custom/config/commands.lua
@@ -0,0 +1,50 @@
+vim.api.nvim_create_autocmd('TextYankPost', {
+ desc = 'Highlight when yanking text',
+ group = vim.api.nvim_create_augroup('highlight-yank', { clear = true }),
+ callback = function()
+ vim.highlight.on_yank()
+ end,
+})
+
+vim.api.nvim_create_autocmd('BufEnter', {
+ desc = 'Disable newlines on commented lines from continuing the comment',
+ group = vim.api.nvim_create_augroup('disable-comments-continuation', { clear = true }),
+ callback = function()
+ -- vim.opt_local.formatoptions:remove('r') -- no comments on enter
+ vim.opt_local.formatoptions:remove('o') -- no comments on `o` or `O`
+ end,
+})
+
+vim.api.nvim_create_user_command('Format', function(args)
+ local range = nil
+ if args.count ~= -1 then
+ local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1]
+ range = {
+ start = { args.line1, 0 },
+ ['end'] = { args.line2, end_line:len() },
+ }
+ end
+ require('conform').format({ async = true, lsp_format = 'fallback', range = range })
+end, { range = true })
+
+vim.api.nvim_create_user_command('FormatToggle', function(args)
+ local is_global = not args.bang
+ if is_global then
+ vim.g.disable_autoformat = not vim.g.disable_autoformat
+ if vim.g.disable_autoformat then
+ Notify('Autoformat-on-save disabled globally', 'info')
+ else
+ Notify('Autoformat-on-save enabled globally', 'info')
+ end
+ else
+ vim.b.disable_autoformat = not vim.b.disable_autoformat
+ if vim.b.disable_autoformat then
+ Notify('Autoformat-on-save disabled for this buffer', 'info')
+ else
+ Notify('Autoformat-on-save enabled for this buffer', 'info')
+ end
+ end
+end, {
+ desc = 'Toggle autoformat-on-save',
+ bang = true,
+})
diff --git a/.config/nvim/lua/custom/globals.lua b/.config/nvim/lua/custom/globals.lua
new file mode 100644
index 0000000..ccadddd
--- /dev/null
+++ b/.config/nvim/lua/custom/globals.lua
@@ -0,0 +1,25 @@
+function Notify(title, message, level)
+ local notify = require('notify')
+ notify(message, level, { title = title })
+end
+
+function ToggleWrap()
+ if vim.wo.wrap then
+ vim.wo.wrap = false
+ Notify('Wrap disabled', 'info')
+ else
+ vim.wo.wrap = true
+ vim.wo.number = false
+ Notify('Wrap enabled', 'info')
+ end
+end
+
+function ToggleInlayHints()
+ local is_enabled = vim.lsp.inlay_hint.is_enabled({})
+ vim.lsp.inlay_hint.enable(not is_enabled)
+ if is_enabled then
+ Notify('Inlay Hints disabled', 'info')
+ else
+ Notify('Inlay Hints enabled', 'info')
+ end
+end