From c43b7d92c4a8bcd9c215507c7cef465d74db426a Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 20 Sep 2021 18:09:14 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20gitlens-=D1=81=D0=BF=D0=B5?= =?UTF-8?q?=D1=86=D0=B8=D1=84=D0=B8=D1=87=D0=BD=D1=8B=D1=85=20=D1=81=D0=B8?= =?UTF-8?q?=D0=BC=D0=B2=D0=BE=D0=BB=D0=BE=D0=B2=20=D0=B2=20URI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/github/_1c_syntax/utils/Absolute.java | 5 +++++ .../com/github/_1c_syntax/utils/AbsoluteTest.java | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/com/github/_1c_syntax/utils/Absolute.java b/src/main/java/com/github/_1c_syntax/utils/Absolute.java index 546858c..0dc01a7 100644 --- a/src/main/java/com/github/_1c_syntax/utils/Absolute.java +++ b/src/main/java/com/github/_1c_syntax/utils/Absolute.java @@ -88,6 +88,11 @@ private static String encodePath(String path) { .replace(" ", "%20") .replace("[", "%91") .replace("]", "%93") + .replace("?", "%3F") + .replace("{", "%7B") + .replace("}", "%7D") + .replace(":", "%3A") + .replace("\"", "%22") ; } diff --git a/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java b/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java index bd5c5e2..e9e3730 100644 --- a/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java +++ b/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java @@ -148,4 +148,16 @@ void testUriFromStringWithBrackets() { assertThat(uri.toString()).doesNotContain("["); assertThat(uri.toString()).doesNotContain("]"); } + + @Test + void testUriFromGitLens() { + // given + var uriString = "gitlens://d5ff5b3/d%3A/git/repo/src/cf/Documents/Some/Ext/ObjectModule.bsl?%7B%22path%22%3A%22%2Fd%3A%2Fgit%2Frepo%2Fsrc%2Fcf%2FDocuments%2FSome%2FExt%2FObjectModule.bsl%22%2C%22ref%22%3A%22d5ff5b3c52bdd1f26f838944ec99f62346d2771b%22%2C%22repoPath%22%3A%22d%3A%2Fgit%2Frepo%22%7D"; + + // when + var uri = Absolute.uri(uriString); + + // then + assertThat(uri.getPath()).endsWith("\"repoPath\":\"d:/git/repo\"}"); + } } \ No newline at end of file From 73c0624d809a82723b5efc689b8929d6da64a365 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 21 Sep 2021 11:30:58 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D1=81=D0=BB=D1=8D=D1=88=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/github/_1c_syntax/utils/Absolute.java | 1 + .../com/github/_1c_syntax/utils/AbsoluteTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/com/github/_1c_syntax/utils/Absolute.java b/src/main/java/com/github/_1c_syntax/utils/Absolute.java index 0dc01a7..212eb6d 100644 --- a/src/main/java/com/github/_1c_syntax/utils/Absolute.java +++ b/src/main/java/com/github/_1c_syntax/utils/Absolute.java @@ -93,6 +93,7 @@ private static String encodePath(String path) { .replace("}", "%7D") .replace(":", "%3A") .replace("\"", "%22") + .replace("\\", "%5C") ; } diff --git a/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java b/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java index e9e3730..5847de2 100644 --- a/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java +++ b/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java @@ -160,4 +160,16 @@ void testUriFromGitLens() { // then assertThat(uri.getPath()).endsWith("\"repoPath\":\"d:/git/repo\"}"); } + + @Test + void testUriFromGit() { + // given + var uriString = "git:/e%3A/user/repo/Some/Module.bsl?%7B%22path%22%3A%22e%3A%5C%5Cuser%5C%5Crepo%5C%5CSome%5C%5CModule.bsl%22%2C%22ref%22%3A%22~%22%7D"; + + // when + var uri = Absolute.uri(uriString); + + // then + assertThat(uri.getPath()).endsWith("\"ref\":\"~\"}"); + } } \ No newline at end of file