diff options
Diffstat (limited to 'runtime/lua/vim/uri.lua')
-rw-r--r-- | runtime/lua/vim/uri.lua | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/runtime/lua/vim/uri.lua b/runtime/lua/vim/uri.lua index 2dc817c5c1..b4e4098b91 100644 --- a/runtime/lua/vim/uri.lua +++ b/runtime/lua/vim/uri.lua @@ -1,4 +1,4 @@ ----TODO: This is implemented only for files currently. +-- TODO: This is implemented only for files currently. -- https://tools.ietf.org/html/rfc3986 -- https://tools.ietf.org/html/rfc2732 -- https://tools.ietf.org/html/rfc2396 @@ -10,14 +10,14 @@ local tohex = require('bit').tohex local URI_SCHEME_PATTERN = '^([a-zA-Z]+[a-zA-Z0-9.+-]*):.*' local WINDOWS_URI_SCHEME_PATTERN = '^([a-zA-Z]+[a-zA-Z0-9.+-]*):[a-zA-Z]:.*' local PATTERNS = { - ---RFC 2396 - ---https://tools.ietf.org/html/rfc2396#section-2.2 + -- RFC 2396 + -- https://tools.ietf.org/html/rfc2396#section-2.2 rfc2396 = "^A-Za-z0-9%-_.!~*'()", - ---RFC 2732 - ---https://tools.ietf.org/html/rfc2732 + -- RFC 2732 + -- https://tools.ietf.org/html/rfc2732 rfc2732 = "^A-Za-z0-9%-_.!~*'()[]", - ---RFC 3986 - ---https://tools.ietf.org/html/rfc3986#section-2.2 + -- RFC 3986 + -- https://tools.ietf.org/html/rfc3986#section-2.2 rfc3986 = "^A-Za-z0-9%-._~!$&'()*+,;=:@/", } @@ -104,6 +104,10 @@ function M.uri_to_fname(uri) if scheme ~= 'file' then return uri end + local fragment_index = uri:find('#') + if fragment_index ~= nil then + uri = uri:sub(1, fragment_index - 1) + end uri = M.uri_decode(uri) --TODO improve this. if is_windows_file_uri(uri) then @@ -116,7 +120,6 @@ end ---Gets the buffer for a uri. ---Creates a new unloaded buffer if no buffer for the uri already exists. --- ---@param uri string ---@return integer bufnr function M.uri_to_bufnr(uri) |