1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xeroin-weapp-support-plugin

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 7.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 04.06.2025 07:40 ebe7b4a

Поддержка WeApp в плагине

Для реализации плагина поддержки WeApp в IDE JetBrain я попытался написать грамматику BNF, но это оказалось слишком сложной задачей. Полное изучение этого вопроса требует времени, которого у меня нет из-за занятости на работе. Поэтому пришлось приостановить этот проект.

Хотя у JetBrains есть множество официальных документов по разработке плагинов, проекты слишком масштабны. В процессе изучения и исследования за последние дни я обнаружил, что расширение существующей поддержки языка может быть затруднительным. На самом деле, поддержка WeApp требует расширения только для xml (wxml), css (wxss) и js. К сожалению, мне не удалось найти подходящий путь для расширения поддержки.

За последние два дня я пытался написать файл с грамматикой BNF для wxml, что привело меня к полному изнеможению.

Официальная документация IDEA по разработке плагинов поддержки языка включает две основные части:

Введение в фреймворк

Практическое руководство## Журнал обновлений### 18 декабря 2018 Сегодня обнаружил, что у JetBrains есть еще один community js-библиотек для определения, который помогает улучшить определения библиотек для некоторых js-фреймворков. Можно добавить несколько библиотек в настройках Preferences | Languages & Frameworks | JavaScript | Libraries. В этом интерфейсе настроек есть возможность прямого скачивания, и он предоставляет список определений из открытого проекта на GitHub, среди которых есть три, которые могут быть связаны с WeChat Mini Programs:

Эта функция поддерживается только в версии Ultimate. В WebStorm я тестировал все три библиотеки, и они работают, но определение weapp-api не так полно, как определение wexin-app.### 19 декабря 2018 Наконец нашел подходящее решение для добавления API WeChat-приложения в плагин, добавив его напрямую в поддержку JavaScript. Сначала нужно найти JavaScriptLanguage в директории плагинов IDEA, затем найти JavaScriptLanguage.jar в поддиректории lib. Лучше всего добавить этот jar-файл в библиотеку SDK, чтобы использовать его при разработке плагина. В plugin.xml добавить:

<depends>JavaScript</depends>
...
<extensions defaultExtensionNs="JavaScript">
    <predefinedLibraryProvider implementation="com.ytw88.weappsupport.WeappJSPredefinedLibraryProvider"/>
</extensions>
  • depends не является обязательным, это позволяет плагину работать только на платформах, поддерживающих JavaScript.
  • Объявление extensions добавляет реализацию для extensionPoint: predefinedLibraryProvider JavaScript.

Отображение диалогового окна

В соответствии с официальной документацией, можно использовать Messages.showInfoMessage("Сообщение", "Заголовок") для отображения диалогового окна, а также использовать logger для вывода логов, хотя окно для отображения логов пока не найдено.#### Регистрация файла как известного типа Если использовать FileTypeManager.getFileTypeByExtension в FileTypeFactory.createFileTypes, это может привести к циклической зависимости и исключению, что не позволит запустить IDE. Необходимо найти плагин в директории /User/Library/Application Support/xxxxx/ и удалить его, чтобы IDE могла запуститься. В настоящее время Wxml-файлы регистрируются как Html-файлы, что достигается путем прямого использования HtmlFileType в WxmlFileTypeFactory (так как конструктор HtmlFileType не является public/protected, и, следовательно, невозможно его наследовать). Для wxss-файлов решение заключается в наследовании WxssFileType от CssFileType. В будущем можно будет выделить время для улучшения поддержки синтаксиса Wxml, например:* <import ...>

  • <block wx:if/elif/else ...>

2018. 12. 20

Обновление определений wxapi

  1. Обновление определений интерфейсов CanvasContext, добавление свойств и методов arcTo, clip, createPattern, measureText, setLineDash, setTextBaseline, strokeText, setTransform, transform.
  2. Добавление определений, связанных с Worker.
  3. Добавление определений интерфейсов, связанных с mDNS.
  4. Добавление определения интерфейса wx.compressImage.
  5. Добавление определений FileSystemManager и wx.getFileSystemManager.
  6. Маркировка интерфейса createContext как deprecated, добавление определения интерфейса createCanvasContext.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xeroin-weapp-support-plugin.git
git@api.gitlife.ru:oschina-mirror/xeroin-weapp-support-plugin.git
oschina-mirror
xeroin-weapp-support-plugin
xeroin-weapp-support-plugin
master