Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: kuzulis от Октябрь 22, 2020, 16:39



Название: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Октябрь 22, 2020, 16:39
Народ, всем не хворать.

Тут недавно решил попытать счастья в Node.js и создать плагин
для всеми любимго VS Code с поддержкой QBS.

И вуаля, что уже можно:

* Открыть папочку с файлом проекта QBS.
* Выбрать нужный проект для сборки (если в папочке несколько файлов).
* Выбрать профиль для сборки (по рабоче-крестьянскому - комплект с компиляторами).
* Выбрать конфигурацию сборки (по рабоче-крестьянскому - дебаг/релиз).
* Выбрать продукт для сборки (или все продукты).
* Выбрать продукт для запуска.
* Выбрать продукт для отладки.

Работает автоматическая "интеллектуальная" подсветка хидеров компилятора
и прочее.

Я пока еще не релизил ничего в маркет VS Code, т.к. пока все еще в
процессе тестирования/разработки.

Парни, нужна Ваша помощь в/на потестинге, генерации новых идей и прочего.

Вот сам исходный код плагина (делал на основе плагина CMake):

 * https://github.com/denis-shienkov/vscode-qbs

Вот сам бинарь плагина, который достаточно только
установить в VS Code:

 * https://github.com/denis-shienkov/vscode-qbs/releases/tag/v0.0.5

PS: По крайней мере я смог собрать QtCreator и сам QBS при помощи этого плагина
на Windows && MSVC. Также тестил и на Linux - вроде работает.

PS2: В аттаче тоже предкомпилированный плагин, просто надо переименовать расширение в *.vsix


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Ноябрь 01, 2020, 11:00
Выкатил новую «developer-preview» версию 0.0.6:

 * https://github.com/denis-shienkov/vscode-qbs/releases/tag/v0.0.6

Список изменений тут:

 * https://github.com/denis-shienkov/vscode-qbs/blob/master/CHANGELOG.md#006

Репортить баги сюда:

 * https://github.com/denis-shienkov/vscode-qbs/issues

Кому интересно - просьба не лениться, по-тестировать, по-написать в трекер баги. :)

PS: Спасибо всем кто помогал в тестировании и прочему. :)


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Ноябрь 03, 2020, 16:12
Добавил статью на хабр: https://habr.com/ru/post/526256/   ::)


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Ноябрь 10, 2020, 13:55
Добавил в маркет версию 0.0.8. Теперь можно установить по-нормальному.

Используйте на здоровье, товарищи! ))


Название: Re: Создаю QBS плагин для VS Code
Отправлено: Авварон от Ноябрь 10, 2020, 13:58
огонь!


Название: Re: Создаю QBS плагин для VS Code
Отправлено: alex312 от Ноябрь 12, 2020, 22:19
Добавил в маркет версию 0.0.8. Теперь можно установить по-нормальному.
Более того, оно у меня само обновилось.


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Декабрь 19, 2020, 14:46
Выкатил новую девелоперскую версию 0.0.9. Список изменений тут (https://github.com/denis-shienkov/vscode-qbs/blob/master/CHANGELOG.md).

В след релиз 1.0.0 планирую добавить:

1) Автоматический запуск резолва когда определенные *.qbs/*.js файлы меняются.

Тут проблем особых не вижу, сама QBS дает список этих файлов за которыми надо наблюдать.

2) Отображать "отключенные" продукты и группы в дереве проекта как-то (сейчас там отображаются все).

Тут есть проблемки с АПИ самой VSCode, кажется там нет возможности как-то менять цвет кастомных айтемов дерева.
Хотя, VSCode предоставляет некое АПИ называемое Decorations API, но оно только для реальных файлов,
и как его прикрутить к кастомному TreeView я пока хз.

У меня есть идея отображать отключенные айтемы, например с зачеркнутым текстом но я опять хз,
можно ли в VSCode как-то задать шрифт зачеркнутый генерируя имя айтема.

3) Добавить возможность переопределять проперти продуктов, проектов и пр. (по аналогии как в QtC).

Думаю повесить это на какую-нить новую команду, и дать возможность пользователю вводить эти проперти через селекторы.

ЗЫ: Народ, есть тут кто нить, кто писал плагины для VSCode и/или знает node.js/electron? Интересует именно возможность по п.2.

Есть у кого еще какие может идеи, что бы еще пофиксить/добавить?  :)  


Название: Re: Создаю QBS плагин для VS Code
Отправлено: alex312 от Декабрь 20, 2020, 13:26
2) Отображать "отключенные" продукты и группы в дереве проекта как-то (сейчас там отображаются все).

Тут есть проблемки с АПИ самой VSCode, кажется там нет возможности как-то менять цвет кастомных айтемов дерева.
Хотя, VSCode предоставляет некое АПИ называемое Decorations API, но оно только для реальных файлов,
и как его прикрутить к кастомному TreeView я пока хз.

У меня есть идея отображать отключенные айтемы, например с зачеркнутым текстом но я опять хз,
можно ли в VSCode как-то задать шрифт зачеркнутый генерируя имя айтема.

Что-то похожее есть, сам я не знаю, но cmake плагин разукрашивает итемы, и цепляет иконки. (картинка во вложении)
Как видно, запускаемый таргет обозначен ракетой, а uninstall  - зелененький.


Название: Re: Создаю QBS плагин для VS Code
Отправлено: alex312 от Декабрь 20, 2020, 13:38
Цитировать
Есть у кого еще какие может идеи, что бы еще пофиксить/добавить?

Как я писал в дискорде. Есть небольшая проблемка, когда плагин пытается использовать протухший тулчейн.
При парсинге проекта выдается ошибка, но билд рапортует что все Ок.

Это все msvc, почему-то они после упдейта помирают. Не знаю как это решается в креаторе, но, похоже, они детектят их при старте.

Ну, т.е. надо бы как-то сообщать что тулчейн протух, и не запускать билд.

(https://media.discordapp.net/attachments/707635721778757636/789850213967593512/unknown.png?width=1440&height=359)


Название: Re: Создаю QBS плагин для VS Code
Отправлено: alex312 от Декабрь 20, 2020, 14:02
Еще идея, не знаю насколько реализуемая.
Сейчас окошко "outline" отображается строго в файлэксплорере.
Было бы замечательно если бы его можно было отобразить во вкладке с деревом проекта.


Название: Re: Создаю QBS плагин для VS Code
Отправлено: Пантер от Декабрь 20, 2020, 16:00
kuzulis, QBS, конечно, не нужен ;D
Но тебе огромное спасибо за твой вклад в свободное ПО!


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Декабрь 21, 2020, 15:58
Цитата: alex312
Сейчас окошко "outline" отображается строго в файлэксплорере.

А что это за окошко? Моешь заскринить? В СМаке плагине оно есть (где)?

Цитата: alex312
Как я писал в дискорде. Есть небольшая проблемка, когда плагин пытается использовать протухший тулчейн.

Тут я хз, надо разбираться почему тут successfully ))

Цитата: alex312
Как видно, запускаемый таргет обозначен ракетой

Нашел ракету, но сюда ее не вставить - она портит тут сообщение.

Цитата: alex312
а uninstall  - зелененький.

А что это за таргет? Почему он зеленый? Может это просто ты забыл в Гит добавить его? (т.к. оно вроде зеленым помечает новые файлы/директории, которые еще не запушены в гит).


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Декабрь 21, 2020, 17:32
UPD: По поводу "отключенных" узлов в дереве проекта пока сделал их отображение в виде зачеркнутого текста (см. картинку).
Но как-то смотрится не очень.

Может какие-нить "кошерные" юникод символы для таких узлов в конце вставлять?
Типа могилки, крестиков и прочих? )

Типа: ❌ , ✗, † , ✂,


Название: Re: Создаю QBS плагин для VS Code
Отправлено: alex312 от Декабрь 21, 2020, 18:22
Цитата: alex312
Сейчас окошко "outline" отображается строго в файлэксплорере.

А что это за окошко? Моешь заскринить? В СМаке плагине оно есть (где)?
Это окошко https://code.visualstudio.com/docs/getstarted/userinterface#_outline-view , и оно отображается в файлвьювере.
А было бы прикольно если бы оно или аналогичное показывалось всесте с деревом проекта.


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Декабрь 21, 2020, 20:01
Цитата: alex312
А было бы прикольно если бы оно или аналогичное показывалось всесте с деревом проекта.

Ахх, ясно.

Тут по ходу можно конечно, но придется пере-реализовывать всю логику:

* https://code.visualstudio.com/api/references/vscode-api#registerDocumentSymbolProvider

Из плагина 'cpp-tools' (а там не мало, честно сказать):

* https://github.com/microsoft/vscode-cpptools/blob/main/Extension/src/LanguageServer/Providers/documentSymbolProvider.ts

Может поэтому тоже этой фичи нет и в cmake плагине (по крайней мере у меня нет outline в дереве проекта cmake).


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Декабрь 22, 2020, 14:53
@alex312, я создал issue на гитхабе по поводу outline: https://github.com/microsoft/vscode-cpptools/issues/6693

Глянь, плз, то это или не то что ты имел ввиду. Если то - то тоже можешь пять копеек добавить. :)  


Название: Re: Создаю QBS плагин для VS Code
Отправлено: alex312 от Декабрь 22, 2020, 17:15
@alex312, я создал issue на гитхабе по поводу outline: https://github.com/microsoft/vscode-cpptools/issues/6693

Глянь, плз, то это или не то что ты имел ввиду. Если то - то тоже можешь пять копеек добавить. :)  

Ага, это то. Единственное, не знаю, по адресу ли.
Хотя если в широком смысле, то по адресу (в микрософт) :)


Название: Re: Создаю QBS плагин для VS Code
Отправлено: alex312 от Декабрь 22, 2020, 20:38
@alex312, я создал issue на гитхабе по поводу outline: https://github.com/microsoft/vscode-cpptools/issues/6693

Глянь, плз, то это или не то что ты имел ввиду. Если то - то тоже можешь пять копеек добавить. :)  

Там чувак дал ответ  ::) . Мне аж немножечко стыдно.


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Декабрь 23, 2020, 15:37
Упс, да.  ;D


Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Декабрь 29, 2020, 19:45
Ну, т.е. надо бы как-то сообщать что тулчейн протух, и не запускать билд.

А какое поведение с этим в QtC сейчас?



Название: Re: Создаю QBS плагин для VS Code
Отправлено: kuzulis от Январь 11, 2021, 20:30
Выкатил первую как бы стабильную версию плагина v1.0.0: https://github.com/denis-shienkov/vscode-qbs/releases

Также, обновил ее в VSCode маркете.

Список изменений тут: https://github.com/denis-shienkov/vscode-qbs/blob/master/CHANGELOG.md

Пользуйтесь наздоровье, товарищи! :)