TGViewer
Хэндлим тему | Дерепко Хэндлим тему | Дерепко @handle_topic · 276 subscribers
Post #40 596
Хэндлим тему | Дерепко Куда пропал? #оффтоп С середины Апреля ничего не писал, но много разного произошло. Если перестал писать статьи и заметки, то чем дольше этого не делаешь, тем дольше будешь это откладывать. Кто занимается подобным то скорее всего меня понимает. При этом…
👍Апрувнули релиз, плагин теперь доступен, статья лежит на хабре, можно пользоваться и хейтить.

Короткий обзор возможностей:
Плагин позволяет сделать строчки чем-то большим, чем просто строковый литерал.

Например, строка может быть:
- Названием файла
- Названием свойства класса
- Названием метода
- Еще что-то?

Плагин имеет некую систему базового референса, от которого можно делать вычисления:
- Проект
- Директория
- Текущий файл
- Переменная ($var->…)
- Аргумент (method($var, …))

Описывая эти вещи самому можно сделать довольно сложные вычисления простым декларативным языком:

Подсказки для Yii2 метода render():

<files
className="\yii\base\Controller"
methodName="render"
argumentIndex="0"
fileExt="php"
relatedTo="file"
>
<directoryProcessors>
<regexp from="Controller\.php" to=""/>
<regexp from="([a-z])([A-Z])" to="$1-$2"/>
<regexp from="/controllers/" to="/views/"/>
<regexp from="/modules/([^\\/]+)/views/" to="/themes/default/modules/$1/views/"/>
</directoryProcessors>
</files>


Подсказка метода render() в файле представления:

<files
className="\yii\base\View"
methodName="render"
argumentIndex="0"
fileExt="php"
relatedTo="directory"
/>


Подсказка мейлера:

<files
className="\yii\swiftmailer\Mailer"
methodName="compose"
argumentIndex="0"
fileExt="php"
relatedTo="project"
>
<directoryProcessors>
<append value="common/mail/" />
</directoryProcessors>
</files>


Подсказка Active Form:

<properties
className="\yii\widgets\ActiveForm"
methodName="field"
argumentIndex="1"
relatedTo="argument"
relatedArgumentIndex="0"
/>


Плагин позволяет комбинировать множество файлов конфигурации.
Можно предоставлять конфиги через библиотеки, чтобы конечные пользователи уже имели у себя весь набор подсказок.
Не делаем плагины под технологию, делаем конфиги к одному плагину.

——

Статья: https://habr.com/ru/articles/868898

Публичный репозиторий: https://github.com/xepozz/meta-storm-idea-plugin

Плагин на маркетплейсе: https://plugins.jetbrains.com/plugin/26121-meta-storm

@handle_topic
Хабр Meta Storm Plugin – еще один плагин для PHPStorm Я занялся разработкой плагина для Yii3 под PHPStorm некоторое время назад. Помимо плагина время от времени заглядываю в сам Yii3, на работе использую Yii2, различные библиотеки и вовсе на чистом PHP...
  • 🔥 16
  • 👍 1
More from @handle_topic
  1. Sep 9, 2026Пыхник’26 — целая неделя PHP! С 28 сентября по 2 октября пройдёт Пыхник’26 — онлайн-конфер…
  2. Aug 24, 2026Мой Pull Request в vlucas/dotenv смёржили! Рад ли я? Конечно. Прихнаюсь честно, у меня это…
  3. Aug 5, 2026Jetbrains выделили LSP ядро для Java/Kotlin, так что теперь вся (а вся?) мощщщщь IDEA дост…
  4. Jul 30, 2026Вайбкодеры?
  5. Jul 19, 2026Когда выучил высоконагруженные системы @git_rebase / send memes
  6. Jun 30, 2026Jetbrains Air на Windows! Если вы вдруг разрабатываете на винде (сожалею вам), то можете п…
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 →