diff --git a/lua/gx/handlers/url.lua b/lua/gx/handlers/url.lua index 9d924ee..6fc3c53 100644 --- a/lua/gx/handlers/url.lua +++ b/lua/gx/handlers/url.lua @@ -18,11 +18,15 @@ function M.handle(mode, line, _) pattern = "([a-zA-Z%d_/%-%.~@\\+#]+%.[a-zA-Z_/%%%-%.~@\\+#=?&:]+)" url = helper.find(line, mode, pattern) if url then - return "https://" .. url + url = "https://" .. url end end - return url + if not url then + return + end + + return url:gsub("\\([%p])", "%1") end return M diff --git a/test/spec/gx/handlers/url_spec.lua b/test/spec/gx/handlers/url_spec.lua index 1868583..0f44598 100644 --- a/test/spec/gx/handlers/url_spec.lua +++ b/test/spec/gx/handlers/url_spec.lua @@ -37,6 +37,13 @@ describe("url_parser_does_work", function() "http://localhost:8080/backend/swagger-ui/#/project-controller", handler.handle("v", "http://localhost:8080/backend/swagger-ui/#/project-controller") ) + assert.equals( + "https://golang-jwt.github.io/jwt/usage/signing_methods/#signing-methods-and-key-types", + handler.handle( + "v", + "https://golang-jwt.github.io/jwt/usage/signing\\_methods/#signing-methods-and-key-types" + ) + ) end) it("urls in python", function()