mirror of
https://github.com/Ascyii/telekasten.nvim.git
synced 2026-01-01 14:14:24 -05:00
41 lines
988 B
Lua
41 lines
988 B
Lua
local M = {}
|
|
|
|
-- Prints a basic error message
|
|
function M.print_error(s)
|
|
vim.cmd("echohl ErrorMsg")
|
|
vim.cmd("echomsg " .. '"' .. s .. '"')
|
|
vim.cmd("echohl None")
|
|
end
|
|
|
|
-- Escapes Lua pattern characters for use in gsub
|
|
function M.escape(s)
|
|
-- return s:gsub("[^%w]", "%%%1") -- Escape everything ?
|
|
return s:gsub("[%%%]%^%-$().[*+?]", "%%%1")
|
|
end
|
|
|
|
-- Returns string with listed chars removed (= safer gsub)
|
|
function M.strip(s, chars_to_remove)
|
|
return s:gsub("[" .. M.escape(chars_to_remove) .. "]", "")
|
|
end
|
|
|
|
-- Escapes for regex functions like grep or rg
|
|
function M.grep_escape(s)
|
|
return s:gsub("[%(|%)|\\|%[|%]|%-|%{%}|%?|%+|%*|%^|%$|%/]", {
|
|
["\\"] = "\\\\",
|
|
["-"] = "\\-",
|
|
["("] = "\\(",
|
|
[")"] = "\\)",
|
|
["["] = "\\[",
|
|
["]"] = "\\]",
|
|
["{"] = "\\{",
|
|
["}"] = "\\}",
|
|
["?"] = "\\?",
|
|
["+"] = "\\+",
|
|
["*"] = "\\*",
|
|
["^"] = "\\^",
|
|
["$"] = "\\$",
|
|
})
|
|
end
|
|
|
|
return M
|