From 734e51386b3b478cdba52aa9932ea581320bbeb2 Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Mon, 12 Jan 2026 15:55:55 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=B7=D0=B0=D0=B3=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=84-=D0=B8=D0=B8=20=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parser/description/MethodDescription.java | 5 +++++ .../SourceDefinedSymbolDescription.java | 18 ++++++++++++++++++ .../description/VariableDescription.java | 5 +++++ .../reader/MethodDescriptionReader.java | 11 ++++++----- .../reader/VariableDescriptionReader.java | 4 ++-- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/MethodDescription.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/MethodDescription.java index 9641fa66..dc1b861d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/MethodDescription.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/MethodDescription.java @@ -118,6 +118,11 @@ public static MethodDescription create(List comments) { return MethodDescriptionReader.read(comments); } + @Override + public String format(String lang, int maxLineLen) { + return ""; + } + private List computeAllElements() { List allElements = new ArrayList<>(keywords); parameters.forEach(parameter -> allElements.addAll(parameter.allElements())); diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/SourceDefinedSymbolDescription.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/SourceDefinedSymbolDescription.java index e43b3aec..cf599b02 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/SourceDefinedSymbolDescription.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/SourceDefinedSymbolDescription.java @@ -86,6 +86,24 @@ public interface SourceDefinedSymbolDescription { */ List getElements(); + /** + * Генерирует отформатированное описание на основании прочитанной информации + * + * @param lang Язык (ru/en) для ключевых слов + * @param maxLineLen Максимальная длина строки (для переноса) + * @return Строка отформатированного описания + */ + String format(String lang, int maxLineLen); + + /** + * Генерирует отформатированное описание на основании прочитанной информации с параметрами по умолчанию: ru / 120 + * + * @return Строка отформатированного описания + */ + default String format() { + return format("ru", 120); + } + /** * Проверяет вхождение области заданной двумя пограничными токенами в область описания * diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java index 237d6f54..fb2156bd 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java @@ -88,4 +88,9 @@ public static VariableDescription create(List comments) { public static VariableDescription create(List comments, Optional trailingComment) { return VariableDescriptionReader.read(comments, trailingComment); } + + @Override + public String format(String lang, int maxLineLen) { + return ""; + } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/reader/MethodDescriptionReader.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/reader/MethodDescriptionReader.java index d5ceb75b..39bbcaf4 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/reader/MethodDescriptionReader.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/reader/MethodDescriptionReader.java @@ -49,19 +49,19 @@ import static java.util.Objects.requireNonNull; /** - * Вспомагательный класс для чтения описания метода. + * Вспомогательный класс для чтения описания метода. */ public final class MethodDescriptionReader extends BSLDescriptionParserBaseVisitor { private final MethodDescription.MethodDescriptionBuilder builder; /** - * сдвиг номера строки относительно исходного текста + * Сдвиг номера строки относительно исходного текста */ private final int lineShift; /** - * сдвиг номера символа относительно исходного текста (только для первой строки) + * Сдвиг номера символа относительно исходного текста (только для первой строки) */ private final int firstLineCharShift; @@ -75,7 +75,7 @@ private MethodDescriptionReader(SimpleRange range) { } /** - * Читает описание метода из списока токенов комментария. + * Читает описание метода из списка токенов комментария. * * @param comments Список токенов комментария. * @return Описание метода. @@ -161,7 +161,8 @@ public ParseTree visitExamplesBlock(BSLDescriptionParser.ExamplesBlockContext ct @Override public ParseTree visitCallOptionsBlock(BSLDescriptionParser.CallOptionsBlockContext ctx) { - builder.keyword(newElement(ctx.callOptionsHead().CALL_OPTIONS_KEYWORD(), DescriptionElement.Type.CALL_OPTIONS_KEYWORD)); + builder.keyword(newElement(ctx.callOptionsHead().CALL_OPTIONS_KEYWORD(), + DescriptionElement.Type.CALL_OPTIONS_KEYWORD)); var strings = ctx.callOptionsString(); if (strings != null) { builder.callOptions(strings.stream() diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/reader/VariableDescriptionReader.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/reader/VariableDescriptionReader.java index f9dd14ec..0f5722bd 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/reader/VariableDescriptionReader.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/reader/VariableDescriptionReader.java @@ -43,12 +43,12 @@ public final class VariableDescriptionReader extends BSLDescriptionParserBaseVis private final VariableDescription.VariableDescriptionBuilder builder; /** - * сдвиг номера строки относительно исходного текста + * Сдвиг номера строки относительно исходного текста */ private final int lineShift; /** - * сдвиг номера символа относительно исходного текста (только для первой строки) + * Сдвиг номера символа относительно исходного текста (только для первой строки) */ private final int firstLineCharShift; From 903f605fe6a8c06cc94fd09106f691018a13e4b1 Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Mon, 12 Jan 2026 16:15:22 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BD=D0=B0=D0=B1=D0=BE=D1=80=D0=BE=D1=81?= =?UTF-8?q?=D0=BE=D0=BA=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../description/VariableDescription.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java index fb2156bd..e3bff1a0 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.Optional; +import java.util.StringJoiner; /** * Класс-описание переменной. @@ -91,6 +92,22 @@ public static VariableDescription create(List comments, Optional t @Override public String format(String lang, int maxLineLen) { - return ""; + var sj = new StringJoiner("\n//\t", "//\t", ""); + if (deprecated) { + if (deprecationInfo.isEmpty()) { + sj.add("Устарела."); + } else { + sj.add("Устарела. " + deprecationInfo.trim()); + } + } + + if (!purposeDescription.isEmpty()) { + if (sj.length() > 0) { + sj.add(""); + } + purposeDescription.lines().forEach(string -> sj.add(string.trim())); + } + + return sj.toString(); } }