Pull to refresh

Comments 139

Немодальное окно коммита это супер, спасибо.

Да, прямо бальзам на сердце.

Очень прошу, не делайте такую скорость анимации, в глазах рябит
ML — очень интересно. Надо попробовать. Вы собираете какие-то данные или оно только локально работает и ничего никуда не отсылает?

И еще, вы планируете сделать отключение подсветки в phpdoc одной галкой, без стрданий с цветовой схемой, которые все равно не полностью убирают подсветку (так и не получилось убрать для @ protperty)?
Вы собираете какие-то данные или оно только локально работает и ничего никуда не отсылает?

Сам ML работает исключительно локально.
Анонимизированные данные собираем только, если вы включили это явно в Preferences | Appearance & Behavior | System Settings | Data Sharing.

И еще, вы планируете сделать отключение подсветки в phpdoc одной галкой, без стрданий с цветовой схемой, которые все равно не полностью убирают подсветку (так и не получилось убрать для @ protperty)?

Галку, к сожалению, пока не планируем, потому что есть трудности с реализацией.
Для @ property планируем, есть тикет, проголосовать можно вот тут youtrack.jetbrains.com/issue/WI-50427.
А не подскажете, можно ли как-то сделать возможность указывать в phpdoc только бросаемые из метода исключения, но при этом не перечислять в обязательном порядке еще и все его параметры (которые уже и так явно типизированы в объявлении)?
Вы хотите, чтобы при генерации PHPDoc для метода не создавались @param — правильно вас понял?
И чтобы IDE не подсвечивала такой блок как неполный.
Для типизированных параметров это уже работает. В настройках инспекции «PHPDoc comment matches function/method signature». Есть галочка «Allow missing parameters with type hints». В случае если галка проставлена PhpDoc не будет подсвечиваться как неполный

Не создавать и не подсвечивать в случае отсутствия @params и @return, если они
типизированы не как массивы, в силу понятных причин.

Отвечу за square. Такую фичу давно жду.
Присоединяюсь к пожелаюнию. Часто нужно создавать полный док, в котором куча дублирующей информации и только одна полезная строка, что бросается исключение.
Касательно генерации PhpDoc без лишней информации есть тикет вот такой. Правда он в статусе TBD пока что, но можно в комментариях высказать свои соображения как раз. По поводу подсветки ответил в комменте

Круто, только после обновы сломались все плагины работы с redis)

Подскажите, как именно сломались?
Плагин Iedis не реагирует с ошибкой в бэктрейсе
java.lang.NoSuchFieldError: DataSource

А плагин Redis вроде пытается что-то сделать, но не показывает никаких данных и в бэктрейсе ошибка другая
java.lang.NoSuchFieldError: Property_braces

Ошибки отправлю в соответствующий багтрекер разработчиков плагинов, но до обновы они оба работали.

Про Ledis: это сторонний плагин — можете сообщить об ошибке автору, ссылка на его трекер: https://codesmagic.myjetbrains.com/youtrack/issues/I2.
Про Redis: плагин также сторонний, он должен скоро обновиться и надеемся что ошибка исчезнет. Сейчас плагин в состоянии “The plugin update is pending JetBrains approval”.

Отличный релиз, спасибо.

Есть ли возможность вынести работу с базой в отдельное окно, при этом не устанавливая отдельно ДатаГрид?
Как-то включить оконный режим, чтоб список таблиц и сами таблицы открывались в одном отдельном окне?
Это понятно, суть в том, что хотелось бы, чтоб таблицы тоже в этом окне открывались, а не окне редактора кода:)

Это, к сожалению, невозможно.

Можно сразу в тему спрошу. В PHPStorm пользуюсь схемой раскладки для NetBeans. В DataGrid такую не нашел и не понятно как сделать. Есть такая возможность?
Спасибо, скачал keymap. Но потом открыл чтобы импортировать и нашел возможность поиска плагинов keymap-типа, там скачал для NetBeans. Я удивлен, наверное, это было добавлено в последней 2020.1 версии.
Берете вкладку с таблицей и перетягиваете за пределы окна phpstorm

У вас есть какие-то планы или новости насчёт аннотаций для generic'ов?
Я работаю в команде как раз с тем чуваком, что запилил их в PHPStan. И, естественно, мы их часто используем. Только из-за полезных в принципе аннотаций кодить стало тяжелее — IDEA теряет типы.

Проблему понимаем. Если исследование Никиты выльется в полноценный RFC, то тогда все понятно.

А с вариантами от PHPStan и Psalm есть нюансы, поэтому мы наблюдаем и думаем, что и как можно сделать.

Дико извиняюсь, местами скрины не те приложены. Не могли бы исправить по возможности?

Пересмотрел, вроде все те. Например, какие?

Автодополнение в секциях autoload(-dev) — другая секция
Создать новый тест для класса — класс соуса, а не шаблон теста

Похоже это проблема мобильной версии хабра. С пк все ок и даже анимированное.

Почему-то в 2020.1 переход через Ctrl+click по методу открывает файл с методом в вкладке, но курсор оставляет в том месте открытого файла (с нужным методом), где он был ранее или на первой строке, если файл не был открыт ранее. Предыдущие версии скролили файл до нужного метода. Бага (но в трекере не нашел), какая-то настройка?
(номер билда не подскажу, помучился и удалил)

У меня все работает.
version
PhpStorm 2020.1
Build #PS-201.6668.153, built on April 13, 2020
Licensed to ****
Subscription is active until November 16, 2020
Runtime version: 11.0.6+8-b765.25 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 5.3.0-46-generic
GC: ParNew, ConcurrentMarkSweep
Memory: 1923M
Cores: 8
Registry: run.processes.with.pty=TRUE, debugger.watches.in.variables=false
Non-Bundled Plugins: com.markskelton.one-dark-theme, com.wakatime.intellij.plugin, net.seesharpsoft.intellij.plugins.csv, de.espend.idea.php.toolbox, de.espend.idea.php.annotation, fr.adrienbrault.idea.symfony2plugin
Current Desktop: KDE

Не воспроизводится на нашей стороне и нет похожих репортов на трекере. Возможно проблема вызвана сторонним плагином: попробуйте отключить все скачанные. Это делается через Settings | Plugins > кнопка шестеренки > "Disable All Downloaded Plugins".

1. После обновления стало как-то совсем печально тормозить. Неужели так трудно не вешать основной поток индексацией подсказок? Ваши мелкомягкие конкуренты умеют это лет 30 как.
2. Какой идиот придумал молча заменять неразрывный пробел (правый альт + пробел) на обычный? И вообще, научитесь как-нибудь не перехватывать правый альт, если на нём висят символы, не соответствующие левому.
3. Человека, который придумал брать дерево папок для файлового диалога из кэша проекта, а не с диска, ждёт специальный восьмиэтажный котёл в аду.
3. Человека, который придумал брать дерево папок для файлового диалога из кэша проекта, а не с диска, ждёт специальный восьмиэтажный котёл в аду.

Кстати да. Уже привык постоянно жать кнопку обновить прежде чем искать нужную папку. До этого очень сильно дезориентировал этот кеш.

Подтверждаю, лишний клик. Часто открываю мелкие проекты, поправить пару строк, уже в привычку вошло тыкать рефреш.
Один раз ночью долго сидел и смотрел на древо папок, пытаясь глазами найти только что созданную директорию. Раз 10 перепроверил, перезапустил шторм…

1) У вас тормозит только во время индексации или без нее тоже? Расскажите что конкретно и при каких обстоятельствах тормозит.
2) На трекере нет похожих реквестов и, насколько я вижу, нет никакого процесса автоматизации замены пробелов. Можно перейти на наш багтрекер и описать проблему в деталях.
3) Да, сам страдаю. Судя по всему, диалог открытия файлов будет в скором времени обновлен и мы надеемся на то, что проблема больше не будет происходить: https://youtrack.jetbrains.com/issue/IDEA-166961 > https://youtrack.jetbrains.com/issue/IDEA-101218

У меня после апгрейда с 2019.3.4 (ЕМНИП) на 2020.1 начал подтормаживать клавиатурный ввод — почти незаметно, миллисекунды или десятки миллисекунд, но бесит, т.к. немного похоже на терминал на далекий сервер с не особо коротким пингом. Подсказки тормозят заметнее, и т.к. полагаюсь на них при быстром вводе, тормоза иногда сбивают с толку. Заметно даже тогда, когда нет фоновых процессов типа индексации. Новый MacBook Pro в почти полном фарше, 32Gb RAM, SSD, Catalina 10.15.4. На Ubuntu 18.04 с 2020.1 такого не замечаю.

Хм, к сожалению, не припоминаю похожих проблем на маке. Только проблемы с 4k/внешними дисплеями типа https://youtrack.jetbrains.com/issue/JBR-526 — но они и до 2020.1 были. Если у вас внешний монитор — попробуйте его отключить.
Попробуйте также поменять Antialiasing в Preferences | Appearance & Behavior | Appearance на Greyscale (https://youtrack.jetbrains.com/issue/IDEA-238301).

Знаете — помогло. В основном сработало переключить Antialiasing в IDE, в Editor пока оставил Subpixel, смена там на Grayscale особо ничего не меняла. Поработаю и посмотрю, как дальше пойдет. Это новая опция в 2020.1?

Не, было доступно давно.

Поддержка composer.json
А это всё можно научить запускаться изнутри Докера? Т.е. когда composer установлен в свой контейнер, а на хосте его нет.
Да. В настройках Composer выбрать Remote Interpreter и там создать новый CLI From Docker.

В 2019 ставил триал и только начал привыкать, как отвалилось автосохранение скрипта.


Выглядело так: обычно Cmd+S нажимать не надо, все всгда сохранялось автоматом. А тут вдруг рраз — и внесенные в код изменения не учитываются.
Потратил час на отладку, уже начал считать себя кретином, как случайно по старой памяти тыкнул Cmd+S и изменения самым волшебным образом учлись.
Это такой воспитательный прием? Только в триалке, или в Шторме вообще?

Автосохранение настраивается в разделе Synchronization в File | Settings | Appearance & Behavior | System Settings. По умолчанию файл автосохраняется при смене фокуса из окна PhpStorm в любое другое. Различий между триальной и полной версией в этом плане нет. Если вы на маке и вы переключаетесь из IDE в другое приложение через нотификации — то возможно это https://youtrack.jetbrains.com/issue/IDEA-236432.

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

Больше предположений нет — надо смотреть детальнее: что за скрипт, где хранится, как проверяются изменения и прочее. Чтоб не засорять комментарии — лучше либо написать нам на трекер https://youtrack.jetbrains.com/newIssue, либо создать тикет через Help | Contact Support.

ML круто конечно, но есть вопросы:
— настройки с 2019.3 не умеют импортироваться? Видел что там новый формат какой-то сделали с 2020, но в итоге после обновления в toolbox настроек моих 0

— зачем-то поменяли цветовую схему? Переменные без жирного текста стали (решается ручным переносом схемы через импорт, см пункт 1)

— появились баги с рендером шрифтов, местами какие-то глитчи на буквах в списке файлов и менюшках, ожидается вообще фикс или ждать 2020.3? (в вашем трекере висит репорт похожий, но удивлён что это в релиз попало)

1) Умеют и должны. У вас, случайно, не кастомизированы системные настройки IDE? Пока что я нашел только 2 похожие проблемы: https://youtrack.jetbrains.com/issue/IDEA-237672 + https://youtrack.jetbrains.com/issue/TBX-4507, но они не в точности повторяют вашу. Поэтому было бы здорово если бы вы зарепортили эту проблему отдельно на нашем трекере.
2) Какую цветовую схему вы используете (можно посмотреть в File | Settings | Editor | Color Scheme | PHP) и в каком конкретно случае переменные не жирные? Пример дефолтной схемы, где видны переменные выделенные жирным:

3) Похоже на https://youtrack.jetbrains.com/issue/WI-52271 > https://youtrack.jetbrains.com/issue/JBR-2264. Проблемой занимаются.

1) В idea.properties только «editor.zero.latency.typing=true», на .vmoptions есть много разного (https://pastebin.com/jN22fvUw). Больше ничего не трогал, ide из toolbox стоит. С webstorm проблема такая же, там настроек поменьше стоит. Первая ссылка не очень похожая, вторая ссылка — 404.

2) Default (менял только синеватый фон на белый в php и всё).
К примеру разница вот (делал для webstorm, но ситуация аналогичная и в phpstorm — шрифт один и тот же, сглаживание одинаковое, ну и глитчи на табах и номерах строк хорошо заметны)
image

3) Да, очень похожие баги, из-за него в целом и пришлось откатиться (хотя настройки руками тоже не хочется переносить).

1) idea.properties выглядит ок. Если реально настройки не импортировались — надо смотреть в индивидуальном порядке. За 2 дня пока ни одного такого же репорта. Можно написать нам через Help | Contact Support.
2) Попробуйте изменить схему в File | Settings | Editor | Color Scheme на "Classic Light". Вот похожий репорт: https://youtrack.jetbrains.com/issue/IDEA-237239


Естественно, когда будет время и желание протестировать версию 2020.1 вновь :)

Это немного иронично, но после переходов 2019.3 → 2020 → 2019.3 → 2020 у меня пропала менюшка с настройками. По хоткею тоже не открывается, поэтому проверить пункт 2 я не могу физически:
image
Вспомнил что на экране выбора проекта есть менюшка ещё с настройками — оттуда зашёл. Да, слетела тема на Intellij Light и судя по тому что пропали все пути моих серверов в меню Delpoyment, то проблема видимо в том, что настройки вообще не подтянулись (хотя правила для языка, которые я импортировал в 2019.3 ещё выбраны и в 2020, но возможно это через проект как-то подтянулось). В общем разбираться со всеми этими багами в рабочее время как-то не очень хочется, очень обидно видеть такие релизы (с 2017 версии никогда не было проблем и обновлялся в день релиза).

Да, странно. Рад был бы сказать в чем дело, да не сталкивался с таким еще. Такое надо в индивидуальном порядке смотреть, к сожалению.

Попробовал обновится спустя месяц — настройки появились, часть из них даже синхронзировалась, но шрифт с Menlo слетел на Jetbrains Mono — это так задумано или баг завести?
Судя по всему задумано т.к. у меня тоже шрифт слетел на Jetbrains Mono
До версии 2019.1 включительно запускал php скрипт в консоле через Shift-Ctrl-X, который выводил данные в цвете:
print "\033[0;31mText\033[0m";

В последних версиях, запуская скрипт по двойному Ctrl (Run Anything), потерялся цвет и текст ограничивается 80 символами с переносом на новую строку.

Такое поведение чем-то лечится?

Передача цвета работает нормально на дефолтных настройках: https://i.gyazo.com/44f453cde7f34e48f7a484db2f1f2705.mp4. Чтобы разобраться в проблеме необходимо больше информации о вашей системе.
Насчет 80 символов — да, проблема есть, можете попробовать решение описанное здесь: https://youtrack.jetbrains.com/issue/WI-47811#focus=streamItem-27-4072493.0-0

Предложенное вами решение, выключение run.anything.use.pty, помогло.
Причем изменение цвета текста также стало работать.
Спасибо.

Windwos 7x64
Кучу всего понадобавляли, а старые баги так и висят неисправленными:
1. Баге 2 года: невозможность обновить список команд Laravel Artisan в Command Line Tools — нужно пересоздавать тулзу каждый раз. При создании — все ок, при обновлении существующего — ошибка. После того как меня вчера бомбануло — исправили методом выпиливания поддержки 2го Symfony, хотя я уверен что там просто по-разному обрабатывались настройки тулзы при создании и при обновлении т.к. при создании можно выбрать на базе какой версии Symfony работает тулза. При обновлении скорее всего эта настройка игнорировалась. Самое прикольное что какое-то время более 2х лет назад все работало прекрасно, но потом довольно быстро это сломали. Тестирование на высоте.
2. После выпиливания удобного Command Line в пользу неудобного Run Anything вылезла бага с отображением кириллицы в окне Run. Баге 9 месяцев и 3 мажорные версии за это время вышли уже.

Ну и куда же без новых багов? Да таких что хочется кого-то уволить за то что недотестировали (менеджеров, например). Первым с чем я столкнулся после обновления — эпичный по своей вредности баг: отсутствие контекстного меню при правом клике. Я не поверил своим глазам и несколько раз перезагрузил IDE и даже проверил мышку. А когда в багтрекере нашел багрепорт об этом — первыми кто предложил вариант исправления были именно пользователи… Решение — переименовать группы в настройках External Tools и External SSH Tools. По умолчанию обе группы называются «External Tools», что после какого-то изменения в IDE привело к конфликту названий. Эти названия используются в главном меню в разделе Tools. Прикол в том, что никто, похоже, не додумался проверять не конфликтуют ли названия групп в External Tools и External SSH Tools между собой и с другими названиями в разделе Tools.
Идем дальше — это не еще не всё. Решение — переименовать группы в External Tools и External SSH Tools. Проблема номер 1: контекстное меню не работает, т.е. нельзя выбрать группу и вызвать на ней контекстное меню чтобы отредактировать название (кстати, даже тут JetBrains отличились — редактировать название группы в последствии оказалось невозможно. Там просто нет такого функционала. Ни через контекстное меню, которого там вообще нет при клике на группе, ни как-то иначе.). Чешем репу, идем в баг трекер и ругаемся, в надежде на подсказку. Способ таки подсказали. Опять пользователь, а не разработчики.
Проблема номер 2: чтобы переименовать группу нужно отредактировать КАЖДЫЙ Tool в группе, заменив название группы (facepalm от такого юзабилити хочется выдать Таносовской перчаткой бесконечности тому, кто такое допустил). Вот представьте себе что у вас ну хотя бы 30 тулов там. И нужно каждый отредактировать. Увлекательное же занятие, правда? Ведь нам больше нечем заняться в рабочее время, кроме как борьбой с багами и «фичами» IDE! И это не EAP, а релизная версия!!!!.. А знаете что в этом самое прикольное? Я нашел файл, где хранятся эти настройки. И там красивый такой XML в котором все тулзы сгруппированы в групповой тэг с атрибутом что-то типа name, т.е. нужно отредактировать только 1 строку чтобы переименовать группу. Почему этого функционала не добавили в IDE изначально — я не понимаю. Юзабилити на небывалой высоте.

Ну и на последок стоит поднять одну старую тему, которая так же есть в багтрекере.
Была когда-то такая полезная функциональность — Command Line (не путать с терминалом!). Она была довольно удобной, хотя и имела свои баги, пусть и не критичные. Удобной она была в основном тем, что там была строка ввода команды, которая умела подсказывать команды и их параметры из настроек Command Line Tools. Но уже год как её выпилили заменив на Run Anything. Абсолютно неудобный и глючный инструмент. В итоге я сейчас многие команды запускаю из терминала, без подсказок и прочих удобств. Вот почему:
1. 9-месячная бага с кириллицей — я вынужден в своих командах выводить исходные данные, которые получаю из внешних источников. Там часто кириллица. И она нечитаемая.
2. Каждая вызванная команда выполняется в окне Run полностью стирая то, что выводила предыдущая команда. Т.е. я не могу даже сравнить результаты выполнения 2х команд если они запущены последовательно. Причем если запустить параллельно — открывается дополнительная вкладка. Не нашел настройки как это исправить.
3. Ввод команды в Run Anything абсолютно не удобный. Вот представьте что у вас есть команда с кучей аргументов и опций. Причем аргументы — это ID записей в БД, которые вы не помните наизусть, а названия опций в Run Anything вообще не подсказываются. Т.е. чтобы настроить команду нужно лезть в ее класс и смотреть опции или лезть в БД или еще куда-то чтобы найти нужные ID. Проблема в том, что при клике куда-либо кроме окна Run Anything — оно закрывается. Это вообще эпичнейший по своей сути бред.
4. Команду нельзя изменить перед перезапуском. Нужно каждый раз вызывать Run Anything со всеми его косяками.
Так что привет терминал, прощай автодополнение. Run Anything я все же использую, но только для простых одноразовых команд.

Простите. Пригорело.

Как мне кажется пора притормозить с новым функционалом и доделать/исправить/переосмыслить текущий. Написать побольше автотестов в конце-концов чтобы не вылезали такие эпичные баги как с группами в External Tools и External SSH Tools. Мне и некоторым другим пользователям не нравится как развивается IDE в последние год-полтора. Если раньше от версии к версии были видны качественные улучшения с приемлемым количеством багов, которые в большей части исправлялись минорными версиями, то сейчас качественные улучшения уже не так сильно влияют на разработку, но зато добавляются довольно критичные баги и меняется полезный функционал на относительно бесполезный. Поверьте, если вы выпустите мажорную версию в которой будут только исправления багов, улучшение стабильности и доработки текущего функционала — пользователи будут вам только благодарны. IDE уже 2 года назад была прекрасна, не надо ее убивать вредоносной погоней за новым функционалом.
А когда в багтрекере нашел багрепорт об этом — первыми кто предложил вариант исправления были именно пользователи…

Это просто пользователь полез вперед и вместо дать линку на существующий тикет или оставить это все на JB сапорт описал все сам своими словами (приходится, ибо довольно часто другие пользователи попросту не могут прочитать решение в другом тикете или даже в комментарии-другом выше того что они пишут...). Если бы не пользователь то JB сапорт отписались бы сами, просто чуток позднее.


Плюс время: тот комментарий то был написан в полночь по местному времени а JB сапорт в то время очень редко активен, по понятным причинам.


В общем, не приписывайте этот конкретный момент на плохой сапорт: у них кроме чтения баг трекера (дев тикеты) есть и собственно сапорт тикеты, форум, StackOverflow и им подобные сайты где тоже нужно проверять и отвечать.

Я обычно ищу багрепорты и просматриваю несколько, но ищу в ветках PHP Storm или Web Storm. Поэтому первый багрепорт не видел — он был для другой IDE (IntelliJ IDEA 2020.1 Snapshot (Ultimate Edition) EAP версия).
Кстати, о качестве релизной версии продукта: первый багрепорт был создан 2 месяца назад в ходе EAP и он дожил до релиза PHP Storm и, видимо всех других IDE где есть этот функционал. Не, я понимаю, что это не рекорд (мои примеры выше — 9 месяцев и 2 года покруче будут), но блин, а нафига тогда EAP? Зачем армия бесплатных страдальцев напарывается на все возможные и невозможные баги и репортит их? Я тоже был среди них, хоть у меня и полноценная лицензия на руках, но EAP, кажется 2019.1, отбил у меня желание страдать — пользоваться было невозможно, весь редактор был в ошибках. Тем не менее EAP меня догнал… в релизной версии =(
Сапорт-то нормальный чаще всего. Но далеко не всегда.

1) https://youtrack.jetbrains.com/issue/WI-43544 — её пофиксили, но если вы не довольны решением — то было бы полезнее об этом написать именно там, чтобы вас мог услышать/прочитать разработчик, занимавшийся проблемой.
2) https://youtrack.jetbrains.com/issue/WI-47811 — да, нам жаль что проблема до сих пор не решена.
3) Справедливости ради, это решение было предложено нашими сотрудниками: https://youtrack.jetbrains.com/issue/IDEA-233252#focus=streamItem-27-3991288.0-0. https://youtrack.jetbrains.com/issue/IDEA-232070 — Проблема действительно реальная и от нее может как следует пригореть, и я сам, честно говоря, удивлен что 1) её допустили 2) она до сих пор не починена.
4) Про run anything — да, камень преткновения. FYI, репорт про отсутствие истории — https://youtrack.jetbrains.com/issue/WI-48014. Лично мне тоже стыдновато, что проблема до сих пор не решена. Постараюсь поднять её вновь на очередном обсуждении.
5) “названия опций в Run Anything вообще не подсказываются” — можете привести пример? Например в той же artisan console подсказки аргументов выводятся.

1) youtrack.jetbrains.com/issue/WI-43544 — да, да, та самая таска. И это я тот психанутый, кто этот полуразложившийся труп вчера пнул. Мне в принципе все-равно как ее исправили, лишь бы работало. Просто способ лечения немного странный использован — «У пациента стрела в колене. Мы можем ее разломать и вытащить или отпилить ногу выше колена. Пилим ногу — так надежнее.» =)
3) Я по поиску нашел только вот эту: youtrack.jetbrains.com/issue/WI-52284, дубликатом она стала позже. Оказалось что проблема куда старее.
4) Ужасное решение на самом деле. Для тех, кто активно пользуется и разрабатывает консольные команды — это просто адище. Для примера — в этой версии исправили одно из не самых удобных решений подобного типа — окно VCS Commit, которое блокировало доступ к редактору. Вот с Run Anything примерно та же проблема. Я не имею ничего против этой функции в целом, но если она не заменяет собой столь критичный для многих функционал Command Line Tools полностью и без альтернатив.
youtrack.jetbrains.com/issue/WI-48014 — спасибо, подписался и добавил вариант реализации, который, по идее, не слишком сложно реализовать будет.
5) В коммандах Symfony и Laravel есть 2 типа передаваемых в команду данных: аргументы и опции.

Аргументы подразумевают наличие значения и вводятся строго по порядку их объявления при этом не требуя вводить имя аргумента.
Пример: artisan migrate path_to_migration_filde
path_to_migration_filde — аргумент.

Опции — это опциональные параметры, которые вводятся по имени, не имеют порядка ввода и чаще всего являются включателями чего-то, хотя могут и значение требовать.
Пример: artisan migrate --step
--step — опция.
И не смотря на то что многие комманды в Run Anything все же подсказывают опции, но вот проблема в том, что кастомные команды этой привелегии лишены. Да и вообще при вводе команды хотелось бы видеть в том числе и описание агрументов и опций, зря мы их чтоли туда добавляем? Ато видны только значения по умолчанию и то неправильные.
Пример:
protected $signature = 'app:import_data
{company_id=0}
{building_id=0 : several values allowed, separator: coma. Example: 122,233}
{--test : do not save data to db}
{--no-notifications : do not send notifications to users}
{--no-report : do not send report to office}';

В Run Anything отображается что оба аргумента по умолчанию null. А ведь там четко указано что они по умолчанию 0. И никаких описаний, никаких опций. Мне реально проще в терминале вызвать такую команду, открыв его в отдельном окне, а класс с командой в редакторе, чем затыкивать Ctrl вызывая Run Anything по 100 раз.

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

Теперь я буду поспокойнее — мой словесный понос до Вас долетел и есть надежда на светлое благоухающее будущее =)

Спасибо за дополнение, проверю на выходных.
Насчёт критики — всё ок: накипевшее надо изливать. Порой удачно подобранные слова помогают достучаться до разработчиков, к тому же многое из описанного вами — объективная и конструктивная критика. Всем бы терпения и желания подкреплять свои слова столь подробными примерами.

И снова я со своими реликтами =) В этот раз реликт можно отправлять в школу — 6 лет уже стукнуло: youtrack.jetbrains.com/issue/IDEA-124420
Причем опять же не так сложно исправить — игнорируем стили в TODO окне и готово. Стили и не нужны там по факту — только глаза мозолят.

Я определенно считаю что пора сделать перерыв в добавлении нового функционала и довести текущий до ума. Там похоже уже авгиевы конюшни багов и косметик накопились. Тем более к выходу PHP 8 надо бы устаканить IDE, ато посыпется всё как доминошки… не хотелось бы мне такого.

Еще обратите внимание на вот эту багу: youtrack.jetbrains.com/issue/WI-51861
Я не уверен что она проявляется у многих, но у меня начиная с 2020.1 она настолько постоянная что я уже перестал обращать на нее внимание вызывая подсказку комбинацией ctrl+p. В 2019.* она как-то пореже проявлялась. Потенциально бага может быть довольно вредоносной если ее появление будет массовым.

О TODO — согласен, старый баг. Не скажу, почему разработчик им не занимается: скорее всего занят другими, более приоритетными задачами.
Насчет WI-51861: пока ни одного подобного случая не видели. Мы пытались воспроизвести проблему, но пока безуспешно. К сожалению, пока неясно что вызывает проблему и как её решить.
Насчет "устаканивания IDE" — также согласен, но у разработчиков определенно свои взгляды на планирование. Разработчиков тоже можно понять: поддержку новых технологий надо вовремя добавлять в IDE. На каждый реквест "этому багу N лет" найдется "эта фича уже месяц как announced — когда поддержка?". Надеюсь что следующий релиз как раз будет ориентирован на повышение качества, нежели добавление новых фич.

WI-51861 определенно странный баг, скорее всего как-то связанный с моей системой или с Laravel (есть подозрение что фреймворк тут тоже играет роль). Я пока не могу проверить на рабочем компьютере из-за удаленки. Попозже дополню, если он присутствует и там. Но он определенно постоянный у меня и не зависит от настроек IDE.

Новые фичи нужны, никто не спорит. И делать их куда интереснее, по себе знаю. Тем не менее баги имеют свойство размножаться и накапливаться. А потом сожрут разработчиков =)))

Буду надеятся на багобойный релиз.
Категорически согласен с посылом автора. Так мило читать каждый раз про стопятьсот миллионов поддерживаемых новых технологий, когда в простейшем Find in Path результаты каждый раз выводятся в ведомом одному богу порядке. А благодаря гениальному интерфейсному решению это окно ещё и нельзя свернуть, ведь у него нет соответствующей кнопочки. (Кстати, развернуть на весь экран — тоже только мышкой за края, удобно.) Поэтому если ищешь по какой-то теме, а при этом ещё и лазишь в найденные результаты, получается отлично потренировать память, что уже просмотрел, а что ещё нет. Хотя казалось бы.
У Find in Path есть кнопка Open in Find Window, которая переместит результаты в tool window. А его можно как угодно сворачивать, и при желании откреплять в отдельное окно.
Не совсем понял, в чем проблема. Можете показать на скриншоте?
Попробовал HTTP-client — замечательно работает!
Теперь можно не держать в браузере в закладках POST и GET онлайн генераторы, можно просто насоздавать файлов с нужными запросами, запускать их, редактировать и хранить, подключать к проекту, исключать, версионность — очень удобно. Это совсем не то, что раньше — собираешь запрос вручную, сбрасываешь коллегам по мессенджерам, выполняешь из браузера
Неожиданное, но приятное дополнение.
А вы не пробовали Postman? Я все никак не могу с него слезть т.к. он очень удобен. Там как раз есть все о чем вы писали. А еще можно написать генератор конфигов для вашего API и импортировать их в Postman. Мобильщикам такой подход весьма по душе.
Нет, Постман не пробовал. Иногда есть какой-то объём работы, когда нужно варить запросы, обычно использовали что-то из интернета
Терь вот и коллегам собираюсь показать, потому что PhpStorm все используют, а вот для http запросов — кто во что горазд.
А Postman, возможно, очень хорош, но теперь, получается, для наших несложных целей он вроде как и ни к чему
В принципе если действительно не особо много запросов и они довольно простые, то нет смысла еще что-то другое использовать. Postman для меня еще удобен за счет того что запросы синхронизируются в облако и можно на разных компах использовать не заморачиваясь с импортом/экспортом и т.п. У меня уже довольно много проектов и все запросы в одной проге хранятся.
Вы знаете, всё же попробовал Postman — и он реально хорош. Стали использовать для возни с запросами и дебагом, хотя для атомарных тестовых запросов всё же используем встроенный в phpstorm функционал, удобно, что можно эти запросы заливать прямо в проект, версионить и это всё.
Но постман прям очень хорош, спасибо за наводку
Помимо Postman есть замечательная Insomnia. Она очень богата на функционал.
Иногда PHPStorm не может засинкать связи обьектов и показывает что метод не найден. При этом он предлагает создать его, можно ли как то добавить пункт — указать где он лежит и чтоб шторм засинкал связи?
А можете пример привести? Потому что со слов не очень понятно.
это ларавелевская магия. такого метода там действительно нет. Я сейчас как раз пытаюсь с помощью своего плагина сделать эти комплишены удобоваримыми.
Именно так, в Laravel чертова куча вещей вызывается по через __call и динамически пробрасывается на зависимости объекта. Мы какое-то время назад сделали stub'ы с подсказками на наиболее часто используемые методы, остальные приходится вызывать по документации.
пользуюсь второй год laravel ide helper чтоб не изобретать велосипедов
он далеко не все проблемы решает

Да, чаще всего можно, зависит от структуры объектов и вызова. Если всё просто, то можно делать нечто подобное:

хотелось бы без таких коментов обойтись :)

Надо тогда смотреть на проект поближе. К сожалению, из скриншота не ясна структура. Можете прислать больше скриншотов со связями объектов нам напрямую через Help | Contact Support.

Даже не стоит. В этом ларавеле частая магия с вызовом совсем других объектов через:
/** @mixin Builder */
class HasMany {
public function __call($method) { 
  $this->builder->$method();

  return $this;
}
}

В итоге шторм видит метод из класса миксина(Builder) и думает что возвращается то, что возвращается из того миксина, а на самом деле возвращается экземпляр HasMany. В итоге шторм «теряет» настоящий тип. Это я еще не расссказал о чисто магических методах. Как раз сейчас пытаюсь сгенерить нормальные phpDocs для шторма.
Лучше расскажите возможно ли в ближайшем будущем будет методы в phpDoc или где-нибудь еще обозначить как статическими так и не статическими? Чтобы они появлялись и в том и другом контексте. Очень много и такой магии в Laravel…
Не только в Laravel. Ещё есть FFI, где new/cdef/type и прочие являются одновременно и методами инстанса и статичными. Сейчас такое невозможно в шторме сделать, а значит стабы сейчас не до конца корректные.
Работает конечно, но мало кто будет так жмакать.

Перестала работать опция


Keep ')' and '{' on one line true

Пожалуйста, приведите пример кода, можно скриншотом.

    public function __construct(
        DoctrineIssueRepository $issueRepo,
        RedisProxy $redisGeneral,
        ReadContentService $readContentService,
        AbVariantsFetcher $abVariantsFetcher,
        TimeZoneGroupRepository $timeZoneGroupRepo
    ) {  <<<<<<<<<<<
        $this->issueRepo = $issueRepo;

Выставлена опция, но по нажатию CMD+ALT+L — разносит на разные строки

Спасибо за код. У меня при таких настройках:

работает как надо:


Проверьте не включен ли "Enable EditorConfig support" в File | Settings | Editor | Code Style.

EditorConfig

Задан как Default. Выставлены галки Around separator и After Comma


В настройках кодстайла, в Function declaration parameters выставлены Align when multiline и Keep ')' and '{' on one line. Выставление всех четырёх проблему не решает.


Ситуацию исправляет замена Braces Placement -> in function declaration -> next line if wrapped на просто next line


Как-то архи-контринтуитивно.
И до обновления работало наоборот, емнип. Но могу и соврать.

А когда наконец поборите эту багу, которая ломает код?
Заголовок спойлера
image


Ну и отключите автоимпорт глобальных классов, функций и констант. Который приходится отключать просто на постоянной основе, т.к. «настройки для нового проекта» просто не работают? Да и вообще этот функционал вредит только.
Судя по видео ничего не сломалось. Всего лишь код был отформатирован, вынеся обращение к классу в блок `use`.
Как это называется, выключено `fully-qualified class names`, или как-то так.

PS: У себя попробовал твой код вписать и сделать реформат — всё норм. Блок `use` не создавался.
Судя по видео ничего не сломалось


Стыдно должно быть не знать язык, на котором пишешь)) Вначале должен быть определён declare, а затем уже use, а не наоборот. Иначе PHP упадёт с синтаксической ошибкой.

Как это называется, выключено `fully-qualified class names`, или как-то так.

Да, выключено. И надо включать всегда для каждого проекта. Чесслово, меня уже это достало)) Причём автоимпорт fqn этот не нужен от слова «вообще».

Даже если брать популярные ОС проекты, где ещё кроме зенда/ламинаса он используется?
1) Берём какой-нибудь симфони, так там дефолтные fqn оптимизации: github.com/symfony/symfony/blob/master/src/Symfony/Component/Finder/Finder.php#L607
2) Берём ларку — там по-старинке.
3) Берём… что? Да почти нигде не используется этот мешающий функционал.
Я опираюсь на практический опыт с механической памятью. Еще ни одного проекта под руку не попадалось, где бы был прописан declare. Когда-то давно прочитал о нем, понял что мне это не надо и забыл. А когда понадобится, тогда и буду помнить.
И ничего постыдного в этом нет.

Ссылка на баг, если что: https://youtrack.jetbrains.com/issue/WI-44179. К сожалению, не могу сказать когда починят. Можно попробовать оставить комментарий с соответствующим вопросом.
Насчет настроек auto import в новых проектах: проверил — настройка работает. Правда она располагается немного в другом месте, но всё равно работает:

Лично меня немодальное окно коммита сильно напрягает. В нормальном окне виден список измененных файлов, действия производимые над коммитом (reformat, amend, etc.), также diff по выбранному файлу с быстрым «перекликиванием» выгружаемых данных.
А в немодальном окне этого нет. Приходится совершать множество дополнительных телодвижений. Например, мышкой выбрать нужный файл и ткнуть Ctrl+D (show diff). При этом, если нужно быстро переключиться на другой файл, то, как говорится, будь добр вначале закрой окно. Это крайне неудобно и не информативно.
К слову, сколько раз пытался найти в нем что-то хорошее — только что заметил мелкую «шестеренку» рядом с чекбоксом «amend», в котором доп опции можно выбрать. Неудобно до жути.
В общем, всё супер, кроме этого.

Чтобы быстрее открыть diff можно сделать либо двойной клик по файлу, либо нажать f7
С помощью f7 можно пройтись по всем изменения (как только заканчивается один файл, открывается другой)

Можно переключиться на старое окно коммита в File | Settings | Version Control | Commit: чекбокс "Use non-modal commit interface"

Спасибо. Я в старом окне работаю. Просто описал свои ощущения от не модальной версии (если не изменяет память, еев 2019 версии ввели).

Ага, спасибо! По окну коммита два лагеря образовались, и каждый по своему прав :)

Так и есть. Мой коллега, в отличие от меня, в восторке от нон-модального окна)
Нет ли планов в будущем выпилить модальное окно? А то сейчас как временное решение мы переключимся, а потом бац и все

Нельзя ли сделать опцию для помещения немодального окна обратно в окно version control? Наверное у меня специфический кейс, но у меня version control висит в виде окна на втором мониторе и удобно, что Local changes (и Shelf) в отдельном окне. Я могу смотреть одновременно и на них Local Changes c диффом и на код. Короче все то же самое, как раньше, но с добавленным полем для коммита вннизу Local changes

Спасибо за шикарный инструмент!

У меня персональная радость — теперь при поиске по файлу выдает не только кол-во совпадений, но и текущую позицию. «Я джва года этого ждал».

Не планируется ли сделать возможность показывать предупреждение при обновлении, если какой-то из установленных плагинов не поддерживается в той версии, которую собираемся установить?

Можете пример привести? Обычно неподдерживаемые плагины просто отключаются в новой версии.
Или вы вообще не хотите обновляться, если новые версии плагинов пока недоступны?

Да, именно так, я хочу иметь возможность увидеть, что не все плагины подтянулись до новой версии и подождать с обновлением
PHPStorm 2020.1 на macOS 10.15.3, в настройках автодополнения нет ML
image
Странно, а напишите полный номер билда из PhpStorm | About PhpStorm
PhpStorm 2020.1
Build #PS-201.6668.153, built on April 13, 2020
Licensed to *****
Subscription is active until April 7, 2021
Runtime version: 11.0.6+8-b765.25 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.3
GC: G1 Young Generation, G1 Old Generation
Memory: 1750M
Cores: 12
Registry: run.processes.with.pty=TRUE, bigger.font.in.project.view=true, ide.balloon.shadow.size=0
Non-Bundled Plugins: mobi.hsz.idea.gitignore, com.chrisrm.idea.MaterialThemeUI, net.seesharpsoft.intellij.plugins.csv, Magicento, com.magicento2.magicento2, BashSupport
Может надо заинейблить плагин? Я тупо в поиске начал набирать «Machine...» и в окне плагинов я увидел, что он не заинейблен, заинейблил и вуаля!

Проверьте включен ли соответствующий плагин:


Upd: ой, вижу что уже всё правильно посоветовали

1. Подсказки кода иногда стали фризить шторм секунд на 30. Вводишь например var_d или print_ и окно фризится
2. В целом быстродействие открытия шторма и шага Prepare Workspace снизилось значительно
3. В немодальном коммите не нашел «крестика» напротив изменений, чтобы быстро их отменить, как в старом во вкладке Local Change
image
Обновил специально поиграться с composer, но странно при нажатии на лампочку куда бы я не тыкал, даже на устаревшие зависимости не появляются пункты Update all packages и Update package. Хотя если начать вводить версию то он действительно подтягивает список всех версий
Новый Commit — спасибо, что дали возможность отключить данную опцию, попробовал использовать это в течении дня, не зашло от слова совсем + еще и бажное (при попытке закомититься говорит, что не может потому несколько ченджлистов выбрано, но выбран всего один, при этом есть невыбранные ченджлисты из другого проекта). Пожалуйста, не отключайте старый вариант, он уже как родной и работает хорошо и понятно.
UFO just landed and posted this here
Фолдинг имеется в виду? Если да, то попробуйте Ctrl(⌘) + .
UFO just landed and posted this here
Ага, понял. А для чего это нужно? Пока не совсем понял зачем видеть, что внутри use?
Есть потребность писать конфиги эншибла для пхп-проекта из PhpStorma и использовать там джинжу. Но что-то не могу найти, как подключить нативную поддержку этого шаблонизатора, которая есть в PyCharm. Есть такая возможность?
Было бы круто чтобы HTTP-client научился рендерить HTML ответ
Sign up to leave a comment.