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

OSCHINA-MIRROR/xeroin-weapp-support-plugin

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Поддержка 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 )

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

Введение

Добавьте поддержку разработки小程序 для WebStorm с помощью плагина. Поскольку я только начинаю изучать разработку плагинов для IDE, то пока реализовал лишь самые базовые функции. Необходимы опытные разработчики плагинов для IDEA, чтобы улучшить этот плагин. Официальный IDE от WeChat для разработки小程序 я, честно говоря, не очень люблю. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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