summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkkard2 <[email protected]>2024-06-22 10:37:22 +0200
committerkkard2 <[email protected]>2024-06-22 10:37:22 +0200
commit4bf49096eeddf43f3999366b120a177c165ac9f7 (patch)
treeee8887d9e7dcd5e61bb8a4b323860055d6519fc5
parent019844ad335e28cc77676342dd4f7b03e55886a9 (diff)
this is way better solution
-rw-r--r--nvim/init.lua54
1 files changed, 25 insertions, 29 deletions
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", "<CR>", "<CR><Esc>kA\\<Esc>j^i")
- vim.keymap.set("n", "o", "o\\<Esc>i")
- vim.keymap.set("n", "O", "O\\<Esc>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.api.nvim_create_user_command("Backslash", function()
+ local start_pos = vim.fn.getpos("'<")[2]
+ local end_pos = vim.fn.getpos("'>")[2]
+ local position = 78
- vim.keymap.del("i", "<CR>")
- vim.keymap.del("n", "o")
- vim.keymap.del("n", "O")
-end, {})
+ ---@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