From 1cac97e9a9188aba86b306b304b1e3805d14c728 Mon Sep 17 00:00:00 2001 From: alemi Date: Sun, 16 Apr 2023 12:07:03 +0200 Subject: [PATCH] feat: proper Format command --- lua/keybinds.lua | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lua/keybinds.lua b/lua/keybinds.lua index 1c56cc0..61a1e16 100644 --- a/lua/keybinds.lua +++ b/lua/keybinds.lua @@ -94,7 +94,20 @@ function KEYBINDS:set_lsp_keys(opts) vim.keymap.set('n', '', vim.diagnostic.open_float, opts) vim.keymap.set('n', '', vim.diagnostic.open_float, opts) -- fallback for windows -- It's not really a keybind but whatever - vim.api.nvim_create_user_command('Format', ':lua vim.lsp.buf.formatting()', {}) -- TODO if function is passed directly, it doesn't work! + vim.api.nvim_create_user_command( + 'Format', + function(args) + if args.range == 0 then + vim.lsp.buf.format({ async = args.bang }) + else + local range = {} + range['start'] = { args.line1, 0 } + range['end'] = { args.line2, 0 } + vim.lsp.buf.format({async=not args.bang, range=range}) + end + end, + {bang=true, range=2} + ) vim.keymap.set('n', '', ':ClangdSwitchSourceHeader', {}) end