From 48b6dabe0a4b5a88ddc95ff1454fe28feedc4524 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:24:29 +0000 Subject: [PATCH 1/3] Initial plan From 796056d426ae972970822c6e5b3f6688495962b5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:27:59 +0000 Subject: [PATCH 2/3] Fix incorrect URL encoding for square brackets: %91/%93 -> %5B/%5D Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- .../com/github/_1c_syntax/utils/Absolute.java | 4 +- .../github/_1c_syntax/utils/AbsoluteTest.java | 86 +++++++++++++++++++ 2 files changed, 88 insertions(+), 2 deletions(-) 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 a4ca6c3..d6b4b8f 100644 --- a/src/main/java/com/github/_1c_syntax/utils/Absolute.java +++ b/src/main/java/com/github/_1c_syntax/utils/Absolute.java @@ -136,8 +136,8 @@ private static String encodePath(@NonNull String path) { .replace("#", "%23") .replace("+", "%2B") .replace(",", "%2C") - .replace("[", "%91") - .replace("]", "%93") + .replace("[", "%5B") + .replace("]", "%5D") .replace("?", "%3F") .replace("{", "%7B") .replace("}", "%7D") 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 a51f976..d8284b8 100644 --- a/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java +++ b/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java @@ -250,4 +250,90 @@ void testUriObjectWithPercent() { assertThat(uri.getPath()).contains("% "); assertThat(uri.getPath()).endsWith(".bsl"); } + + @Test + void testUriFromUriWithBrackets() { + // given + var file = new File("/git/[folder]/test[1].bsl"); + var uriFromFile = file.toURI(); + + // when + var uri = Absolute.uri(uriFromFile); + + // then + assertThat(uri).hasScheme("file"); + assertThat(uri.toString()).doesNotContain("["); + assertThat(uri.toString()).doesNotContain("]"); + assertThat(uri.getPath()).contains("[folder]"); + assertThat(uri.getPath()).endsWith("test[1].bsl"); + } + + @Test + void testUriFromFileWithBrackets() { + // given + var file = new File("/git/[folder]/test[1].bsl"); + + // when + var uri = Absolute.uri(file); + + // then + assertThat(uri).hasScheme("file"); + assertThat(uri.toString()).doesNotContain("["); + assertThat(uri.toString()).doesNotContain("]"); + assertThat(uri.getPath()).contains("[folder]"); + assertThat(uri.getPath()).endsWith("test[1].bsl"); + } + + @Test + void testPathFromStringWithBrackets() { + // given + var pathString = "/git/[folder]/test[1].bsl"; + + // when + var path = Absolute.path(pathString); + + // then + assertThat(path.toString()).contains("[folder]"); + assertThat(path.toString()).endsWith("test[1].bsl"); + } + + @Test + void testPathFromUriWithBrackets() { + // given + var file = new File("/git/[folder]/test[1].bsl"); + var uriFromFile = file.toURI(); + + // when + var path = Absolute.path(uriFromFile); + + // then + assertThat(path.toString()).contains("[folder]"); + assertThat(path.toString()).endsWith("test[1].bsl"); + } + + @Test + void testPathFromPathWithBrackets() { + // given + var pathFromString = java.nio.file.Path.of("/git/[folder]/test[1].bsl"); + + // when + var path = Absolute.path(pathFromString); + + // then + assertThat(path.toString()).contains("[folder]"); + assertThat(path.toString()).endsWith("test[1].bsl"); + } + + @Test + void testPathFromFileWithBrackets() { + // given + var file = new File("/git/[folder]/test[1].bsl"); + + // when + var path = Absolute.path(file); + + // then + assertThat(path.toString()).contains("[folder]"); + assertThat(path.toString()).endsWith("test[1].bsl"); + } } \ No newline at end of file From d3fd7d54391f189ea7772916c8caee47992931bd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:35:01 +0000 Subject: [PATCH 3/3] Run licenseFormat to update copyright headers Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- src/main/java/com/github/_1c_syntax/utils/Absolute.java | 2 +- .../com/github/_1c_syntax/utils/CaseInsensitivePattern.java | 2 +- src/main/java/com/github/_1c_syntax/utils/GenericInterner.java | 2 +- src/main/java/com/github/_1c_syntax/utils/Lazy.java | 2 +- src/main/java/com/github/_1c_syntax/utils/StringInterner.java | 2 +- src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java | 2 +- .../java/com/github/_1c_syntax/utils/StringInternerTest.java | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) 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 d6b4b8f..3b23608 100644 --- a/src/main/java/com/github/_1c_syntax/utils/Absolute.java +++ b/src/main/java/com/github/_1c_syntax/utils/Absolute.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2025 + * Copyright (c) 2018-2026 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/main/java/com/github/_1c_syntax/utils/CaseInsensitivePattern.java b/src/main/java/com/github/_1c_syntax/utils/CaseInsensitivePattern.java index 25840b2..e2a6900 100644 --- a/src/main/java/com/github/_1c_syntax/utils/CaseInsensitivePattern.java +++ b/src/main/java/com/github/_1c_syntax/utils/CaseInsensitivePattern.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2025 + * Copyright (c) 2018-2026 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/main/java/com/github/_1c_syntax/utils/GenericInterner.java b/src/main/java/com/github/_1c_syntax/utils/GenericInterner.java index 35d98c3..1e88074 100644 --- a/src/main/java/com/github/_1c_syntax/utils/GenericInterner.java +++ b/src/main/java/com/github/_1c_syntax/utils/GenericInterner.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2025 + * Copyright (c) 2018-2026 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/main/java/com/github/_1c_syntax/utils/Lazy.java b/src/main/java/com/github/_1c_syntax/utils/Lazy.java index 3fd534f..39237f1 100644 --- a/src/main/java/com/github/_1c_syntax/utils/Lazy.java +++ b/src/main/java/com/github/_1c_syntax/utils/Lazy.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2025 + * Copyright (c) 2018-2026 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/main/java/com/github/_1c_syntax/utils/StringInterner.java b/src/main/java/com/github/_1c_syntax/utils/StringInterner.java index 9d03a52..f2c1e02 100644 --- a/src/main/java/com/github/_1c_syntax/utils/StringInterner.java +++ b/src/main/java/com/github/_1c_syntax/utils/StringInterner.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2025 + * Copyright (c) 2018-2026 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later 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 d8284b8..fcbd88b 100644 --- a/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java +++ b/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2025 + * Copyright (c) 2018-2026 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/test/java/com/github/_1c_syntax/utils/StringInternerTest.java b/src/test/java/com/github/_1c_syntax/utils/StringInternerTest.java index 8986bff..8466594 100644 --- a/src/test/java/com/github/_1c_syntax/utils/StringInternerTest.java +++ b/src/test/java/com/github/_1c_syntax/utils/StringInternerTest.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2025 + * Copyright (c) 2018-2026 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later