Package com.github._1c_syntax.bsl.languageserver.diagnostics
@NullMarked
package com.github._1c_syntax.bsl.languageserver.diagnostics
Реализации диагностик качества кода BSL.
-
ClassDescriptionБазовый класс диагностики.Диагностика, анализирующая выражения BSL и предоставляющая для этого Expression TreeСтратегия по построению дерева выражения на основе выражения ASTАбстрактная диагностика, предназначенная для поиска вызова обычных методов и методов глобального контекста с использованием регулярного выражения.Абстрактный базовый класс для диагностик магических значений (чисел и дат).Базовый класс для анализа объектов метаданных, когда диагностика регистрируется на первый токен модуляБазовый класс для диагностик, анализирующих многоязычные строки НСтр.Абстрактная диагностика для анализа запросов СДБЛ.Подсвечивает присваивание значению в свойство, у которого режим доступа —
AccessMode.READ.BSLDiagnostic main purpose is to provide collection of LSPDiagnostic, fired on concreteDocumentContext.Диагностика, выявляющая избыточное сравнение выражений с булевой константойИстина/Ложьчерез операторы=и<>(напримерЕсли Значение = Истина Тогда).Хранилище диагностик для одного анализатора.Служебный класс для хранения вспомогательной информации диагностики, которая может использоваться например в квикфиксах.Диагностика повторяющихся блоков кода в синтаксической конструкцииЕсли…Тогда…ИначеЕсли….Диагностика повторяющихся условий в синтаксической конструкцииЕсли…Тогда…ИначеЕсли….Диагностика использования конструкторов с параметрами при объявлении структуры.Диагностика ограничения на количество значений свойств, передаваемых в конструктор структуры.Интерфейс для диагностик, предоставляющих быстрые исправления.Диагностика для проверки вызовов серверных процедур в событиях форм.Подсвечивает вызов метода или обращение к свойству платформенного типа, недоступного в целевой версии платформы: член появился в версии новее, чем режим совместимости проекта (target < sinceVersion).Подсвечивает обращение к методу или свойству, которое не является известным членом своего типа (вероятная опечатка или несуществующий API):Ресивер.Член— тип ресивера выведен и конкретен, но члена с таким именем у него нет; голый вызовИмя(...)— имя не резолвится ни в глобальную функцию/свойство платформы или конфигурации, ни в метод/переменную текущего модуля.Диагностика обнаруживает использование методаFindByCode()(илиНайтиПоКоду()) для справочников, планов видов характеристик и планов счетов, у которых: отключен контроль уникальности кода (CheckUnique = False) или включены серии кодов не по всему объекту (CodeSeriesне равноWHOLE_CATALOG)