![](https://habrastorage.org/webt/se/bu/ox/sebuoxelalllw0u0sga9p7ho20s.jpeg)
Всем привет! Мы рады представить вам третий мажорный релиз PhpStorm в этом году!
Под катом — подробный разбор всех заметных изменений и новых возможностей. Осторожно — очень много картинок.
Скачать новую версию можно на сайте или с помощью Toolbox App. Как всегда, доступна 30-дневная пробная версия. Полную же версию могут использовать обладатели действующей подписки на PhpStorm или All Products pack, а также бесплатно — студенты и разработчики проектов с открытым исходным кодом.
Производительность и качество
В каждом релизе мы уделяем немало внимания улучшению производительности. Но в этот раз мы пошли еще дальше и устроили целый трехмесячный марафон по качеству, во время которого вся команда платформы IntelliJ была сосредоточена на шлифовке IDE с разных сторон. И вот чего удалось достичь:
- IDE запускается быстрее
- UI стал отзывчивее
- Снизилось потребление памяти
Мы не планируем останавливаться на достигнутом и продолжим работу над уменьшением времени запуска и другими оптимизациями в следующих релизах.
PHP 7.4
PHP 7.4 уже вышел! И в нем очень много крутых фич. Мы начали выкатывать поддержку PHP 7.4 в предыдущем релизе, а в PhpStorm 2019.3 полностью поддерживаются все новые возможности языка.
Типизированные свойства
Это, пожалуй, самая ожидаемая фича PHP 7.4, и PhpStorm поддерживает ее начиная с версии 2019.2. Но давайте посмотрим еще разок, потому что мы поправили мелкие проблемы и покрыли некоторые пограничные случаи.
Конечно же, подсвечиваются все неправильные использования и несоответствия типов:
![](https://habrastorage.org/webt/nw/ja/ms/nwjamsefo-uwa-j5baatsa2qmas.png)
Вероятно, вы захотите добавить декларации типов к свойствам классов в ваших проектах. В PhpStorm это делается быстро, потому что он умеет определять тип существующих полей на основе информации в PHPDoc, дефолтного значения или тайпхинта аргумента (если вы инжектили свойство через конструктор и указали его).
В любом случае, нажмите
![](https://habrastorage.org/webt/gp/zk/0u/gpzk0ujyzspisxyko7nbamp8gba.png)
![](https://habrastorage.org/webt/mo/7n/uy/mo7nuy71ysvmgggnwr9sunv0twg.gif)
Стрелочные функции
Если у вас есть анонимные функции с однострочным телом, то в PHP 7.4 вы можете использовать для них синтаксис коротких лямбд:
fn(parameter_list) => expr
![](https://habrastorage.org/webt/zy/-0/sw/zy-0sweziuhsydi6hhmecnafam8.png)
При этом нет необходимости добавлять секцию
use
, потому что поддерживается автоматический биндинг по значению переменных из внешнего скоупа:![](https://habrastorage.org/webt/6q/xr/zu/6qxrzubjdqahbjt2wpiukqtxmi8.png)
Нажмите
![](https://habrastorage.org/webt/gp/zk/0u/gpzk0ujyzspisxyko7nbamp8gba.png)
![](https://habrastorage.org/webt/nq/wm/cy/nqwmcy0izmlkbvcpfzgavbudvoy.gif)
Разделитель для числовых литералов
В PHP 7.4 можно вставлять символ подчеркивания в любом месте числа, чтобы визуально его отформатировать и улучшить читаемость кода.
Нажмите
![](https://habrastorage.org/webt/gp/zk/0u/gpzk0ujyzspisxyko7nbamp8gba.png)
_
‘ после каждого третьего знака в десятичных числах, или после каждого четвертого знака в шестнадцатеричных, двоичных и восьмеричных.![](https://habrastorage.org/webt/z3/z9/lc/z3z9lcfnbpbzcp1byjqdlovfop0.gif)
Вложенные тернарные операторы
Почти во всех языках программирования тернарный оператор считается справа налево. В PHP все было наоборот, что весьма неинтуитивно и могло приводить к ошибкам. В PHP 7.4 левая ассоциативность тернарного оператора больше не поддерживается. Это значит, что либо вы не используете вложенные тернарные выражения вообще, либо используете, но явно указываете порядок выполнения с помощью скобок.
PhpStorm 2019.3 подсветит устаревшее выражение, а вы можете уточнить, что имелось в виду, с помощью быстрого исправления (
![](https://habrastorage.org/webt/gp/zk/0u/gpzk0ujyzspisxyko7nbamp8gba.png)
![](https://habrastorage.org/webt/2r/vm/jr/2rvmjrvoivxmwjzlkgowibp-7wa.gif)
Новый механизм сериализации
Проблемы интерфейса
Serializable
в PHP исправить не представлялось возможным, поэтому было решено добавить два новых магических метода __serialize()
и __unserialize().
PhpStorm поможет найти их использования в коде:![](https://habrastorage.org/webt/s1/jy/p9/s1jyp9yn-7sgjp8d9q30qz7fqla.gif)
Ковариантные возвращаемые значения и контравариантные параметры
PHP 7.4 исправляет множество несоответствий, в частности, теперь позволяет «сужать» тип возвращаемого значения в наследниках и «расширять» тип параметров.
![](https://habrastorage.org/webt/je/zw/qe/jezwqe2vhy1zg7vc40t6zenbj80.gif)
Устаревшие возможности
В PHP не только добавляют новые возможности, но и удаляют старые, делая язык более чистым и удобным для работы. И в PHP 7.4 есть целый ряд “депрекаций”.
PhpStorm 2019.3 подсвечивает те куски кода, которые требуют вашего внимания. Где возможно, предоставляется quick-fix (
![](https://habrastorage.org/webt/gp/zk/0u/gpzk0ujyzspisxyko7nbamp8gba.png)
![](https://habrastorage.org/webt/zl/xg/bt/zlxgbtppv1ynysbpdzmf7xaostk.png)
![](https://habrastorage.org/webt/hr/r7/yt/hrr7ytc_mc8nq-bsua3pwfc-xs8.png)
C выходом PHP 7.4 старые версии PHP заброшены. PHP 7.2 будет еще в течение года получать только исправления безопасности, а PHP 7.1 теперь официально не поддерживается. Это значит, что если будет обнаружена уязвимость, то взлом вашего сервера – это лишь вопрос времени. Так что самое время обновиться.
PSR-12
Новый стандарт PSR-12 пришел на смену старому доброму PSR-2 и расширяет его правилами для новых фич языка, а также исправляет неточности. Спасибо PHP-FIG за отличный апдейт! Если вы использовали PSR-2, то посмотрите, что изменилось в PSR-12.
Стиль PSR-12 есть в PhpStorm 2019.3, и IDE сама предложит переключиться на него. Чтобы сделать это вручную, вызовите Set from… в разделе Preferences | Editor | Code Style | PHP:
![](https://habrastorage.org/webt/8s/k4/y0/8sk4y07ofpxbphq1afchoha9-qm.png)
Некоторые правила PSR-12 были реализованы в виде инспекций, которые отключены по умолчанию, но PhpStorm предложит их включить, когда вы выберете стиль PSR-12. Настроить инспекции под себя можно в Preferences | Editor | Inspections in PHP | Code Style | PSR-12:
![](https://habrastorage.org/webt/vw/qk/pi/vwqkpirwrrgemgspho0b0tjzess.png)
После этого форматируйте код вручную нажатием Cmd/Ctrl+Alt+L:
![](https://habrastorage.org/webt/wv/ez/ha/wvezhahjzzaaqcqxokv6opfnyye.gif)
Или делайте это автоматически перед коммитом с помощью опции Cleanup:
![](https://habrastorage.org/webt/wv/bh/er/wvbherytoja8nkwbfzt-nbulfyk.png)
WSL
PhpStorm теперь поддерживает разработку в окружении WSL (Windows Subsystem for Linux), то есть когда вы запускаете IDE на Windows 10, целевая система разработки WSL/Linux. Вы можете указать удаленный PHP-интерпретатор из WSL и использовать его для запуска скриптов, тестов, команд Composer и отладки.
Чтобы начать, установите и настройте WSL по инструкции, а затем установите PHP, если он не идет в поставке в выбранном дистрибутиве Linux.
После этого можно добавить CLI интерпретатор через File | Settings | Languages & Frameworks | PHP.
![](https://habrastorage.org/webt/wl/bw/tc/wlbwtc2_dtvelrdgz1nzhwx_xie.gif)
Добавленный интерпретатор можно использовать для запуска тестов, Composer, или любой другой run-конфигурации.
Другие улучшения для PHP
Подсветка PHP в Markdown и строках
Иногда может потребоваться использовать PHP в строковом литерале. Надеюсь, все-таки не в
eval()
, но вы понимаете, о чем речь. Или, может быть, вы хотели бы видеть подсветку PHP во фрагментах кода в markdown-файлах.Всё это доступно в PhpStorm 2019.3 благодаря специальному диалекту PHP, который называется InjectablePHP. Этот диалект работает так же? как и обычный PHP, но при этом не требует открывающихся тегов.
Он будет автоматически внедрен в markdown, если вы используете маркер
php
:![](https://habrastorage.org/webt/cp/be/2r/cpbe2rj5plcfs5ykkqi4uevyuym.png)
А также в строках Heredoc/Nowdoc, опять же с маркером
PHP
:![](https://habrastorage.org/webt/oj/4e/w8/oj4ew8e-gtvoj_dywz6qqq9nvx0.png)
Ну, и в
eval()
это тоже работает автоматически:![](https://habrastorage.org/webt/gx/hu/yn/gxhuynk8iopelxgtlr-v_jesfw8.png)
Возможность выбрать интерпретатор PHP для тестовых run-конфигураций
Раньше требовалось создать отдельную run-конфигурацию для удаленных интерпретаторов. В PhpStorm 2019.3 мы добавили возможность указать интерпретатор для любых PHP run-конфигураций. Так что можно легко использовать для этого Docker, Vagrant, тот же WSL или любой другой вариант.
![](https://habrastorage.org/webt/te/n1/4m/ten14mnkdetfuotsd5jawlmuc4s.gif)
Выбор шрифта и цвета псевдопеременной $this
![](https://habrastorage.org/webt/uc/-h/3k/uc-h3k96vg5w3lbfymlrekwvvyy.gif)
Улучшения PHPDoc
Традиционно PhpStorm предоставлял переходы по FQN и ссылкам в PHPDoc, но сам блок при этом отображался одним цветом как обычный комментарий.
В PhpStorm 2019.3 докблоки получили подсветку для типов, переменных, параметров, методов и свойств. Если в блоке встречается HTML, то его теги тоже подсвечиваются.
![](https://habrastorage.org/webt/lt/sz/yn/ltszynhb2uop4mem001fyfi7ir4.gif)
Мелкие полезности
Быстрые исправления для условных выражений
Выражения
if-else
, возможно, самые часто используемые конструкции языка. В PhpStorm 2019.3 мы добавили несколько быстрых исправлений ![](https://habrastorage.org/webt/gp/zk/0u/gpzk0ujyzspisxyko7nbamp8gba.png)
Если внутри выражения
if
присутствует присваивание, то его можно быстро вынести на отдельную строку:![](https://habrastorage.org/webt/tl/1d/in/tl1dinwnj6cgqmifyelmyw_u4ha.gif)
Если встретились вложенные условия
if
, то их можно объединить в одно:![](https://habrastorage.org/webt/oe/us/4a/oeus4arjrng8mxr15o0ckuwcqby.gif)
Также можно объединить
else
с if
внутри в один elseif
:![](https://habrastorage.org/webt/7f/i2/4o/7fi24o-ozau3eudkikjy2nftilm.gif)
Или наоборот – разделить
elseif
на else
и if
:![](https://habrastorage.org/webt/np/zb/zh/npzbzhpccyxrveeazyq3-pr13c4.gif)
Рефакторинг Inline constant
Это действие противоположно Extract constant, то есть в результате выполнения все использования константы заменяются на ее значение. Для использования нажмите Cmd/Ctrl+Alt+N на константе.
![](https://habrastorage.org/webt/ku/bc/bp/kubcbpikiajfosx1lpxcm-qdg7e.gif)
Больше разных рефакторингов можно найти, нажав Cmd/Ctrl+T.
Удалить вызов функции
Нажмите Shift+Cmd/Ctrl+Delete, что удалить избыточный вызов функции:
![](https://habrastorage.org/webt/aq/aa/sr/aqaasr-k9ywgckmaugymhlfd0pw.gif)
Авто-вставка <?php при вводе <?
![](https://habrastorage.org/webt/tk/qk/_2/tkqk_2ddfglut6kjhge5yl836le.gif)
Автодополнение ‘=’ до ‘=>’ после ключа массива
Еще один маленький “таймсейвер” в 2019.3: когда вы добавляете элемент в массив, PhpStorm быстро допечатает
=>
, достаточно лишь нажать =
:![](https://habrastorage.org/webt/ta/en/1q/taen1qve3g5ym7qdwj5wgpxtjkq.gif)
HTTP-клиент
Панель инструментов в редакторе
В редакторе
http-
и rest
-файлов появилась панель инструментов с быстрыми действиями:![](https://habrastorage.org/webt/wl/5d/kc/wl5dkcgbpjujp0-xqut9971g0l0.gif)
Run All Requests in File
Вы можете записывать несколько запросов в одном
http
-файле, разделяя их символами ###
. Это особенно удобно, если нужно сделать какие-то цепочки вызовов, где результат из одного используется в последующем.Но раньше приходилось запускать все запросы по одному, а теперь можно выполнить весь файл одним нажатием.
![](https://habrastorage.org/webt/mg/hf/1t/mghf1tg6eanuknsrdoaki4wy16c.gif)
Сворачивание запросов
Если запрос большой, например вы отправляете форму с данными или в запросе много заголовков, то вам понравится возможность сворачивания запроса.
Варианты на выбор: свернуть весь запрос, оставив только первую строку, или свернуть только тело.
![](https://habrastorage.org/webt/2o/x7/6z/2ox76z2z6cwpus-8bik4dewlchu.gif)
Автодополнение для хостов
Больше нет необходимости печатать хост в запросе, если вы его уже использовали где-то в проекте. PhpStorm предложит подходящий вариант в списке:
![](https://habrastorage.org/webt/wf/o_/w2/wfo_w2kedsd-wwcnp_dw8s7_hw0.png)
Динамические переменные
Мы добавили три динамических переменных, которые можно использовать в любом месте запроса:
$uuid
– генерирует UUID-v4 (e9e87c05-82eb-4522-bc47-f0fcfdde4cab)$timestamp
– текущая временная метка в формате Unix (1563362218)$randomInt
– случайное число от 0 до 1000
Как обычно, для вставки переменных используйте двойные фигурные скобки:
GET http://httpbin.org/anything?id={{$uuid}}&ts={{$timestamp}}
![](https://habrastorage.org/webt/5t/hs/hj/5thshjf4eivizfxgxjclcrxpick.gif)
Обо всех возможностях HTTP-клиента смотрите в видеоролике:
HTTP Client in PhpStorm
Version Control
Переработанный интерфейс для получения проектов из VCS
В новом диалоге можно тут же залогиниться в GitHub, или, если вы уже залогинены, посмотреть список доступных репозиториев.
![](https://habrastorage.org/webt/la/6l/au/la6lauesk-auve6ezowav1o6ydc.png)
Checkout
Мы убрали опцию Checkout и разделили ее на две операции: New Branch from Selected и Checkout. New Branch from Selected создает новую ветку, но не устанавливает трекинг. А новый Checkout создает новую локальную ветку и устанавливает трекинг remote-ветки.
Push любой ветки
Теперь можно запушить любую ветку, не переключаясь на нее. В попапе VCS | Branches выберите ветку и используйте Push:
![](https://habrastorage.org/webt/ic/he/ue/icheueya-8cmmfa7x1beilvme4m.png)
Настраиваемый формат даты
Теперь можно сконфигурировать формат даты, которая будет отображаться в VCS Annotate или в любых отображениях лога. Например, вы можете установить значение mm/dd/yyyyy, если хотите использовать формат США.
![](https://habrastorage.org/webt/h5/c9/hl/h5c9hlxhzu9hbszaqpoqf5y-xfq.gif)
IDE
Улучшения в управлении плагинами
Для PhpStorm есть много крутых плагинов, но раньше управлять ими было не всегда удобно, потому что каждый раз после установки/удаления требовался перезапуск IDE. В PhpStorm 2019.3 на уровне инфраструктуры мы реализовали поддержку динамической установки плагинов. Это значит, что теперь есть возможность устанавливать и удалять плагины без перезапуска. Пока что это доступно только для тем и плагинов с картами горячих клавиш, но в следующих релизах мы планируем распространить это на большинство плагинов.
Контрастные полосы прокрутки
Полосы прокрутки теперь можно сделать более различимыми с помощью опции “Use contrast scrollbars” в Preferences | Appearance & Behavior | Appearance.
Гладкая прокрутка
Если включена опция Smooth scrolling в Preferences | Appearance & Behavior | Appearance, то прокрутка мышью или тачпадом во всем интерфейсе будет гладкой, а не построчной.
Поиск в выделенном тексте
Выделите кусок кода в редакторе и вызовите Find нажатием Cmd/Ctrl+F и поиск будет осуществляться только по выделенному тексту. Если нажать Cmd/Ctrl+Fещё раз, то поиск переключится на весь файл.
![](https://habrastorage.org/webt/1h/bs/qu/1hbsquwgb1bp22hikug6-fuvdru.gif)
Новая команда для сортировки строк по алфавиту
Теперь можно легко отсортировать выбранные строки в редакторе вызвав Edit | Sort Lines из меню или командой Sort Lines в поиске по командам Find Actions по нажатию Cmd/Ctrl+Shift+A:
![](https://habrastorage.org/webt/t8/at/sy/t8atsys0_chat_frdcsaoejock4.gif)
Больше разных действий со строками доступно в плагине String Manipulation.
Поддержка MongoDB
Наконец-то настал этот день, когда мы начали работу над поддержкой MongoDB.
Что, собственно, работает в этой версии:
Просмотр коллекций
Можно видеть коллекции и поля в окне баз данных. Мы получаем первые 10 документов из каждой коллекции, чтоб вытащить информацию о полях (настраивается).
![](https://habrastorage.org/webt/tn/hq/k9/tnhqk9fpqqusurroh02j6knlkng.png)
Просмотр данных
Смотрите документы из любой коллекции или результаты запроса. Работает сортировка по колонкам, фильтры и пагинация.
Также можно включить режим отображения в виде дерева нажав на шестерёнку и дальше View as… | Tree.
![](https://habrastorage.org/webt/uj/oe/kx/ujoekxmy5nvkc5ofnqu8wdkixv8.png)
Консоль запросов
Пока в консоли нет дополнения кода, но запускать запросы и просматривать результаты уже можно. Поставьте курсор на запросе и нажмите Cmd/Ctrl+Enter или на иконку Play в тулбаре.
Дополнение для запросов ожидается в следующих версиях.
PhpStorm включает в себя все возможности DataGrip из коробки, так что в инструментах БД еще очень много других нововведений. Скоро будет обзор релиза DataGrip 2019.3 от наших коллег.
Также, как всегда, PhpStorm включает в себя все обновления из WebStorm.
А полный список изменений можно найти в очень больших release notes.
И напоследок, короткий ролик (на английском) с демонстрацией главных фич релиза:
На этом все на этот раз. Спасибо, что дочитали до конца! Вопросы, пожелания, баг-репорты и просто мысли высказывайте в комментариях!
Ваша команда JetBrains PhpStorm
Комментарии (33)
janson
29.11.2019 13:29Вот специально настраивал у себя PHPDoc чтобы не бросались просто так в глаза.
Работает, при необходимости взглянул, прочитал. Нет необходимости — код более читаемый, чем комменты.
Примерно так:
В версии 2019.2.5Jokerzp
29.11.2019 13:31+1Спасибо за предпятничный апдейт, очень порадовали! Первым в глаза бросился Smooth scrolling и измененные цвета в PhpDoc :)
Отдельная благодарность за усовершенствование поиска по выделенному фрагменту кода, это просто бальзам на душу.
Авто-вставка <?php при вводе <?
Круто, но здесь закралась одна неприятность. Что делать, если я хочу
<?=
, а вместо этого автокомплитом получаю<?php
?
Еще надеюсь, что у вас получится в скором времени апдейтнуть ваш Youtrack плагин, а то он там исключениями бросается сейчас.
alexantr
29.11.2019 14:20Автовставка
php
после<?
действительно очень раздражает. Когда выработана привычка набирать всю конструкцию вручную, то получается или<?phpphp
или<?php=
maxa1
29.11.2019 15:24Мы починили <?phpphp, фикс будет в минорном апдейте — youtrack.jetbrains.com/issue/WI-49337
Простите за неудобство.evgenybuckharev
29.11.2019 15:34Не знаю насколько удобная фича автоподстановка, я для себя завел шаблоны по типу:
p + TAB <?php| ?>
pp + TAB <?=|?>
maxa1
29.11.2019 15:13Мы собираемся сделать PHPDoc настраиваемым. Если интересно, проголосуйте — youtrack.jetbrains.com/issue/WI-48105
Что делать, если я хочу <?=, а вместо этого автокомплитом получаю <?php?
Мы сделали youtrack.jetbrains.com/issue/WI-49636, придется нажать дополнительно Backspace, но хотя бы не 3 раза.
Еще надеюсь, что у вас получится в скором времени апдейтнуть ваш Youtrack плагин, а то он там исключениями бросается сейчас.
Проголосуйте, пожалуйста, за youtrack.jetbrains.com/issue/WI-49940, чтобы следить за обновлениями!alexantr
29.11.2019 16:11придется нажать дополнительно Backspace, но хотя бы не 3 раза.
И когда нужно ввести
<?=
, тоже нужно будет жать Backspace? Лучше была бы возможность вообще отключить автовставкуphp
.
А еще битриксоиды будут негодовать. У них везде
<? ?>
.maxa1
29.11.2019 16:46Спасибо за дополнительную информацию. Проголосуйте, пожалуйста, за youtrack.jetbrains.com/issue/WI-49962
NeLexa
29.11.2019 14:29По поводу типизированных свойств, есть неприятный баг, когда шторм предлагает применить инспекцию по внедрению типа унаследованного свойства для сторонних библиотек из /vendor/ папки и это оборачивается модификацией чужих исходников и как следствие возможные Fatal Error.
maxa1
29.11.2019 15:30Спасибо за подробное описание! Я завел баг — youtrack.jetbrains.com/issue/WI-49957
Пожалуйста, проголосуйте, чтобы следить за обновлениями.
jacksparrow
29.11.2019 14:33Вопрос про вертикальное выделение — раньше было на mac с альтом, а сейчас как? множественные курсоры раставляются все еще альтом
maxa1
29.11.2019 15:35Мы поменяли на Option+Shift. Вы можете поменять в Preferences | Keymap | Editor Actions | Create Rectangular Selection.
MaximChistov
29.11.2019 15:53Авто-вставка <?php при вводе <?
В 7.4 тег <?= ?> deprecated?CrazyLazy
29.11.2019 16:18Нет. Это о
<?
https://wiki.php.net/rfc/deprecate_php_short_tags
Unaffected PHP Functionality
The <?= short tag is unaffected because as of PHP 5.4 it is always available.
psycho-coder
29.11.2019 16:06А какие из этих улучшайзеров можно отключить?
alexantr
29.11.2019 16:59Вот беда в том, что многие фичи, ломающие привычки, вводятся без возможности их отключить и приходится ждать новых версий, когда отключение (может быть) сделают.
psycho-coder
29.11.2019 17:03Собственно поэтому и задал вопрос. Пока сижу на 2019.1, 2019.2 что-то тормозила.
shm-vadim
29.11.2019 18:02При работе со скринридером после нажатия enter на файле проекта курсор не попадает в редактор, оставаясь на кнопке файла. Раньше можно было нажать enter еще раз и таки туда перейти. А сейчас для этого escape нужно нажимать. Что совсем неудобно.
ReDev1L
Ребят, интерпретатором в WSL — не отделаетесь, дайте проброс IDE в каталог WSL, который не mounted в windows. Больше ничего не надо, остальное делает докер.
evgenybuckharev
Так вроде есть доступ к файловой системе WSL, я пробовал работать с проектом ещё до выхода PhpStorm 2019.3, но до момента релиза всё было как то забагованно
ReDev1L
Это mount в windows. Нам это не нужно, т.к. производительность файловой системы в этом случае — не для разработки.
Нужен проброс как в vscode.
sainomori
помимо того, что уже сказал ReDev1L, это сетевой маунт. То есть никакого отслеживания изменений файлов + по неизвестной причине раз в 10-15 минут этот маунт умирает при активной разработке.
dmx00
Если использовать git внутри wsl, то PhpStorm не подсвечивает строки с изменениями (это логично), если использовать git в Windows, то в какой-то момент перестают трекаться изменения, в диалоге коммита нужно нажимать «обновить», сделайте хоть чтобы «обновить» вызывалось автоматически при открытии диалога коммита (это ведь ничего не поломает), а то так можно «удачно» пропустить важные файлы. (проект лежит в папке пользователя в wsl)