Tabdir
2 ноября 2011
Работать с проектами, в которых встречается куча одноимённых фалов, в PhpStorm, IDEA, RubyMine, PyCharm и остальных не очень удобно. На это есть как минимум две причины:
В PhpStorm, если не используются namespace, отключается дополнение кода. Шаг спорный, но логика разработчиков тут ясна. Неизвестно, что хуже: не подсказывать вообще или подсказывать неверно.В PhpStorm 3 дополняет.- При открытии кучи вкладок выходит по 3—4 одноимённых с разными файлами, что несомненно замедляет работу.
Вторая проблема частично решается настройкой IDE Settings → Editor tabs → Show directory in editor tabs for non-unique filenames
, но лишь частично так как показывается только непосредственно директория, в которой находится файл. То есть вот такая ситуация с этой опцией станет только хуже:
modules/blog/controllers/DefaultController.php modules/user/controllers/DefaultController.php
Плагин Tabdir призван решить проблему как надо. Вместо директории, в которой находится файл он показывает различия. Для приведённого выше случая на вкладках будет [blog] DefaultController.php
и [user] DefaultController.php
.
Поставить можно из самой IDE перейдя в IDE Settings → Plugins
.
Для корректной работы плагина опцию IDE Settings → Editor tabs → Show directory in editor tabs for non-unique filenames
нужно отключить.
Комментарии RSS по email OK
Есть у меня большое подозрение, что если такое случилось - скорее всего что-то не так в самом проекте. Ибо в рамках одной задачи очень много вкладок не может быть (у меня если случается - скорей всего открыты какие-то реально уже не нужные файлы) - одно изменение (по сути - одна задача) не должно влечь за собой множественных правок. Плюс комбинации Ctrl+N и Ctrl+Shift+N дают возможность не хранить открытым не нужный в текущий момент контент
Ну почему? Например, есть проект на Yii с несколькими темами. Внутри тем гаранированно файлы одноимённые. Задача — поправить в нескольких темах одно и то же.
Не понимаю, ради чего требовать одинаково называть контроллеры? Если название типа обьектов одинаково, и лежат в одном namespace - значит это обьекты одного типа.
Если контроллеры называются одинаково, делают одно и тоже - о чем свидетельствует "поправить одно и тоже" - то смысла от двух файлов, имеющих одно назнавие, назначение и устройство - ноль, достаточно одного. Разобраться в коде, в котором встречаются типы с одним названием в одном namespace - очень тяжело, как только проект вырастает за рамки страницы блога.
Я припоминаю, что yii framework использует соглашения о размещении файлов - имхо, очень отстойный путь, приводящий к сабжу и большим глупым ошибкам, опробовано в продакшене. Завязывать роутинг на наименование обьектов безудержное зло, смешивающее самые разные понятия и абстракции.
mitallast, поправить одно и то же — это про
view
. С контроллерами просто пример, в Yii2 они будут в namaspace, в 1.1 обратная совместимость не позволит.Сенькс, уже замечал себя на том что 4 одноимённых файла открыто и не понять что есть что (контроллер, модель, view, js view)
Во-первых, в EAP 3.0 автодополнение для одинаковых классов из разных файлов заработало. Во-вторых, есть еще замечательная опция File Colors которой я например расцвечиваю по разному табы от вида, контроллеров, моделей, etc.
У меня для всех файлов выводит начальный каталог [www]fileName :( , что не очень удобно.
Олег Горбунов, опа! Действительно заработало. А по какому принципу, знаете? Откуда берутся методы?
За File Colors огромное спасибо. Не замечал, что оно настолько гибкое.
Андрей, попробуйте в опциях отключить
Reduce dir names
.Если понадобится настроить scope-ы для Yii:
File Colors - классная штука. В PhpStorm куча всего. Напрягали одинаковые названия файлов модели, сервиса, контроллера.
Что-то я не совсем понял, как пользоваться File Colors :( Объясните плз.
Принцип такой, создаём цели(scopes) и для каждой цели определяем цвет. Следовательно табы файлов, содержащихся внутри целей окрашиваются в разные цвета.
Можно сделать в настройках File Colors Manages Scopes
Классно, но тогда табы занимают слишком много места. А можно наведением на вкладку посмотреть полный путь. Не сильно быстро, но для операции не так часто встречающейся этого достаточно.