From 47c755d737702df7a39b640c8d9c473a728be1df Mon Sep 17 00:00:00 2001 From: TJ DeVries Date: Mon, 17 Jul 2023 13:20:09 -0400 Subject: [PATCH] fix: handle non-file uris for lsp (#2604) --- lua/telescope/builtin/__lsp.lua | 7 ++++++- lua/telescope/utils.lua | 7 ++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lua/telescope/builtin/__lsp.lua b/lua/telescope/builtin/__lsp.lua index 66ea2f0..c7db0e0 100644 --- a/lua/telescope/builtin/__lsp.lua +++ b/lua/telescope/builtin/__lsp.lua @@ -53,7 +53,12 @@ lsp.references = function(opts) local location = locations[1] local bufnr = opts.bufnr if location.filename then - bufnr = vim.uri_to_bufnr(vim.uri_from_fname(location.filename)) + local uri = location.filename + if not utils.is_uri(uri) then + uri = vim.uri_from_fname(uri) + end + + bufnr = vim.uri_to_bufnr(uri) end vim.api.nvim_win_set_buf(0, bufnr) vim.api.nvim_win_set_cursor(0, { location.lnum, location.col - 1 }) diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua index c15ba2b..058054a 100644 --- a/lua/telescope/utils.lua +++ b/lua/telescope/utils.lua @@ -173,8 +173,9 @@ utils.is_path_hidden = function(opts, path_display) or type(path_display) == "table" and (vim.tbl_contains(path_display, "hidden") or path_display.hidden) end -local is_uri = function(filename) - return string.match(filename, "^%w+://") ~= nil +local URI_SCHEME_PATTERN = "^([a-zA-Z]+[a-zA-Z0-9.+-]*):.*" +utils.is_uri = function(filename) + return filename:match(URI_SCHEME_PATTERN) ~= nil end local calc_result_length = function(truncate_len) @@ -197,7 +198,7 @@ utils.transform_path = function(opts, path) if path == nil then return end - if is_uri(path) then + if utils.is_uri(path) then return path end