From 4bf49096eeddf43f3999366b120a177c165ac9f7 Mon Sep 17 00:00:00 2001 From: kkard2 Date: Sat, 22 Jun 2024 10:37:22 +0200 Subject: this is way better solution --- nvim/init.lua | 56 ++++++++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 30 deletions(-) (limited to 'nvim/init.lua') diff --git a/nvim/init.lua b/nvim/init.lua index 1b88864..4d19ef7 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -160,38 +160,34 @@ end) -- end) -- c is a language for some reason -vim.api.nvim_create_user_command("DefineMode", function() - -- this should not be here - vim.cmd([[ - highlight DefineModeStatus guifg=#ffffff guibg=#ff00ff - set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P - set statusline+=\ %#DefineModeStatus#\ DEFINE\ MODE - set statusline+=\ %* - set statusline+=\ ft=%{&filetype} - set statusline+=\ ff=%{&fileformat} - set statusline+=\ spaces=%{&expandtab} - set statusline+=%{get(b:,'\ \ gitsigns_status','')} - ]]) - vim.keymap.set("i", "", "kA\\j^i") - vim.keymap.set("n", "o", "o\\i") - vim.keymap.set("n", "O", "O\\i") -end, {}) -vim.api.nvim_create_user_command("NoDefineMode", function() - -- this should not be here - vim.cmd([[ - set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P - set statusline+=\ ft=%{&filetype} - set statusline+=\ ff=%{&fileformat} - set statusline+=\ spaces=%{&expandtab} - set statusline+=%{get(b:,'\ \ gitsigns_status','')} - ]]) - - vim.keymap.del("i", "") - vim.keymap.del("n", "o") - vim.keymap.del("n", "O") -end, {}) +vim.api.nvim_create_user_command("Backslash", function() + local start_pos = vim.fn.getpos("'<")[2] + local end_pos = vim.fn.getpos("'>")[2] + local position = 78 + + ---@type string[] + ---@diagnostic disable-next-line: assign-type-mismatch + local lines = vim.fn.getline(start_pos, end_pos) + + for i, line in ipairs(lines) do + local trimmed_line = vim.fn.trim(line) + if trimmed_line:sub(-1) == "\\" then + -- Line already ends with a backslash, remove it + line = line:sub(1, #trimmed_line - 1) + end + local len = #line + if len < position then + lines[i] = line .. string.rep(' ', position - len) .. '\\' + elseif len == position then + lines[i] = line .. '\\' + else + lines[i] = line:sub(1, position - 1) .. '\\' .. line:sub(position) + end + end + vim.fn.setline(start_pos, lines) +end, { range = true }) -- colorscheme -- cgit v1.3.1