<rmcreative>

RSS

Tabdir

2 ноября 2011

tabdir

Работать с проектами, в которых встречается куча одноимённых фалов, в PhpStorm, IDEA, RubyMine, PyCharm и остальных не очень удобно. На это есть как минимум две причины:

  1. В PhpStorm, если не используются namespace, отключается дополнение кода. Шаг спорный, но логика разработчиков тут ясна. Неизвестно, что хуже: не подсказывать вообще или подсказывать неверно. В PhpStorm 3 дополняет.
  2. При открытии кучи вкладок выходит по 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

  1. №5565
    Вадим Крючков
    Вадим Крючков 03 нояб. 2011 г., 0:32:51

    Есть у меня большое подозрение, что если такое случилось - скорее всего что-то не так в самом проекте. Ибо в рамках одной задачи очень много вкладок не может быть (у меня если случается - скорей всего открыты какие-то реально уже не нужные файлы) - одно изменение (по сути - одна задача) не должно влечь за собой множественных правок. Плюс комбинации Ctrl+N и Ctrl+Shift+N дают возможность не хранить открытым не нужный в текущий момент контент

  2. №5566
    Sam
    Sam 03 нояб. 2011 г., 0:42:31

    Ну почему? Например, есть проект на Yii с несколькими темами. Внутри тем гаранированно файлы одноимённые. Задача — поправить в нескольких темах одно и то же.

  3. №5567
    mitallast
    mitallast 03 нояб. 2011 г., 1:12:53

    Не понимаю, ради чего требовать одинаково называть контроллеры? Если название типа обьектов одинаково, и лежат в одном namespace - значит это обьекты одного типа.

    Если контроллеры называются одинаково, делают одно и тоже - о чем свидетельствует "поправить одно и тоже" - то смысла от двух файлов, имеющих одно назнавие, назначение и устройство - ноль, достаточно одного. Разобраться в коде, в котором встречаются типы с одним названием в одном namespace - очень тяжело, как только проект вырастает за рамки страницы блога.

    Я припоминаю, что yii framework использует соглашения о размещении файлов - имхо, очень отстойный путь, приводящий к сабжу и большим глупым ошибкам, опробовано в продакшене. Завязывать роутинг на наименование обьектов безудержное зло, смешивающее самые разные понятия и абстракции.

  4. №5568
    Sam
    Sam 03 нояб. 2011 г., 1:21:34

    mitallast, поправить одно и то же — это про view. С контроллерами просто пример, в Yii2 они будут в namaspace, в 1.1 обратная совместимость не позволит.

  5. №5569
    Артём Курапов
    Артём Курапов 03 нояб. 2011 г., 1:25:56

    Сенькс, уже замечал себя на том что 4 одноимённых файла открыто и не понять что есть что (контроллер, модель, view, js view)

  6. №5571
    Олег Горбунов
    Олег Горбунов 03 нояб. 2011 г., 8:21:38

    Во-первых, в EAP 3.0 автодополнение для одинаковых классов из разных файлов заработало. Во-вторых, есть еще замечательная опция File Colors которой я например расцвечиваю по разному табы от вида, контроллеров, моделей, etc.

  7. №5572
    Андрей
    Андрей 03 нояб. 2011 г., 12:17:39

    У меня для всех файлов выводит начальный каталог [www]fileName :( , что не очень удобно.

  8. №5573
    Sam
    Sam 03 нояб. 2011 г., 18:27:38

    Олег Горбунов, опа! Действительно заработало. А по какому принципу, знаете? Откуда берутся методы?

    За File Colors огромное спасибо. Не замечал, что оно настолько гибкое.

    Андрей, попробуйте в опциях отключить Reduce dir names.

  9. №5574
    Sam
    Sam 03 нояб. 2011 г., 18:32:22

    Если понадобится настроить scope-ы для Yii:

    file:*Controller.php
    file:*/views/*.php
    file:*/models/*.php
    
  10. №5575
    IgorN
    IgorN 03 нояб. 2011 г., 20:12:18

    File Colors - классная штука. В PhpStorm куча всего. Напрягали одинаковые названия файлов модели, сервиса, контроллера.

  11. №5589
    SecondFrog
    SecondFrog 11 нояб. 2011 г., 11:06:29

    Что-то я не совсем понял, как пользоваться File Colors :( Объясните плз.

  12. №5590
    sandrain
    sandrain 11 нояб. 2011 г., 14:01:28

    Что-то я не совсем понял, как пользоваться File Colors :( Объясните плз.

    Принцип такой, создаём цели(scopes) и для каждой цели определяем цвет. Следовательно табы файлов, содержащихся внутри целей окрашиваются в разные цвета.

    Можно сделать в настройках File Colors Manages Scopes

  13. №8764
    Mr. PLutov
    Mr. PLutov 15 янв. 2014 г., 11:12:13

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

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.