Russian Qt Forum
Март 29, 2024, 01:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Создаю QBS плагин для VS Code  (Прочитано 18603 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« : Октябрь 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
« Последнее редактирование: Октябрь 22, 2020, 16:52 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Ноябрь 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: Спасибо всем кто помогал в тестировании и прочему. Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Ноябрь 03, 2020, 16:12 »

Добавил статью на хабр: https://habr.com/ru/post/526256/   Строит глазки
Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Ноябрь 10, 2020, 13:55 »

Добавил в маркет версию 0.0.8. Теперь можно установить по-нормальному.

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

ArchLinux x86_64 / Win10 64 bit
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #4 : Ноябрь 10, 2020, 13:58 »

огонь!
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #5 : Ноябрь 12, 2020, 22:19 »

Добавил в маркет версию 0.0.8. Теперь можно установить по-нормальному.
Более того, оно у меня само обновилось.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Декабрь 19, 2020, 14:46 »

Выкатил новую девелоперскую версию 0.0.9. Список изменений тут.

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

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

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

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

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

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

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

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

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

Есть у кого еще какие может идеи, что бы еще пофиксить/добавить?  Улыбающийся  
Записан

ArchLinux x86_64 / Win10 64 bit
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #7 : Декабрь 20, 2020, 13:26 »

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

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

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

Что-то похожее есть, сам я не знаю, но cmake плагин разукрашивает итемы, и цепляет иконки. (картинка во вложении)
Как видно, запускаемый таргет обозначен ракетой, а uninstall  - зелененький.
« Последнее редактирование: Декабрь 20, 2020, 13:30 от alex312 » Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #8 : Декабрь 20, 2020, 13:38 »

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

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

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

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

Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #9 : Декабрь 20, 2020, 14:02 »

Еще идея, не знаю насколько реализуемая.
Сейчас окошко "outline" отображается строго в файлэксплорере.
Было бы замечательно если бы его можно было отобразить во вкладке с деревом проекта.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #10 : Декабрь 20, 2020, 16:00 »

kuzulis, QBS, конечно, не нужен Смеющийся
Но тебе огромное спасибо за твой вклад в свободное ПО!
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #11 : Декабрь 21, 2020, 15:58 »

Цитата: alex312
Сейчас окошко "outline" отображается строго в файлэксплорере.

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

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

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

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

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

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

А что это за таргет? Почему он зеленый? Может это просто ты забыл в Гит добавить его? (т.к. оно вроде зеленым помечает новые файлы/директории, которые еще не запушены в гит).
« Последнее редактирование: Декабрь 21, 2020, 16:18 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #12 : Декабрь 21, 2020, 17:32 »

UPD: По поводу "отключенных" узлов в дереве проекта пока сделал их отображение в виде зачеркнутого текста (см. картинку).
Но как-то смотрится не очень.

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

Типа: ❌ , ✗, † , ✂,
« Последнее редактирование: Декабрь 21, 2020, 17:42 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #13 : Декабрь 21, 2020, 18:22 »

Цитата: alex312
Сейчас окошко "outline" отображается строго в файлэксплорере.

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

Сообщений: 2812


Просмотр профиля
« Ответ #14 : Декабрь 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).
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.061 секунд. Запросов: 23.