TGViewer
Channel Public Channel
Никита Федькин - мысли, заметки, анонсы

Никита Федькин - мысли, заметки, анонсы

@nixel2007_thoughts

Связаться со мной - @nixel2007.
Никита Федькин (ранее Грызлов).

На канале не публикуется платная реклама.
Subscribers
2.88K
Photos
243
Videos
8
Links
369

Showing posts older than #199 · Back to latest

Older Posts 16 shown
Post #198 3.63K
Помните пост про запуск BSL LS в паре с Emacs?

Привез вам новостей про NeoVim, недавно отметившему выход релиза 0.5.0 с поддержкой LSP.

@nivanchenko набросал небольшое расширение, упрощающее подключение BSL LS (насколько вообще подключение и работа с vim могут быть прости-господи простыми).

Забрать плагин можно по ссылочке ниже, а в посте - видео с демонстрацией работы и пара охренительных скриншотов.

https://github.com/Nivanchenko/bsl-lsp.nvim
Post #197 3.75K
Картинка, отказавшаяся влезать в пост.
Post #196 3.67K
BSL Language Server три года! 🎉

Ровно три года назад, спустя неделю робких попыток разработать плагин для 1С в IntelliJ IDEA, нам с @Labotamy пришла в голову идея попробовать реализовать ядро поддержки языка отдельно от IDE в виде Language Server - специализированного программного продукта, взаимодействующего со средой разработки по унифицированному протоколу, без привязки к конкретным особенностям среды, будь то Sublime Text или Visual Studio Code.

Исторический коммит, в котором появился класс BSLLanguageServer, можно посмотреть тут: https://github.com/1c-syntax/intellij-language-1c-bsl/commit/ba0e40e928616ea78011f7c8d0d4fe226df6ee0d

Что он делал? Да ничего, даже выключаться толком не мог, не говоря уже о том, что IDEA не могла к нему подключиться.

В ночь на 24 июля (https://github.com/1c-syntax/intellij-language-1c-bsl/commit/c0547e949f4bf46633c900ef711da521a7712b73) оно уже пыталось барахтаться, подключаясь через LSP-плагин для IDEA, а 25 июля начало жить в виде самостоятельного модуля, а затем и в виде отдельного проекта (https://github.com/1c-syntax/bsl-language-server/commit/4227866d46aff6db4101c8a0acb25619d45d1597).

Что произошло с проектом за три года? Парадоксально, но первая тестовая фича, подключенная в BSL LS - автодополнение кода строкой "hello world!" - так и не докатилась до релиза. Автодополнения все еще нет.

Зато есть:

* любимые и ненавидимые многими диагностики - BSL LS очень любит орать по поводу и иногда без повода;
* всплывающая подсказка при наведении на методы конфигурации и локальные методы в oscript;
* переходы к определению методов и поиск мест использования;
* иерархия вызовов методов с возможностью навигации;
* древовидное дерево областей/методов/переменных текущего модуля и их список во всем проекте;
* некоторое количество "быстрых исправлений" и "быстрых действий", которые могут помочь быстро поправить ошибку в коде;
* бесявые счетчики цикломатической и когнитивной сложностей над методами;
* форматирование модуля и выделенного текста - хоть и с огрехами, но все же работает;
* сворачивание областей, методов, блоков кода, комментариев и пакетов запроса.

Что еще будет?

Работа с платформенным контекстом. Чтобы BSL LS знал, что такое Новый Массив, какие у него есть методы, что там можно показать после точки для Справочники и вообще. Обещанного три года ждут, прошло как раз три года, значит, пора делать! :)

Что будет в следующем релизе?

Нечеловеческими усилиями @theEvilBeaver в ядре BSL LS появился умный вычислитель выражений с учетом приоритетов операций (умножение, деление, и/или и прочее) и почти финализирован Control Flow Graph вместе с новой версией диагностики на Возврат во всех ветках кода. Это охренеть как круто и большой респект!

Это если из полезного. А из безполезного в след релизе BSL LS научится показывать прямо в редакторе кода окошко с предпросмотром цветов, создаваемых через конструктор Новый Цвет() или обращение к системному перечислению WebЦвета. Еще и конвертировать их туда обратно, и подставлять значения выбранного цвета из палитры внутрь конструктора. Зачем? Все по заветам Андрея: "Because it's fucking awesome!"

Спасибо всем вам за поддержку и за эти годы вместе. С Днем рождения нас! Ура!
GitHub Черновое подключение language-server · 1c-syntax/intellij-language-1c-bsl@ba0e40e Contribute to 1c-syntax/intellij-language-1c-bsl development by creating an account on GitHub.
Post #195 2.98K
​​Дождались!

Выпуск АйТиБороды с Ильёй Леонтьевым в начале марта навёл немалую шумиху в 1сной телеграмной тусовке. Шумиха докатилась и до сообщества самого Бороды, и "одинэсники забайтили меня на ещё один выпуск" (с)

Идея возникла быстро и спонтанно - почему бы двум жителям Минска и Москвы не пересечься для записи в середине недели в Санкт-Петербурге? День на решение, пара дней на подготовку и вот мы с женой уже отправляемся по маршруту "чемодан-вокзал-сапсан" :)

Не всеми вещами в интервью я доволен, но как минимум было весело! Надеюсь, будет весело и вам :)

Ссылка на анонс на канале АйТиБороды: https://t.me/itbeard/667
Post #193 2.83K
На правах пятницы!

Работали когда-нибудь с Emacs?

Я, например, нет. Но слышал, что у него есть поддержка LSP. По крайней мере в тех пределах, насколько это вообще возможно для консольного текстового редактора...

Меж тем, у эмакса есть пользователи и среди 1Сников. И есть 1Сники, готовые добавить в него поддержку BSL Language Server!

Прошу любить и жаловать - проект поддержки языка 1С в Emacs с возможностью подключения к Lsp-Mode от товарищей, неравнодушных к 1c-syntax движухе: https://github.com/sirikid/emacs-1s

Выглядит, на мой взгляд, страшновато, но очень круто! :)
Post #192 4.7K
​​Коротко о том, почему надо заниматься качеством и разбираться во всяких сборочных процессах:

P. S. Ждём вас в 19:30 по Москве на https://youtu.be/86wJ-ldntAo
Post #191 2.26K
Post #190 2.02K
Простите за спам в телеге, но новый видос на канале #Веселый1С просто нельзя пропустить :)
Post #189 4.02K
#стрим

В чатике @testspro1c меня уговорили на "мастер-класс" по разворачиванию и использованию дженкинса для 1с.

Не знаю насчёт "мастер-класса", но вот лажать и фэйлиться в прямом эфире - это я люблю :)

Попробуем за один вечер с помощью докера-шмокера, jenkins-lib и onec-docker развернуть гитлаб, сонар, дженкинс, гитсинк и настроить боевую сборочную линию.

Что: live stream!
Когда: 15.06.2021 (вторник) в 19:30 MSK
Где: https://youtu.be/86wJ-ldntAo

Жмякайте на колокольчик, чтобы не пропустить начало! Особенно те, у кого следующая неделя внезапно выходная.

Для зрителей, не очень знакомых с темой, рекомендую посмотреть два видео на канале #Веселый1С про докер: https://youtube.com/playlist?list=PLEya9lZ4XfyYwYWaKkQ57wanULp_yDkqg
а так же мой доклад в Воронежском Жёлтом Клубе про использование докера для 1С: https://youtu.be/52XZg005dLk
YouTube Сборочная линия с нуля. Jenkins, GitLab, SonarQube и EDT за один вечер. За один вечер превращаем чистую машину в небольшой сборочный контур на базе jenkins-lib и onec-docker. Донаты: https://donate.stream/openbsl-foundation
Post #188 1.63K
​​Пожалуй, настало время немного поговорить про jenkins-lib.

Если вы когда-нибудь пытались запустить сборочную линию для Continuous Integration 1С-решений на Jenkins, то наверное вы столкнулись и с проблемой некоторой сложности написания такой сборочной линии. Если у вас параллельно несколько проектов, то наверное даже уже задумались, как бы поменьше копипастить Jenkinsfile между проектами, да и вообще писать поменьше кода для сборки.

Тех, кто еще не начал работать с Jenkins (и с системами сборки в целом) может отталкивать высокий порог входа во всю эту кухню.

Да, можно посмотреть какие-нибудь курсы, почитать разные статьи, документацию или к примеру книгу :) Но это снимет только часть проблем и вопросов. Хочется чтобы так "рас рас и готово, рас рас и готово" (с)

А что если взять, и завернуть весь Jenkinsfile и обвязку к нему в какую-нибудь библиотеку? Небольшой конфигурационный файл, и чтобы сборочная линия выглядела вот так:

pipeline1C()

Можно же? Можно!

Конечно же, идея не нова. В Jenkins есть механизмы плагинов и библиотек. Да и на Инфостарте можно найти несколько примеров таких библиотек.

В 2019 году Валерий Максимов как раз выступал на эту тему на Infostart Event 2019 Inception.

Основываясь на его идеях в 2020 году на работе я начал проект (с очень "оригинальным" названием) https://github.com/firstBitSemenovskaya/jenkins-lib , иногда скидывая ссылки на него в различные чаты в качестве примера выполнения некоторых шагов.

Его основной целью является максимальное упрощение включения нового проекта или продукта в CI-процесс. Подключили библиотеку к Jenkins, положили пару json'чиков в репозиторий и рас рас...

Что есть сейчас?

- Инициализация ИБ с созданием базы из хранилища, БСПшной миграцией и дополнительными шагами миграции;
- синтаксический контроль средствами конфигуратора;
- сценарные тесты на Vanessa Automation (временно используется dev-сборка VA Single, ждем релиза 1.2.37);
- валидация средствами EDT (при этом формат исходников остается конфигураторный);
- запуск анализа средствами SonarQube с подхватом результатов валидации EDT;
- прекрасные еще не открытые баги;
- минимум документации;
- куча допущений, ограничений, говнокода и желания продолжать разработку.

В общем, типичный разваливающийся (зачеркнуто) опенсорс, все как вы любите.

От себя добавлю, что мои подшефные проекты я уже перевел на эту библиотеку. По сути на себе я ее и обкатываю.

Если вам интересна эта тема, и вы хотели бы попробовать - добро пожаловать в репозиторий, пробуйте запуститься, регистрируйте хотелки и ошибки, может быть даже помогите кодом (в основном код на groovy + немного java). Приходите беседовать в чатики и делиться впечатлениями.

Еще раз ссылочка: https://github.com/firstBitSemenovskaya/jenkins-lib
Post #187 1.95K
#Анонс

Ждёте релиз сонар-плагина? Их есть у меня! (с)

Вчера был выпущен 1C (BSL) Community Plugin для SonarQube версии 1.9.0:

https://github.com/1c-syntax/sonar-bsl-plugin-community/releases/tag/v1.9.0

В нем есть три важных вещи:

* исправление падения хайлайтера на разрыве многострочных строк через инструкции препроцессору Удаление/Вставка/КонецУдаления/КонецВставки;
* плагин теперь будет толерантнее относится к ошибкам позиционирования диагностик (правда будет громко об этом сообщать в лог сонар-сканнера);
* версия BSL LS обновлена до 0.18.1, что дает нам не только 13 новых диагностик из релиза 0.18.0, но и пачку исправлений ложных срабатываний диагностик и правки парсера описаний методов.

JAR-файл плагина уже собран и доступен по ссылке на странице релиза на GitHub. Запрос в SonarQube Marketplace отправлен, ждем одобрения. Обычно этот процесс занимает около двух дней.

P.S. А еще мы ждем одобрения плагина перевода SonarQube Russian Pack для версии 8.9. Вы же уже обновились до LTS версии? :)
GitHub Release v1.9.0 · 1c-syntax/sonar-bsl-plugin-community English 13 new rules and batch of fixed FPs and optimizations Upgrade BSL Language Server to v0.18.1 Fix crashes on wrong issue range Русский 13 новых правил и пачка исправлений ложных срабатыва...
Post #182 1.8K
На днях вышла четвертая версия замечательного редактора Sublime Text. Именно с подсветки 1сного кода для ST (тогда актуальной была еще двойка) и началась история проекта и сообщества 1c-syntax.

https://www.sublimetext.com/blog/articles/sublime-text-4

В четверке много вкусностей. Для себя отметил ускорение открытия файлов с очень длинными строками (привет, однострочные мегабайтные json и xml!), переход на python 3.8 и много улучшений в части API.

Почему меня интересует API? В первую очередь за счет проекта https://github.com/sublimelsp/LSP - реализации LSP-клиента для ST.

Ребята стараются поддерживать большинство фич протокола, но, к сожалению, еще не подо все есть API внутри ядра.

Например, не поддерживается запрос на умное сворачивание областей (что несколько удивительно, такая очевидная фича редактора...). Зато новое API позволило реализовать запрос textDocument/selectionRange, который сейчас находится в разработке у BSL LS (интересующиеся могут собрать этот пулл-реквест.

Раздражающие многих пользователей VSCode CodeLenses с цикломатической и когнитивной сложностью (хе-хе-хе) из коробки не поддерживаются, нужно упаковывать их в вспомогательный плагин. Надеюсь, когда-нибудь дойдут руки и до этого.

Напомню, что чтобы добавить поддержку BSL LS в Sublime Text помимо установки плагинов Language 1C (BSL) и LSP нужно сконфигурировать клиента в настройках пакета LSP (Preferences -> Package Settings -> LSP -> Settings).

Настройка выглядит вот так:
{
  "clients": {
"bls-language-server": {
"command": [
"D:/tools/bsl-language-server/bsl-language-server.exe",
"--configuration",
"$folder/.bsl-language-server.json"
],
"enabled": true,
"selector": "source.bsl"
}
}
}

Если у вас используется jar-версия, то путь к exe-файлу необходимо заменить на "java", "-jar", "path-to-bsl-ls.jar".

Вообще в плагине много разных настроек, так что рекомендую ознакомиться с их списком, когда будете добавлять настройку клиента (полный список настроек плагина будет в левой части окна). И точно стоит переназначить часть стандартных горячих клавиш на LSP-шные аналоги.

И напоследок несколько скриншотов из Sublime Text + BSL Language Server.
Sublimetext Sublime Text 4 Meet the new Sublime Text - it's faster and smarter than ever with hardware acceleration, Apple silicon support, and more!
  • 👍 1
Post #181 1.98K
Хочу напомнить о существовании https://sonar.openbsl.ru

Если у вас есть опенсорсный проект на 1с или оскрипте, и вы хотели бы пользоваться сонаром, но нет сервера/средств - пишите мне или @Labotamy, заведём проект, скинем доступ.

Viva le open source!
Post #180 1.98K

Forwarded from Vanessa Automation

Продвинутое сравнение печатной формы с эталоном. Allure.
В видео показано, что в отчете Allure можно удобно показать сравнение эталона печатной формы с её реальным значением.
https://youtu.be/1xnp6CxCktA
YouTube Продвинутое сравнение печатной формы с эталоном. Allure. В видео показано, что в отчете Allure можно удобно показать сравнение эталона печатной формы с её реальным значением.
Post #179 1.85K
У меня буквально нет слов кроме как "это какая-то магия!"
Older posts →
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 →