Comments 134
Спасибо!

Очень давно народ просит простенькую фичу в «External tools» — возможность отдавать не имя файла и весь файл целиком внешнему скрипту, а только выделенный текст, и его же замену тем, что вернул шелл. Очень бы хотелось, я уже года 3 как жду.
Может быть кто плагин для этих задач знает и подскажет?

Я так и не нашел — задача простая — передать выделенный текст внешней программе, а ее stdout вернуть и заменить им выделенный текст.
Фича довольно специфическая, мне кажется, на данный момент никто в платформе на неё даже не смотрит. youtrack.jetbrains.com/issue/IDEA-76371
Можно было бы прикрутить к Live Templates groovy-скрипт, который делал бы это, но даже Live Templates не позволяют заменять выделенный текст, увы.
youtrack.jetbrains.com/issue/IDEABKL-6913
Да вроде обычная фича — напрмер сделать определенный специфический рэгсп над выделением или что-то еще. Например — транслитирировать его. И на самом деле она прямо просится в external tools, где ей самое место — тем более одна галочка всего.

Видимо, придется пилить плагин самому.

Возможности groovy-скриптов в live template ограничены, но что-то с заменой можно делать.


Вот пример, как я использую:


Код live template:


<template name="slia" value="&lt;li&gt;&lt;a href=&quot;$LINK$&quot;&gt;$TEXT$&lt;/a&gt; — $END$&lt;/li&gt;" description="" toReformat="false" toShortenFQNames="true">
  <variable name="LINK" expression="groovyScript(&quot;return _1.split('\t')[0]&quot;, SELECTION)" defaultValue="" alwaysStopAt="false" />
  <variable name="TEXT" expression="groovyScript(&quot;return _1.split('\t')[1]&quot;, SELECTION)" defaultValue="" alwaysStopAt="false" />
  <context>
    <option name="HTML" value="true" />
  </context>
</template>
Спасибо комменту от pronskiy, я действительно ошибся со вторым тезисом — замена выделенного текста возможна.
Это значит, что вы можете при помощи Groovy-скрипта передавать выделенный текст чему угодно, и заменять его на вывод этого чего угодно.
Вот пример с PHP-скриптом: recordit.co/2GMARRlPax

Сам скрипт:
def arg = _1;def command = \"php /path/to/your/script.php $arg\"; return command.execute().text;

_1 это номер параметра, который вы передаёте функции groovyScript(), в данном случае это SELECTION.
#[ExpectedValues] и #[ArrayShape] очень нужные штуки, радует что есть их поддержка в IDE и для старых версий php.

В своё время так и не нашел аналог в phpdoc. Плохо искал или может со временем добавили? Если кто-то знает, напишите пожалуйста ответ, спасибо!
В своё время так и не нашел аналог в phpdoc. Плохо искал или может со временем добавили? Если кто-то знает, напишите пожалуйста ответ, спасибо!
В стандартах phpdoc нет, а так — давно всё есть в psalm, и со статической проверкой корректности передаваемых аргументов.
JB с кастомными атрибутами в этом плане немного изобрели велосипед, имхо.
Велосипед — это всё же psalm, а атрибуты — стандарт.
Во первых, аттрибуты ArrayShape, Immutable и пр.(кроме Deprecated), это никакой не стандарт, а выдумка и разработка JB.
Во вторых, psalm появился раньше и вовсю используется многими разработчиками.
В третьих, функционал psalm значительно шире чем предлагаемый упоминаемыми аттрибутами, так что называть его велосипедом тем более не корректно.
Стандарт — атрибуты.

Не вижу как широта возможностей защищает от звания велосипеда.

А если psalm начнёт использовать атрибуты, а не phpdoc, он перестанет быть велосипедом? А так-то phpdoc тоже стандарт

Пожалуй я погорячился с наездом на psalm, но что JB изобрели велосипед, не согласен вообще.

Я тоже не согласен )) В PHP нет стандартного (пускай даже стандарта де-факто) способа описывать шейп массивов, а потому ни способ psalm, ни способ jetbrains велосипедами не являются. Есть плюсы и минусы у обоих, а возможно в итоге они сольются в один

Лично я надеюсь, что кто-нибудь когда-нибудь запилит аналог *.d.ts/*.h под PHP, а то нынче php код, особенно под OS выглядит как фарш из .phpstorm.meta.php + атрибутов шторма + атрибутов псалма + аннотаций псалма + аннотаций phpdoc + аннотаций phpstan.


И самого кода меньше, нежели обёрток над ним для типизации, которые делают одно и тоже разными способами.

Не пойму, в чем фишка «SQL for MongoDB»? Это для тех, кто не осилил Query Language в Монге?
В приложении такой синтаксис не засунешь либо запутаешь им остальных.

После обновления начал отжирать в 2 раза больше оперативы(4 об против 2гб), так же нагрузка проца выросла и Алерты от Mac OS всегда светлые, даже если тема темная

Можете уменьшить кол-во выделяемой памяти через Help > Edit Custom VM Options, поменяв -Xmx=текущее_значение на, например, -Xmx=1500m. А как вы измерили увеличение на нагрузку проца? Можете скинуть крин алертов?

imgur.com/a/58g3ctG вот скрин алерта

А как вы измерили увеличение на нагрузку проца?

Просто все лагало, а до этого не лагало, открыл монитор и там нагрузка на проц часто прыгала до максимума из-за процесса шторма

Спасибо за скрин! К счастью, это уже зарепорчено: https://youtrack.jetbrains.com/issue/IDEA-255620. Надеюсь починят в ближайшем будущем.
Насчет нагрузки на процессор: по началу можно наблюдать такое из-за индексации на проектах, впервые открытых в версии 2020.3. В дальнейшем часто такое происходить не должно. Если же будет продолжаться — проверьте какой процесс(ы) доминирует в Help > Diagnostic Tools > Activity Monitor.

Спасибо за релиз. Планируется ли шаблон для Laravel (при создании нового проекта)? Для Symphony уже давно есть, а для лары нет.

На самом деле, от него много не требуется. Выбор версии, поддержка Lumen. Как доп.возможности — галочки для авторизации и аутентификации, выбор Livewire/Inertia.js/Стандрат. Выбор версии php. Можно еще активацию фасадов для Lumen.


Я почти всегда проект создаю с помощью консоли, в шторме потом просто папку открываю, но как раз потому что нет всех популярных фреймворков/CMS что бы стартануть удобно проект.

Новая версия по ощущениям стала работать шустрее.

Может кто-то подскажет, как сделать чтоб типы в данном случае выводились сверху?
image
В данном случае я хочу ввести null, но автозаполнение предлагает варианты из библиотек (даже если полностью ввести null). Хочется чтоб типы при автодополнении всегда были сверху.

К сожалению, это нельзя настроить. Можете попробовать включить "Sort completion suggestions based on machine learning" в File | Settings | Editor | General | Code Completion — со временем должно помочь.

Может есть какой то параметр чтобы использовать блочное выделение как в Notepad++/QtCreator — ctrl+shift +стрелочки? переключаться между режимами не удобно, а использовать его начал часто :)

Есть такое: Alt-Alt на macOS и Ctrl-Ctrl на Windows/Linux и потом стрелками вверх-вниз.

Раз уж в комментах традиционно начинается вопросник-решальник, то спрошу и я.

Часто, во время отладки, открывается значительное количество вкладок файлов вне проекта — исходников фреймворка, пакетов из vendor, etc. PHPStorm подсвечивает эти вкладки:
image
но не даёт возможности быстро их закрыть скопом. Я не нашёл ни встроенной возможности, и плагина — а хотелось бы.

Такая же хотелка есть про вкладки таблиц БД — закрывать их одним махом было бы очень удобно.

Правой кнопкой мыши на вкладку "Close All Tabs"


P.S> Сорри, видимо не понял вопроса

А можно вопрос про "Git stage"? Точнее, как бы сделать его таким же удобным для "частичных" коммитов, как и старый вариант. Там были галочки и всегда можно было перед коммитом еще раз пробежаться по всем файлам и уточнить, какие правки включать, а какие оставить на потом, а тут revert или stage и никаких следов. Только undo если сразу.


Ну и когда включаешь сравнение unstaged то слева в заголовке будет таки "staged"???, справа "local", и если хочется какие-то правки из local частично закоммитить, то нужно их "двигать" справо налево, т.е. в обратном направлении, если сравнивать с "staged" файлами.


P.S. Я на самом деле про последний PyCharm, но я думаю, это общая функциональность.

Так ведь и сейчас можно пробежаться по файлам. Если 2 раза щелкнуть по файлу из списка для коммита — откроется вкладка с diff'ом — в ней можно включить/исключить необходимые изменения файла, также через чекбоксы.

Да нет же. На ">>" нажимаешь и нет следов от изменения. Вы, кроме немодального окна для коммитов еще "enable staging area" в настройках включили?

Пообщался с VCS team: вы можете перед коммитом нажимать правой кнопкой на Unstaged -> Add interactively и там уже будет удобно выбирать ченджи.

Спасибо за совет. Попробовал, но на 100% не удовлетворился.


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


Ну и опять — это все в модальном окне, хотя кнопочки, чтобы пробежаться по списку файлов, или выбрать другой произвольный, есть. Сам вариант с тремя колонками неплох (единственно, непонятно, почему в самой левой колонке нумерация строк справа?), вот если бы такой показывался справа, вместо diff'ов? Да еще, в unified режиме по выбору пользователя, если узко.


P.S. И все равно непонятно, лучше ли он старого варианта?

Здравствуйте. И это снова я! И опять про то же самое что и в прошлый раз =(
Релиз хороший, наверно лучший за этот год. Но, увы, как обычно забили на работу над ошибками.


  1. В Run вкладке уже минимум год не поддерживается кириллица.
    Вот расшифруйте мне это:


    > Company: #6 - Тестовая УК
    > Building: #56 Дом для тестирования
    > Building: #843 Дом для тестирования интеграции
    > Building: #850 Дом для тестирования интеграции (Ховард), дом 0
    > Building: #854 �нтеграция с Кварталом

    Таска — IDEA-240787 и WI-57430 (создал новую т.к. старая не совсем про кодировку и мой комментарий к ней проигнорирован)


  2. Все еще нет истории запусков Run anything — WI-48014. Так сложно делать вкладку на каждый запуск из окошка Run anything?


  3. Поддержка Blade шаблонов до сих пор отвратительна — WI-46437. С самого начала были проблемы с видимостью переменных. Прошли годы, а воз и ныне там.


Спасибо за ссылки, форвардну это соответствующим разработчикам. Неприятно, конечно, что перечисленные проблемы так и не решены, но в большинстве из них практически нет голосов/комменатриев. Это объясняет почему они не в приоритете. В WI-46437 (Blade: false positive: Unused local variable within foreach in php) надеюсь скоро появятся обновления.

По кодировке в Run anything — сколько бы там мало голосов ни было, а косяк весьма значительный. Вероятно для большинства это не критично и они не жалуются и не голосуют. Но это не повод забивать на проблему, которой небыло в удобном и отлично работающем command line, выпиленном в пользу Run anything. Я еще долго буду припоминать Вам это решение =) Как минимум пока Run anything не доведете до ума.

Я б сказал, что не некритично, а просто не встречалось большинство c кейсами когда нужна поддержка русского в запускаемых из IDE CLI-командах.

Либо они злобные пираты и не палятся в багтрекере =)
Я как бы тоже не использую кириллицу в консольных командах, но в БД у меня всё на русском и часто нужно знать с каким объектом идет работа (все ID не запомнишь) — пока отлаживаю приходится абракадабру видеть что никак не ускоряет процесс разработки. Порой из терминала запускаю. В общем этот run anything капитально так недоделан и, судя по всему, в JetBrains на него забили. Как в том мультике — "и так сойдет!" =(

Очень часто это встречается, если ты пользователь русской Windows. Просто выглядит это так, как будто неправильно что-то настроено, и в итоге не идешь в багтрекер.
С кириллицей попробуйте следующее
Help > Edit Custom VM Options…
Добавьте строчку
-Dfile.encoding=UTF-8
Перезагрузите шторм.

Спасибо за подсказку! Помогло =)
Я правильно понимаю что этой настройки нет в File->Settings… ?

Я правильно понимаю что этой настройки нет в File->Settings… ?

Там только Settings | Editor | File Encodings из подходящего. Но оно никак не помогает в этом вопросе. У меня и так там все в UTF-8 выставлено. Если что — Windows 10, все English UK.


Я сделал тест (простой PHP скрипт который UTF-8 и просто пишет пару слов на кириллице):


  • если использовать Run/Debug Configuration то выводит как надо
  • если же тоже самое но через Run Anything то показывает крякозябры
  • добавил -Dfile.encoding=UTF-8 и теперь и там норм.

Проверил у себя — работает и без этого конфига. Если что — Ubuntu 20.04.

Возможно эти параметры не активны у вас: https://youtrack.jetbrains.com/issue/IDEA-240787#focus=Comments-27-4072493.0-0


Workaround
disable run.anything.use.pty and run.processes.with.pty (shift,shift -> Registry -> run.anything.use.pty and run.processes.with.pty turn off)

У меня, например, run.processes.with.pty включен (и я не помню чтобы его включал, возможно какая то опция делает… или же я, но только давно).


В любом случае: для меня это не критично ибо и так весь вывод только на английском. Кириллица была только для теста.

Да в ентих ваших Убунтах UTF-8 из всех щелей. =)
ИМХО проблема с кодировкой в линуксах может вынырнуть из-за кого-нибудь легаси в Windows-1251.
Под окошками UTF-8 старательно конвертируется в дефолную кодировку.
Знаете что… Если у вас последняя версия IDE, посмотрите кодировку в
File -> Settings -> Editor -> General -> Console
Параметр Default Encoding.
Я поставил Default Encoding UTF-8 и убрал ключ -Dfile.encoding. Заработало как надо.

Либо я не замечал этого параметра в настройках (в 2019.4 параметра Default Encoding нет), либо кодировка была другая, либо пофиксили.

Эту настройку я пробовал — она у меня уже давно стоит UTF-8 и после обновления не поменялась. Как было криво так и осталось, к сожалению.

спасибо. Отличное обновление, шрифты почему-то только слетели, но вроде все вернул как было.

никто не знает
  1. как по-умолчанию свернуть svg? в настройках не нашел
  2. как сделать горячие клавиши на открытие некоторых директорий? т.е. если я работаю только с контроллерами и во вьюхами, чтоб я мог быстро папки менять. На той же Ларе очень глубоко лежат эти файлы =(
    Так бы сделал CMD+ALT+1 — файл роутов; CMD+ALT+2 — папка с контроллерам; CMD+ALT+3 — папка со вьюхами; CMD+ALT+4 — папка с моделями; CMD+ALT+5 — папка с миграцями; и т.д.
как по-умолчанию свернуть svg?

Можете поподробнее? В окне редактора как-то неправильно отображается?


Про горячие клавиши ответили ниже — отличное альтернативное решение, как мне кажется.

Можете поподробнее? В окне редактора как-то неправильно отображается?

Показывает все верно, я про «Code Folding».
В настройках (и вроде по-умолчанию) свернуты импорты, доки и т.д.
image

Через настройки по-умолчанию можно много что свернуть, а вот простые SVG в html/blade нельзя, хотя они сильно дают нагрузку на читабельность и так мало информации:
image

Ну или я мало разбираюсь в SVG и для меня там что-то полезное есть?)
Можно конечно их в отдельные файлы скидывать, но такое мало кто делает. Некоторые проекты поддерживать сложно…

Еще можно их в одну строку делать вручную, но «auto format code» (CMD + ALT + L), делает опять в несколько строк
Блин так хочется обновиться, но так больно после каждого обновления опять править форматирование SQL и побеждать сотни ошибок парсинга 8(

Обновление должно автоматически импортировать настройки стиля кода и настройки проекта. Который раз обновляюсь — все мои настройки БД и стиля мигрируют корректно.
Попробуйте! Если что-то пойдет не гладко — мы всегда будем рады помочь через Help | Contact Support.

Настройки то переезжают, но вот правила распознавания sql далеко не всегда.
А правила форматирования сложных sql просто по разному работают от релиза к релизу.
Рефактор при переименовании таблиц вообще стал отключать всегда после того как эта штука порезала почти все запросы под ноль.

Про сапорт помню, спасибо, к сожалению граффик сейчас не позволяет писать пачками объемные тикеты.

Спасибо за информацию! Как найдете время — с радостью посмотрим на проблему, в наших интересах сделать миграцию и работу с БД как можно более безболезненной.

Спасибо за информацию

Самые частые проблемы касаются форматирования join/on, я по моему три тикета писал по этой теме.
А вот при рефакторе запросы очень часто возникают при наличии CTE или конкатенаций.

Как найдете время

Постараюсь) Вам на английском лучше или на русском? Мне в принципе все равно, но спросить всегда стеснялся)

Присоединяюсь к вопросу, правда с уточнением лучше на ломаном английском или на обычном русском? А то много багрепортов не написал лишь потому что то, что за 5 минут написал бы на русском, на английском полчаса писать буду и не факт, что не сделаю ошибок, искажающих смысл.

Лайфхак: если с английским туговато то напишите на "обычном русском" и сделайте перевод в Google Translate. Потом в сам тикет перевод вставьте первым/перед оригиналом и разделите их. В этом случае даже если перевод будет корявый то оригинал поможет.

Недавно пришла в голову мысль. Большинство пользователей вряд ли задействуют и 10% от возможностей ide. Интересно, можно ли достичь повышения скорости работы и снижения потребления ресурсов, если оставшиеся 90% как-то автоматически отключать?

pronskiy А нуллабельные типы в #[ArrayShape] можно задавать?


Такое прокатит?


#[ArrayShape(['key1' => '?string', 'key2' => ['inner_key' => '?string']]

Было бы круто похожий атрибут без привязки к конкретным ключам и с возможностью задавать описания


#[ArrayShapeAssoc(['description of key meaning' => SomeClass::class)]

PS


То есть, если записать #[ArrayShape] в одну строку в проекте на PHP 7, то интерпретатор PHP воспримет эту строку как комментарий.

А шторм подсветит как ошибку :(

Есть какой-то тикет / плагин / планы, для поддержки возвращаемых типов из корутин amphp?

\Amp\Loop::run(function (){
    /** @psalm-return \Amp\Promise<stdClass> */
    $coroutine = function (){
        return \Amp\call(function (){
            return new stdClass();
        });
    };
    $value = yield $coroutine();
    // Хотелось бы, чтобы phpstorm понимал тип данных
    // без подсказок, т.к. он явно в psalm-return указан
    assert($value instanceof stdClass);
});


Понимаю что это работает через Generator::send() внутри фреймворка, но эксперименты с ним так же не позволили мне подсказать тип данных полученных yield'ом из send'а. Минимальный пример ниже — phpstorm никак не реагирует на переданный тип данных.

function gen(){
    $value = yield new stdClass;
    // интересует не писать подсказок вот здесь
    assert($value instanceof stdClass);
}
$gen = gen();
// впрочем тут без подсказки тип тоже не определён
assert($gen->current() instanceof stdClass);
$gen->send(new stdClass());

Это более сложный сценарий дженериков. Пока не поддерживается, поэтому будем благодарны за тикет в трекере.

Я нашёл у вас тикет про дженерики WI-47158. Он подойдёт под amphp или написать отдельный тикет?
WI-57590 и на всякий случай WI-57595. Первый должно быть не трудно сделать, надеюсь получится в ближайшем будущем =) Без этого писать асинхронный код очень грустно.
  1. Это бесплатный редактор?
  2. Есть встроенная поддержка sftp?
  3. На чем написан? Комодо на Java дико вешает комп. И ещё какой-то тоже пробовал уже не помню, тоже на Java и тоже тормоза были. 16гб им мало.
  1. Вообще, нет, но есть куча скидочных/бесплатных планов. Также можно пользоваться бесплатно во время месячного триала (который можно продлить через запрос в команду Sales), либо использовать бесплатные EAP билды.
  2. Есть
  3. Java, но мы требовательны. Например у меня сейчас открыт WP сайт и он занимает около 250 метров в памяти:
Останусь тогда на Notepad++. Старый, но зато летает. И денег платить не надо.

Вы не зарабатываете разработкой на PHP? Вам проще экономить на списках чем делать свою работу более эффективной и экономить время? Или у вас upwork и не очень высокий выхлоп от него?
Попробуйте использовать бесплатные EAP-билды. Они весьма стабильны.

Релизнулась новая версия — её EAP недоступен, а нового пока нет — надо ловить анонсы о выходе EAP

Я поставил, и уже есть непонятные фишки. Непонятно зачем было нужно отменять сохранение файла по Ctrl+S — это стандарт был. Alt+Shift+Q непонятно зачем вместо Crtl+S.

Во вкладках файлов модифицированный файл не выделен — не видно сходу, что я не сохранил. Это вообще плохо. Нужно переключиться на файл и прочитать был он модифицирован или нет.

Alt+Shift+Q непонятно зачем вместо Crtl+S

Ctrl+S все еще сохраняет (все) файлы. Alt+Shift+Q — у меня это на Upload Current Remote File (когда открыть файл напрямую через FTP а не локальный (aka Remote Edit)). Если об этом, то да, неудобно.


Во вкладках файлов модифицированный файл не выделен — не видно сходу, что я не сохранил.

Settings/Preferences | Editor | General | Editor Tabs | Mark modified (*)

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

А вот настройка * не срабатывает, если отключить иконку файла. Бага.

Закрыл редактор. Открыл — файлы скинуты. В Recent их нет. Видно туда то, что по SFTP открывал не попадает.

Ещё редактор у меня подвис на некоторое время. Такое с Komodo Edit случалось. Всё же Java есть Java.
Все файлы как раз не надо. Это опасно. Можно сохранить то, что случайно модифицировал. Это я перенастроил.

Это сила привычки… ну и workflow. PhpStorm я использую еще с нулевой версии (0.6 или чего то такое) и первых месяца 2 было непривычно. Но потом привык и без проблем — даже чище работать ибо не делаешь 100500 разных изменений во множестве фалов одновременно, а если и делаешь то сохраняешься когда закончил. Если же что пошло не так то юзаю Local History.


Но да, в других продуктах работаю по другому (например SSMS или Delphi например).


А вот настройка * не срабатывает, если отключить иконку файла. Бага.

https://youtrack.jetbrains.com/issue/IDEA-246166 — раньше * рисовалась по другому (не поверх иконки).


Закрыл редактор. Открыл — файлы скинуты. В Recent их нет. Видно туда то, что по SFTP открывал не попадает.

Да, ибо это полностью remote файлы.


Ещё редактор у меня подвис на некоторое время. Такое с Komodo Edit случалось. Всё же Java есть Java.

Давно подвисаний во время работы не было, хоть все еще сами проекты хранятся на HDD. Сторонние плагины (которые участвуют в автодополнении) это то что в основном приводит к подлагам (по крайней мере у меня). Хотя размер и структура проекта (какие языки используются) тоже играет роль.


Ну и https://habr.com/ru/company/JetBrains/blog/531828/#comment_22403640

Работа в умном блокноте отличается от работы в IDE. Потребуются так же изменения в workflow, что вызывает отторжение.

Очень грубо можно сравнить с вождением автомобиля, когда пересаживаешься с ручной коробки на автоматическую. У меня привычка искать педаль сцепления держалась около полугода (а желание переключать передачи самому не пропадает уже пять лет, как я на автомате езжу). Так же и с использованием IDE — автоматизация больше, чем в блокноте.

Важно понимать, что никто ничего не навязывает. Ваше право разрабатывать так, как вам удобнее. Использовать phpstorm — сейчас это негласный стандарт в профессиональной php-разработке (относительно недавно ещё стал популярен vscode, полностью бесплатный — советую его тоже попробовать).

Бывает, что навязывают, может не сильно, но на 1:1 могут сказать "ты слишком много времени тратишь своего и чужого со своим vim/vscode/блокнотом — у нас корплицензия на phpstorm и готовые настройки от кодстайла до списка продакшен серверов с тоннелями к ним — пользуйся"

А где-нибудь можно почитать про этот workflow? Всё же с автоматом сел и едешь, а у меня проблема, что я вообще ехать не могу местами. Как раз как если бы человек привыкший к автомату сел был на механику и мотор глох постоянно.

Пока есть интересные моменты вроде подсказок более информативных.

Но и огромное неудобство и непонимание как это всё побороть.

Я вот тупо пустой файл не могу создать. Спрашивает имя. Ругается, что в корень писать не может. Блин, но мне просто нужен пустой файл, мне его сохранять не нужно, мне нумерацию строк посмотреть.

Ctrl+Alt+Shift+Insert (new scratch file) — не совсем то, что вам нужно, наверное, но максимально близко к просто запущенному блокноту.

На самом деле там файл создаётся, но не прямо в папке проекта, а где-то в служебных самого шторма. Можно увидеть их при просмотре проекта (alt+1) в "папке" Scratches and Consoles

Я вот тупо пустой файл не могу создать. Спрашивает имя.
Блин, но мне просто нужен пустой файл, мне его сохранять не нужно, мне нумерацию строк посмотреть.

Да, IDE работает с файлами (каждый редактор привязан к физическому файлу а не к виртуальному). Вы не можете создать "пустой editor tab". Юзайте scratch-файлы если нужно что-то временное: https://www.jetbrains.com/help/phpstorm/scratches.html


Если с английским более-менее:
https://www.jetbrains.com/phpstorm/documentation/ — смотрите видео
https://www.jetbrains.com/help/phpstorm/workshop-materials.html
https://laracasts.com/series/how-to-be-awesome-in-phpstorm

офтоп. Еще бы rider починили, а то что-то последнее время он сильно болеет.
WSL2 проброс будете делать в своих IDE? сколько нам ещё на vscode тусить?)
А расскажите пожалуйста подробнее, как это выглядит? Проброс, что даёт?
Сейчас мы на phpstorm кодим либо в винде, либо через костыли от Jetbrains, либо через WSL2 + xserver (вывод рабочего стола в виндоус)
Это всё — дикая дичь и не смотря что я обожаю продукты JB — я сижу на vscode, потому что так продуктивнее и удобнее.

Смотрите комментарии в теме DataGrip: https://habr.com/ru/company/JetBrains/blog/529634/


VolCh А поддержка Redis планируется из коробки?
moscas Периодически обсуждаем и помним, но конкретных планов пока нет.
t0rr Вот тикет, на который можно подписаться и следить за DataGrip+Redis: https://youtrack.jetbrains.com/issue/DBE-283 (* ему уже 6 лет, если чо)
Я один столкнулся с проблемой создания patch'ей?
Раньше функционал создания патчей использовал patch (unix) команду, а теперь формат похож на patch'и из git'a.
Было:
Index: src/app.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/app.php	(revision ad0de...8c1b)
+++ src/app.php	(date 1607368535657)
@@ -79,6 +79,7 @@
...

Стало:
Index: src/app.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/app.php b/src/app.php
--- a/src/app.php	(revision 1d4b92...bbb)
+++ b/src/app.php	(date 1590949271133)
@@ -79,6 +79,7 @@
 ....


Теперь системная команда patch (не git apply) не применяет патчи
На Убунте сильно просаживается fps интерфейса, а файлы с комментариями (типа phpdoc) прокручиваются рывками с фризами. Так уже год или больше. Не позволяет нормально работать. Железо: i7-8700. Посмотрите если что-то можно сделать.
На винде с wsl1 постоянно висит git log indexing, можно это как-то убрать?

И еще хотел бы узнать если ли настройка использования cpu при индексации. Замечаю как с каждым релизом экспериментируете: раньше процессор нагружался до 100%, потом максимум до 50-60%.
Очень странно.
На i5 650, а это всего 2c4h 10 года, оно летает, и это с кучей плагинов и на огромном проекте под 100к файлов.
Но когда-то тоже сталкивался с фризами, на более мощном железе. Частично из-за hdd, частично из-за медленной отрисовки графики, частично из-за глючных плагинов.
Одно время это достало, и разобрался с вопросом раз и навсегда.
Сначала разобрался с диском — переехал на ssd, и больше на hdd шторм даже не пытался запускать, потому что это гарантированные фризы. А пока жил на hdd, пользовался рамдиском для кеша индекса: пусть лучше 2 гига памяти сожрет на кеш индекса в оперативке, чем так тормозит.
Потом разобрался с отрисовкой — убедился, что проблема не в gpu, и добавил в vmoptions ключи:
-Dawt.useSystemAAFontSettings=lcd
-Dawt.java2d.opengl=true
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine
Также разрешил кушать побольше памяти: -Xmx16g
А потом тщательно профилировал плагины: вырубил все, включал по одному, наблюдал за реакцией.
На некоторых плагинах наблюдается некорректная работа со штормом, и оно просто выжирает cpu — такие плагины поотключал, благо их оказалось немного. Большая часть таких плагинов уже упоминается в багрепортах.
«Тяжелые» по ресурсам плагины работают, и, не смотря на старое железо, не тормозят. Тормозили именно некорректно работающие — вмешивались в процессы индексирования, поиска по индексу и анализа кода, и либо падали в циклы, либо сыпали ошибками.
После этого не устанавливаю больше двух незнакомых плагинов за раз, чтобы, если вдруг опять нарвусь на подобное, не проверять все плагины.

С тех пор, как все это проделал, шторм летает.
Попробуй, может и у тебя похожие проблемы.
HDD давно уже не используется, только ssd и в данном случае nvme. Но проблема не в накопителе, лагает ведь когда происходит скроллинг, а не работа с диском.
Спасибо, попробую эти настройки. Память сейчас выставлена так:
-Xms2048m
-Xmx4096m
-XX:ReservedCodeCacheSize=512m
Плагины возможно и являются проблемой, но не уверен что хочу перепроверять десятки установленных плагинов. Даже если выяснится что виноват плагин для поддержки php, его все равно же не выключишь. Мне кажется здесь какая-то проблема с gpu.
Подскажите, а как делать проверку Immutable / ArrayShape на CI? Можно ли использовать PHPStorm как статический анализатор на CI?

Можно использовать psalm. Он уже умеет считывать некоторые JB атрибуты и полифиллить на свои типы.

Релиз классный! Спасибо команде, за такой интенсивный труд. Но, к сожалению, с базой данных работать непосредственно из PS до сих пор неудобно, на мой взгляд, попробую на этой неделе записать скринкаст.

Не знаю с обновлением связано или нет, но заметил после него: не работает копирование в буфер иксов (ubuntu 20.04) по выделению мышкой в окне Terminal (встроенный в PhpStorm). Вставка средним кликом работает, а копированию по выбору — нет. Это бага?

Спасибо. Но это должно было быть в самом начале этого поста :( Это же BBC

На самом деле, чтобы бы очень хотелось, так это чтобы нормально начал работать youtrack, и правили ошибки в нём, или хотя бы закрывали тикеты.

В данный момент в Phpstorm проекте почти 40 000 открытых тикетов.
youtrack.jetbrains.com/issues/WI
из них часть — это мусор, который стоит закрыть.

Хуже всего что когда после обновления или по какой либо другой причине хочешь создать рапорт, ты не можешь найти подходящий и думаешь «я что, первый, с такой проблемой?».

Ищешь по ключевым словам и тп — ничего не найти.
Создаёшь тикет, смотришь все дубликаты… И только когда создашь увидешь что такие тикеты были и твой тикет закроют как дубликат.

результат => нет смысл писать вообще о багах из за фрустрации что скорее всего закроют как дубликат.
И при этом, баги иногда по полгода не закрывают, возможно потому что их не рапортишь, а возможно потому что они только у тебя и проявляются.

ну и конечно, очень неприятно что баг был найден в EAP, и его решили не править.

youtrack.jetbrains.com/issue/WI-56500

зарелизить сломанную работу c XDebug — пусть все разработчики и обновляют всё у себя — гениально.

Причём сломали с достаточно новой версии Xdebug — которой всего полгода.

Присоединяйтесь к моему крестовому походу =) Я в этом году на каждый релиз с кучей фич выкатываю несколько багов на которые забили. И, кстати, большинству из них несколько лет и не то чтобы они прямо такие безобидные. Пишу именно на хабре т.к. тут есть хоть какая-то адекватная реакция. Меня задолбал подход JetBrains к разработке IDE в виде "пофиг на баги, даешь 100500 новых фич", которые зачастую тоже багнутые… За год ничего не поменялось к сожалению, но хотя бы часть упомянутых багов исправляют. Правда, в этот раз я словил "Won't fix" на проблеме удобства когда сообщение о проблеме не соответствует реальной проблеме (WEB-20352 'closing tags matches nothing'). И ладно бы сказали что может когда-то поправят, так нет же — написали отмазку и закрыли… Печально это всё =(

Only those users with full accounts are able to leave comments. Log in, please.

Information

Founded
Location
Россия
Website
jetbrains.com
Employees
1,001–5,000 employees
Registered

Habr blog