Page 1 of 2

[Request] Плагин — дерево открытых файлов

Posted: Thu Dec 01, 2016 4:52 pm
by [Yustas.NeO]
Приветствую всех!

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

P.S. Желательно, с запоминанием места в дереве для уже однажды открытых файлов и настраиваемым контекстным меню.

Спасибо!

Posted: Thu Dec 01, 2016 5:16 pm
by Skif_off
[Yustas.NeO]

Code: Select all

"Выбор окна..." Command(4327)
?

Posted: Thu Dec 01, 2016 9:38 pm
by FeyFre
[Yustas.NeO]
Дали бы сразу определение что такое дерево
как должны листья узлы корни формироваться
и т.д.
я пока какой-то необходимости не вижу таком подходе

Posted: Thu Dec 01, 2016 9:41 pm
by DV
Вот, кстати, почему в главном меню в подменю "Окно" отсутствует эта команда - "Диалог выбора окна" с горячей клавишей F10?
Ведь сейчас единственный способ узнать о её существовании - это наткнуться на неё в справке. (К слову, я узнал о ней из справки пару лет назад, а потом благополучно забыл, поскольку нигде больше она не фигурирует.)

Posted: Fri Dec 02, 2016 12:04 am
by FeyFre
DV
Ну ради справедливости, на неё можно наткнуться также и HotKeys->All Keys. Полезнее доки оказалось... ибо там светится недокументированная фича - хоткеи которые себе скрипты доназначают(и плагины тоже).

ЗЫ: и по ходу дела выяснил что мой history.js крешит АР как собака бешенная

Posted: Fri Dec 02, 2016 6:49 am
by Skif_off
DV
Она не отсутствует в меню по умолчанию:

Code: Select all

        SET(4)
            #Только для MDI
            MDIDOCUMENTS
        UNSET(4)
        SET(2)
            #Только для PMDI
            SEPARATOR1
            "Выбор окна..." Command(4327)
        UNSET(2)

А вообще, можно как-то получить список всех открытых файлов?

Posted: Fri Dec 02, 2016 2:26 pm
by [Yustas.NeO]
И узел и лист -- любой открытый в AkelPad файл.
Дерево формируется перетаскиванием одного узла на другой.
Запоминается в виде путь_к_файлу_2 является вложенным для путь_к_файлу_1 (относительное расположение вкладок на одном уровне еще стоит продумать). Если путь_к_файлу_1 еще не открыт -- открывать в корне дерева.

Как выглядит дерево, наверное не совсем принципиально, главное чтобы узлы можно было перетягивать и сворачивать, и было запоминание расположения.
Может выглядеть и как дерево в regedit, и как вкладки в расширении Tree Style Tab для FireFox (может кто знает).


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

Как-то так

Posted: Fri Dec 02, 2016 3:15 pm
by opk44
[Yustas.NeO]
1. Не понятно, на каком основании один файл-"узел" должен подчинять другой файл-"лист".
2. Сама идея превратить AkelPad в некий "динамический аутлайнер" довольно интересная.

Posted: Fri Dec 02, 2016 8:20 pm
by F. Phoenix
Плюсану топику. Поддержка кастомных древовидных списков приблизит AkelPad к полноценным IDE, а конфигурацию деревьев наверняка удобно будет сохранять в XML, как это сделано в проектах Visual Studio.

Но предложу несколько другой вариант. Примерно такой:

Code: Select all

Группа файлов (виртуальная папка)
└┬─ Файл 1
 ├─ Файл 2
 ├─ Файл 3
 │  └─ Зависимый файл
 └─ Группа файлов
    └─ Файл

Posted: Mon Dec 05, 2016 1:33 pm
by [Yustas.NeO]
opk44 wrote:[Yustas.NeO]
1. Не понятно, на каком основании один файл-"узел" должен подчинять другой файл-"лист".
На основании перетягивания заголовка одного файла на заголовок другого.

F. Phoenix wrote:конфигурацию деревьев наверняка удобно будет сохранять в XML
XML или JSON — не принципиально. Важно, чтобы в настройках сохранялась информация о "месте расположения" файла даже для закрытых (можно в настройках для файла сохранять open="true/false")
F. Phoenix wrote:предложу несколько другой вариант. Примерно такой:

Code: Select all

Группа файлов (виртуальная папка)
└┬─ Файл 1
 ├─ Файл 2
 ├─ Файл 3
 │  └─ Зависимый файл
 └─ Группа файлов
    └─ Файл
Раньше почему-то я отмёл для себя вариант с "виртуальными папками", но пожалуй он мне снова нравится :) Главное, чтобы была неограниченная вложенность.

[Yustas.NeO] wrote:Запоминается в виде путь_к_файлу_2 является вложенным для путь_к_файлу_1. Если путь_к_файлу_1 еще не открыт — открывать в корне дерева.
Передумал: если путь_к_файлу_1 еще не открыт — открывать в вышеобозначенной "виртуальной папке", чтобы сохранилось дерево.

Posted: Mon Dec 05, 2016 2:18 pm
by F. Phoenix
[Yustas.NeO] wrote:Главное, чтобы была неограниченная вложенность
И поддержка путей относительно проектного файла.
Ну и желательно чтоб по клику на этом файле AkelPad открывался с прописанной конфигурацией файлов, без необходимости вручную запускать какие-либо дополнительные команды и скрипты.

Posted: Mon Dec 05, 2016 2:45 pm
by [Yustas.NeO]
F. Phoenix wrote:
[Yustas.NeO] wrote:Главное, чтобы была неограниченная вложенность
И поддержка путей относительно проектного файла.
Ну и желательно чтоб по клику на этом файле AkelPad открывался с прописанной конфигурацией файлов, без необходимости вручную запускать какие-либо дополнительные команды и скрипты.
Я имел ввиду только дерево открытых файлов. Хотя дерево проектов (в виде братского плагина) тоже неплохая мысль.

Posted: Tue Dec 06, 2016 12:28 pm
by VladSh
Для дерева открытых файлов можно было бы заюзать:
- "Выбор окна..." (добавить галку для отображения в иерархическом виде с разбиением через слэш);
- Sessions-плагин (возможность отображения "проектов" уже имеется, т.е. допиливать много не придётся);
- Explorer-плагин (добавить галку и параметр для запуска "отображать только открытые").

Posted: Fri Feb 03, 2017 10:26 am
by [Yustas.NeO]
Заглохла тема? :-(

Posted: Sun Feb 12, 2017 6:43 am
by Instructor
Обращу ваше внимание как и VladSh на

Image