Class MultilingualStringAnalyser
java.lang.Object
com.github._1c_syntax.bsl.languageserver.utils.MultilingualStringAnalyser
Анализатор многоязычных строк НСтр (NStr) и строковых шаблонов СтрШаблон (StrTemplate).
Проверяет наличие всех объявленных языков в многоязычных строках и анализирует использование в шаблонах.
Также предоставляет статические методы для поиска языковых ключей и плейсхолдеров в строках для целей семантической подсветки.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordЗапись для хранения позиции совпадения в строке. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final PatternПаттерн для поиска языковых ключей в строках НСтр (например, ru=', en=").static final PatternПаттерн для распознавания вызова метода НСтр/NStr.static final PatternПаттерн для поиска плейсхолдеров в строках СтрШаблон (%1-%10 или %(1)-%(10)).static final PatternПаттерн для распознавания вызова метода СтрШаблон/StrTemplate. -
Constructor Summary
ConstructorsConstructorDescriptionMultilingualStringAnalyser(String declaredLanguages) Создать анализатор многоязычных строк. -
Method Summary
Modifier and TypeMethodDescriptionНайти позиции всех языковых ключей в строке НСтр.Найти позиции всех плейсхолдеров в строке СтрШаблон.Получить список отсутствующих языков.booleanПроверить, что не все объявленные языки присутствуют в строке.static booleanПроверить, является ли вызов метода вызовом НСтр/NStr.booleanПроверить, используется ли строка в родительском шаблоне.static booleanПроверить, является ли вызов метода вызовом СтрШаблон/StrTemplate.booleanРазобрать вызов метода НСтр/NStr.
-
Field Details
-
NSTR_METHOD_NAME_PATTERN
Паттерн для распознавания вызова метода НСтр/NStr. -
TEMPLATE_METHOD_NAME_PATTERN
Паттерн для распознавания вызова метода СтрШаблон/StrTemplate. -
NSTR_LANG_PATTERN
Паттерн для поиска языковых ключей в строках НСтр (например, ru=', en="). -
STR_TEMPLATE_PLACEHOLDER_PATTERN
Паттерн для поиска плейсхолдеров в строках СтрШаблон (%1-%10 или %(1)-%(10)). Учитывает экранирование %%.
-
-
Constructor Details
-
MultilingualStringAnalyser
Создать анализатор многоязычных строк.- Parameters:
declaredLanguages- Строка с объявленными языками через запятую
-
-
Method Details
-
isNStrCall
Проверить, является ли вызов метода вызовом НСтр/NStr.- Parameters:
ctx- Контекст вызова глобального метода- Returns:
- true, если это вызов НСтр/NStr
-
isStrTemplateCall
Проверить, является ли вызов метода вызовом СтрШаблон/StrTemplate.- Parameters:
ctx- Контекст вызова глобального метода- Returns:
- true, если это вызов СтрШаблон/StrTemplate
-
findLanguageKeyPositions
Найти позиции всех языковых ключей в строке НСтр.- Parameters:
text- Текст строки- Returns:
- Список позиций языковых ключей
-
findPlaceholderPositions
Найти позиции всех плейсхолдеров в строке СтрШаблон.- Parameters:
text- Текст строки- Returns:
- Список позиций плейсхолдеров
-
parse
Разобрать вызов метода НСтр/NStr.- Parameters:
ctx- Контекст вызова глобального метода- Returns:
- true, если это вызов НСтр/NStr и он успешно разобран
-
hasNotAllDeclaredLanguages
public boolean hasNotAllDeclaredLanguages()Проверить, что не все объявленные языки присутствуют в строке.- Returns:
- true, если какие-то языки отсутствуют
-
getMissingLanguages
Получить список отсутствующих языков.- Returns:
- Строковое представление списка отсутствующих языков
-
isParentTemplate
public boolean isParentTemplate()Проверить, используется ли строка в родительском шаблоне.- Returns:
- true, если строка используется в шаблоне
-