1c-syntax / bsl-language-server

Реализация Language Server Protocol для языка 1C (BSL)
https://1c-syntax.github.io/bsl-language-server
Other
307 stars 105 forks source link

[NEW] Не локализованная строка #695

Open DitriXNew opened 4 years ago

DitriXNew commented 4 years ago

Проблема в том, что программисты обожают просто не писать НСтр.

Параметры диагностики

Тип

Важность

Тэги

Время на исправление (минут): 1

Дополнительная информация

Вот как построить эту диагностику - отдельный вопрос. Что знаю я.

  1. Строки можно искать по правилу создания переменных. Т.е., допустим - есть такие строки: "ВасяИПетяПишутКод", "Вася и Петя пишут код", "2 Васи и один Петя пишут код", "Петя,Вася-кодеры" и т.д. Т.е. тут с вероятностью в 99% - "ВасяИПетяПишутКод", не требует локализации, остальные - требуют. А если не требуют - то это ошибка разработчика.
  2. Однако, тут есть проблемы, из тех что я встречал:
        Кнопки = Новый СписокЗначений;
        Кнопки.Добавить(1, "Настроить почту");
        Кнопки.Добавить(2, "Закрыть");

    Вот тут, получается, что первое значение попадает под правило, а второе - нет.

zeegin commented 4 years ago

п.1. стандарт. строковые литералы должны быть образованы по правилам идентификаторов. То что не попадает под правило это ошибочно не обернуто в НСтр.

соответствует п.1 стандарта https://its.1c.ru/db/v8std#content:764:hdoc

п.2. стандарт. локализация списка значений. Представления надо всегда оборачивать в НСтр.

соответствует п.7 стандарта https://its.1c.ru/db/v8std#content:761:hdoc

artbear commented 2 years ago

связано с - https://github.com/1c-syntax/bsl-language-server/issues/365