TGViewer
Никита Федькин - мысли, заметки, анонсы Никита Федькин - мысли, заметки, анонсы @nixel2007_thoughts · 2.88K subscribers
Post #769 2.78K
Почти 8 лет назад (без пяти дней) мы с @Labotamy засели в скайпе с вопросом "что бы такое клёвое совместно написать". И решили запилить плагин для поддержки 1С в IntelliJ IDEA. Взяли в руки официальный гайдбук по разработке плагина, черновик грамматики в формате jflex, которую незадолго до этого напилил @dmpas, и начали творить.
Это привело к тому, что через неделю в проекте появился класс BSLLanguageServer и заверте...

Плагин пытался одновременно работать поверх BSL LS и BSL Parser путем скрещивания через хитрый antlr adaptor (я не опечатался, автор так назвал свое детище), но страдал от двух вещей:
1) antlr в BSL Parser притерпевал регулярные изменения: то мы жили на ванильном antlr4, то переехали на optimized fork с несовместимым API, то переехали обратно, в итоге вообще остановились на собственном форке за авторством @TheShadoWCo, который героически перенёс все оптимизации из optimized fork в ванильный antlr, сохранив обратную совместимость.

А antlr adaptor так и оставался в версии что.то.там.релиз.кандидат.снапшот.на.коленке.

2) Отсутствие фич в BSL LS типа автодополнения и контекста платформы. То есть пилить плагин для IDEA было прикольно, но при этом было и понимание, что усилия надо сосредоточить на самом BSL LS, обогатив его фичами, которые растекутся потом по всем редакторам.

За это время я успел поработать над несколькими различными плагинами подключения языковых серверов в IDEA: и старый intellij-lsp на scala с мэйнтейнером на подводной лодке, появляющимся на GitHub раз в полгода на пару недель, и с lsp4intellij - хард-форке, который я начинал делать совместно с шри-ланкийскими ребятами из WSO2/Ballerina Lang, и (теперь уже бес)платным клиентом в IntelliJ IDEA Ultimate, и наконец плагином lsp4ij от RedHat.

Последний хоть и содержал несколько детских болячек, которые вскрывал подключенный к нему BSL LS на раз, но заодно имел и активных мэйнтейнеров, которые быстро приходят в созданные баг-репорты и, что совсем уж удивительно, быстро чинят обнаруженые баги! А ещё у них в документации был подробный гайд, как запускать LSP-сервер поверх грамматики textmate для быстрой раскраски кода. А textmate - это как раз то, с чего вообще начинался проект 1c-syntax в 2014-2015.

И вот, спустя почти 8 лет и трех переписываний с нуля, Language 1C (BSL) плагин для семейства IntelliJ Platform наконец опубликован в JetBrains Marketplace:

https://plugins.jetbrains.com/plugin/32659-language-1c-bsl-

Если маркетплейс у вас не работает, то установочный zip-архив можно забрать с релизов на GitHub.

P.S. Не без помощи нейросеток конечно.
P.S.S. А что вы мне сделаете, я в другом городе (с)
JetBrains Marketplace Language 1C (BSL) - IntelliJ IDEs Plugin | Marketplace Support for the 1C:Enterprise (BSL) and OneScript languages in IntelliJ Platform-based IDEs. Code intelligence — diagnostics, code completion, hover, go to definition...
  • 🔥 29
  • ❤ 18
  • 👍 11
More from @nixel2007_thoughts
  1. Sep 28, 2026Вторую картинку в посте потерял. Вот так менять/задавать пароль.
  2. Sep 28, 2026Если вы можете прочесть этот пост, то вероятно, ваш телефон находится, кхм-кхм, за границе…
  3. Sep 28, 2026video post
  4. Sep 28, 2026#анонс Полишинеля Я разрываюсь между двумя фразами на анонс, пускай будут обе: 1. Мы строи…
  5. Sep 27, 2026Внимательный разбор телеметрии показал, что основной причиной падений хаба последних дней…
  6. Sep 21, 2026Совместно с @EvilBeaver, @Segate и @nivanchenko готовим новый хаб оскрипта к релизу. Проек…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →