Пользовательский режим сортировки для панелей

Здесь обсуждается всё, что касается макросов.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Пользовательский режим сортировки для панелей

Post by Shmuel »

В последние дни экспериментировал с кастомной сортировкой на Lua с участием плагина LuaMacro. Всё можно хорошо и гибко сделать, но быстродействие оставляет желать лучшего. То-есть, если в папке есть 1000 файлов/подпапок, то ещё можно комфортно работать, а на 10000 уже тормозит сильно (время сортировки 2...3 секунды).

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

Вопрос ко всем: надо это делать?

Примечание модератора:
Обсуждение началось в теме Сортировка каталогов (папок) всегда по алфавиту
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by DrKnS »

надо это делать?
Если это будет реализовано в рамках стандартного api, а не каким-нибуть хаком с прямым вызовом LuaMacro, то никто не мешает набросать кастомную сортировку на lua, пользоваться ей до тех пор, пока быстродействие устраивает, и переписать на C++, если сильно припрёт.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Shmuel »

Учитывая, что пожелание кастомной сортировки в панелях периодически всплывает в форуме уже в течение ряда лет, я ожидал более оживлённой реакции, но в результате - только один отклик (спасибо!). Оказывается, кастомная сортировка мало кого интересует.

Но поскольку известно, что разработчики Фара пишут его для себя любимых (а лично меня кастомная сортировка интересует), есть шанс, что она всё же появится.

Продолжал эксперименты в этой области с использованием специфики LuaJIT 2.0, и удалось поднять производительность как минимум на порядок (по сравнению с данными в моём предыдущем сообщении на эту тему).
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

мне вот как бы не нужна кастомная сортировка, мне нужна сортировка как в винде, т.е. с использованием StrCmpLogicalW(), я даже лет нцать назад делал патч для замены кастомной Numeric sort на легальную StrCmpLogicalW. но никто не заинтересовался. вместо этого прикрутили Name/Full name что еще ухудшило ситуацию.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Shmuel »

Alexey Samlyukov wrote:мне вот как бы не нужна кастомная сортировка, мне нужна сортировка как в винде, т.е. с использованием StrCmpLogicalW()
Так ведь "кастомная" означает типа "какая захочешь". Если будет кастомная - поставишь себе StrCmpLogicalW(), и всех-то делов.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Shmuel »

Ну вот, в первом приближении кастомная сортировка в панелях реализована.
Скорость сортировки, благодаря LuaJIT 2.0, примерно на уровне C++.
В реализации возможны недочёты - как всегда, покуда фичей ещё никто не пользовался.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

я не постиг дзен луа, поэтому можно готовый пример с реализацией нормальной сортировки, вместо нумериксорт? спасибо.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Shmuel »

Вот пример с использованием StrCmpLogicalW - нужно сделать макрофайл с таким содержимым:
Для его работы нужна ночная сборка от 14 августа.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

ух ты, а может подпункт в меню сортировки?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Shmuel »

Если фича приживётся, то можно. А пока что можно сделать макрос с вызовом Panel.CustomSortMenu() - выводится отдельное меню для кастомных сортировок.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

чтоб выставлялась при старте надо макрос автостартующим делать? что там дописать надо?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Shmuel »

Нет, там вызов Panel.LoadCustomSortMode расположен вне макросов, поэтому сортировка загружается ещё раньше, чем начинают выполняться автостартующие макросы.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

индикатор горит n, а не b
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Shmuel »

Alexey Samlyukov wrote:индикатор горит n, а не b
У меня - нормально. Кстати, если в индикаторе используются русские буквы, макрофайл должен быть в UTF-8.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

лежит в скриптах, автосэйв вкл, галка только на директории первые, после перезагрузки скидывается в по имени.
Post Reply

Return to “Обсуждение макросов”