summaryrefslogtreecommitdiff
path: root/lua/telescope/previewers/buffer_previewer.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/telescope/previewers/buffer_previewer.lua')
-rw-r--r--lua/telescope/previewers/buffer_previewer.lua10
1 files changed, 6 insertions, 4 deletions
diff --git a/lua/telescope/previewers/buffer_previewer.lua b/lua/telescope/previewers/buffer_previewer.lua
index 70e08d0..0ba9322 100644
--- a/lua/telescope/previewers/buffer_previewer.lua
+++ b/lua/telescope/previewers/buffer_previewer.lua
@@ -484,10 +484,12 @@ previewers.ctags = defaulter(function(_)
local determine_jump = function(entry)
if entry.scode then
return function(self)
- local scode = string.gsub(entry.scode, "[$]$", "")
- scode = string.gsub(scode, [[\\]], [[\]])
- scode = string.gsub(scode, [[\/]], [[/]])
- scode = string.gsub(scode, "[*]", [[\*]])
+ -- un-escape / then escape required
+ -- special chars for vim.fn.search()
+ -- ] ~ *
+ local scode = entry.scode:gsub([[\/]], "/"):gsub("[%]~*]", function(x)
+ return "\\" .. x
+ end)
pcall(vim.fn.matchdelete, self.state.hl_id, self.state.winid)
vim.cmd "norm! gg"