diff --git a/lua/custom/plugins/99-keymaps.lua b/lua/custom/plugins/99-keymaps.lua index cd21e42f..2e0f922d 100644 --- a/lua/custom/plugins/99-keymaps.lua +++ b/lua/custom/plugins/99-keymaps.lua @@ -206,16 +206,12 @@ vim.keymap.set('i', '', ':wa', { }) -- npm / yarn operation -vim.keymap.set('n', 'rb', function() - RunCommandAndNotify 'npm run build' -end, { +vim.keymap.set('n', 'rb', function() RunCommandAndNotify 'npm run build' end, { noremap = true, silent = false, desc = '[R]un [B]uild', }) -vim.keymap.set('n', 'rd', function() - RunCommandInNewTab 'npm run dev' -end, { +vim.keymap.set('n', 'rd', function() RunCommandInNewTab 'npm run dev' end, { noremap = true, silent = false, desc = '[R]un [D]ev', @@ -225,9 +221,7 @@ vim.keymap.set('n', 'ri', Npm_install, { silent = false, desc = '[R]un npm [I]nstall', }) -vim.keymap.set('n', 'rl', function() - RunCommandInNewTab 'five-server' -end, { +vim.keymap.set('n', 'rl', function() RunCommandInNewTab 'five-server' end, { noremap = true, silent = false, desc = '[R]un npm [L]ive Server', @@ -272,10 +266,22 @@ vim.keymap.set('n', 'sne', ':EditSnippets', { desc = '[Sn]ippets [E]dit', }) -vim.keymap.set('n', 'snf', ':%s/"/\\\\"/gggVG10>gg0v_y:%s/0/\\":%s/\\n/\\",\\r:%s/\\n\\",/\\r\\"\\",', { - noremap = true, - silent = false, - desc = '[Sn]ippets [F]ormat', +-- "Snippet Format" +vim.keymap.set('n', 'snf', function() + local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false) + + for i, line in ipairs(lines) do + line = line:gsub('\\', '\\\\') -- escape backslashes + line = line:gsub('"', '\\"') -- escape quotes + line = line:gsub("%$", "\\\\$") + line = line:gsub("\\\\\\\\", "\\\\\\\\\\\\") + + lines[i] = '"' .. line .. '",' + end + + vim.api.nvim_buf_set_lines(0, 0, -1, false, lines) +end, { + desc = '[Sn]ippet [F]ormat', }) -- Noice Notification @@ -346,44 +352,32 @@ vim.keymap.set('v', 'sk', ':s/\\(.*\\)/\\1/gfnp', function() - NextJSNewPage(vim.fn.input 'Enter Page Name: ') -end, { +vim.keymap.set('n', 'fnp', function() NextJSNewPage(vim.fn.input 'Enter Page Name: ') end, { noremap = true, silent = false, desc = 'New [P]age', }) -vim.keymap.set('n', 'fnr', function() - NextJSNewApiPost(vim.fn.input 'Enter Route Name: ') -end, { +vim.keymap.set('n', 'fnr', function() NextJSNewApiPost(vim.fn.input 'Enter Route Name: ') end, { noremap = true, silent = false, desc = 'New API [R]oute POST', }) -vim.keymap.set('n', 'fng', function() - NextJSNewApiGet(vim.fn.input 'Enter Route Name: ') -end, { +vim.keymap.set('n', 'fng', function() NextJSNewApiGet(vim.fn.input 'Enter Route Name: ') end, { noremap = true, silent = false, desc = 'New [G]et Route', }) -vim.keymap.set('n', 'fsp', function() - SvelteKitNewPage(vim.fn.input 'Enter Page Name: ') -end, { +vim.keymap.set('n', 'fsp', function() SvelteKitNewPage(vim.fn.input 'Enter Page Name: ') end, { noremap = true, silent = false, desc = 'New [P]age', }) -vim.keymap.set('n', 'fsr', function() - SvelteKitNewAPIPost(vim.fn.input 'Enter Route Name: ') -end, { +vim.keymap.set('n', 'fsr', function() SvelteKitNewAPIPost(vim.fn.input 'Enter Route Name: ') end, { noremap = true, silent = false, desc = 'New Post [R]oute', }) -vim.keymap.set('n', 'fsg', function() - SvelteKitNewAPIGet(vim.fn.input 'Enter Route Name: ') -end, { +vim.keymap.set('n', 'fsg', function() SvelteKitNewAPIGet(vim.fn.input 'Enter Route Name: ') end, { noremap = true, silent = false, desc = 'New [G]et Route', @@ -392,9 +386,7 @@ end, { vim.keymap.set( 'n', '', - function() - SearchAndReplace(vim.fn.input 'Enter Search Term: ', vim.fn.input 'Enter Replace Term: ') - end, + function() SearchAndReplace(vim.fn.input 'Enter Search Term: ', vim.fn.input 'Enter Replace Term: ') end, -- ":%s/vim.fn.input('Enter Search Term: ')/vim.fn.input('Enter Replace Term: ')/g", { noremap = true, @@ -460,9 +452,7 @@ end, { desc = '[F]ile [C]opy current file path to clipboard', }) -vim.keymap.set('n', 'fe', function() - os.execute 'explorer.exe .' -end, { +vim.keymap.set('n', 'fe', function() os.execute 'explorer.exe .' end, { noremap = true, silent = true, desc = '[F]ile [E]xplorer on current file folder',