Ru-Board.club
← Вернуться в раздел «Программы»

» Far Manager

Автор: Alexyz21
Дата сообщения: 17.02.2016 16:03
Есть такая буква! Panel.LoadCustomSortMode() будучи вызвана из макроса отрабатывает изменение параметров, но будучи вызвана из тела скрипта - нет, но зато работают пункты в меню, созданным Panel.CustomSortMenu(). Возможно ли усидеть на обоих стульях - не знаю.

В последней версии каждый сдвиг это отдельный режим, сделано так в первую очередь для того, чтобы после смены сдвига сортировка всегда начиналась с прямого направления. Если вам это не нужно, то режим '1000+Offset' можете заменить, например, на '110'.
Автор: Angel_Ka
Дата сообщения: 17.02.2016 16:12
Полагаю, что в меню показывать величину сдвига не обязательно. Тем более, что это "вчерашняя" величина, а вот сейчас может понадобиться и совсем другая.

Добавлено:
А насчёт того, чтобы всегда начинать с прямого направления, думаю, — очень правильно. Как в нативных режимах сортировки. Однообразно.
Автор: Alexyz21
Дата сообщения: 17.02.2016 17:40
Обновил. Построил на логике двоичного автомата - Шмуел если увидит, смеяться в голос будет, скажет: "нет, чтобы доку внимательно прочесть!" - но главное работает
Автор: Angel_Ka
Дата сообщения: 17.02.2016 18:31
Погонял. И, действительно, вроде бы всё работает. И вроде бы теперь как раз совсем то, что и было нужно! Даже не верится.
Низкий поклон, мастер Alexyz21!

Автор: Alexyz21
Дата сообщения: 17.02.2016 18:40
Angel_Ka, не понял!!! что значит даже не верится?! - дело мастера боится
сделал чтобы новый сдвиг не изменял предыдущее направление и синхронизировал с ним индикатор.
Автор: Angel_Ka
Дата сообщения: 17.02.2016 20:25
Alexyz21

Цитата:
сделал чтобы новый сдвиг не изменял предыдущее направление и синхронизировал с ним индикатор

Да и это я тоже заметил. Очень хорошо придумано и сделано! Вот и восклицаю: даже не верится в смысле что может быть так хорошо и красиво реализовано! Каждый раз применяя макрос спасибы в Ваш адрес посылать буду.

Кстати, может быть Вы обращали внимание ещё на один любопытный макрос на эту же тему. Сам я, правда, очень редко его использую, но он, на мой взгляд, весьма разумно сделан. И, может быть, если к нему приделать интерактив перечисления ситуативно интересующих на текущий момент расширений файлов для упрощения их последующего анализа, то он ещё лучше станет? Как Вы полагаете? Возьмётесь?

И да, очень прав, разумеется, shmuz, в более широком смысле акцентируя наше внимание на полезности связки Far + LuaMacro! С момента внедрения Lua в Far стало намного удобнее и интереснее работать с Far`ом.
Автор: shmuz
Дата сообщения: 17.02.2016 20:34
Angel_Ka

Цитата:
акцентируя наше внимание на полезности связки Far + LuaMacro!

Не, я ничего не акцентировал, а просто уточнил, где реализован механизм кастомной (пользовательской) сортировки.
Автор: Angel_Ka
Дата сообщения: 17.02.2016 20:56
shmuz
Извините меня, пожалуйста, если я Вас не совсем точно понял.
При этом в целом остаюсь при том же сугубо положительном мнении о благотворности связки Far + Lua и лично Вашей заслуге в том, что этот спаринг случился и продолжает развиваться!
Со всем почтением!
Автор: Alexyz21
Дата сообщения: 18.02.2016 10:02
Angel_Ka

Цитата:
Возьмётесь?

Нет. Это к автору. Этот закончил. Можно было бы добавить чекбоксы опций сортировки, но не охота возиться с формой диалога.
Автор: Angel_Ka
Дата сообщения: 18.02.2016 12:20
Alexyz21

Цитата:
Нет. Это к автору.

Пока не заинтересовало? Что ж, а вдруг интерес возникнет таки...

Цитата:
Этот закончил

На мой взгляд, указатели в меню всё же излишни. Да и пункты меню, кажется, не срабатывают.

Цитата:
Можно было бы добавить чекбоксы опций сортировки, но не охота возиться с формой диалога

А вот это я что-то не догоняю. Что бы это дало?


Автор: VictorVG2
Дата сообщения: 18.02.2016 12:49
Angel_Ka

Возможность более простой настройки, зато более сложный код макроса. Кстати именно потому и я частенько стараюсь обойтись без построения кастомных страниц там, где это возможно. Особенно в программах написанных в среде NSIS - мне проще соорудить логику выбора компонент, чем строить кастомную страницу с кучей кнопок, надписей и чекбоксов - размер возни не в пример меньше, а результат по смыслу тот же. Та же FarUE3 пример этого подхода. Код выбора секций это несколько строк, а вот добавь я код страницы, это было бы нечто, да и сложность отладки программы возросла бы в несколько раз.
Автор: Alexyz21
Дата сообщения: 18.02.2016 13:38
Angel_Ka

Цитата:
На мой взгляд, указатели в меню всё же излишни. Да и пункты меню, кажется, не срабатывают.

У меня и отображаются и работают.

Цитата:
А вот это я что-то не догоняю. Что бы это дало?

Опция IgnoreCase, даёт согласно названия, равно как и остальные из CompareStringW().
Автор: Angel_Ka
Дата сообщения: 18.02.2016 14:45
Alexyz21

Цитата:
Цитата:
На мой взгляд, указатели в меню всё же излишни. Да и пункты меню, кажется, не срабатывают.

У меня и отображаются и работают.

Ой! Простите, пожалуйста! Это я напутал сначала, а потом ещё и поторопился. На самом деле всё работает. И хорошо работает. И я очень рад и очень доволен тем, что Вы так тщательно отточили макрос! Ещё и ещё раз БОЛЬШОЕ СПАСИБО!

Автор: Alexyz21
Дата сообщения: 18.02.2016 16:07
улучшил производительность
Автор: Angel_Ka
Дата сообщения: 18.02.2016 16:51
Alexyz21
Последний манёвр от 16:59 18-02-2016 понят и присовокуплён. Приятно!
ДОПОЛНИТЕЛЬНЫЕ БЛАГОДАРНОСТИ!
Автор: VictorVG2
Дата сообщения: 19.02.2016 01:10
b4553 r13841 (b4552 или b4553 ) - сбой при сборке в VC++ 2010 на файле viewer.cpp при сборке 32-х и 64-х битных вариантов Far:

Цитата:
1>viewer.cpp(4064): error C3493: "RB_PRC" нельзя передать неявно, поскольку не задан режим передачи по умолчанию
1>viewer.cpp(4069): error C3493: "RB_HEX" нельзя передать неявно, поскольку не задан режим передачи по умолчанию
1>viewer.cpp(4075): error C3493: "RB_DEC" нельзя передать неявно, поскольку не задан режим передачи по умолчанию
1>viewer.cpp(4100): error C2064: результатом вычисления фрагмента не является функция, принимающая 5 аргументов
1>viewer.cpp(4105): error C2064: результатом вычисления фрагмента не является функция, принимающая 5 аргументов
1>Построение проекта ".\fardev\unicode_far\far.vcxproj" завершено (целевые объекты build) с ошибкой.

СБОЙ построения.

в VC++2015 собралось без вопросов.

Вопрос о номере билда возник отсюда - changelog:

Цитата:
drkns 19.02.2016 00:08:34 +0200 - build 4552

1. Еще раз на тему Alt+F8 во вьювере:

в vbuild.m4 видим:

Цитата:
m4_define(BUILD,4553)m4_dnl

отсюда и вопрос какой билд, хотя я думаю что в /unicode_far/vbuild.m4 случайная опечатка от чего никто из нас не застрахован.

Добавлено:
Поглядел по месту - по коду сбой возникает вот где:


Цитата:
                InputMode = RB_PRC; <-- стр. 4064
            }
            // он умный - hex код ввел!
            else if (!StrCmpNI(&Str[Pos], L"0x", 2) || Str[Pos] == L'$' || Str.find_first_of(L"Hh", Pos) != string::npos)
            {
                InputMode = RB_HEX; <-- стр. 4069
                if (Str[Pos] == L'$')
                    ++Pos;
            }
            else if (Str.find_first_of(L"Mm", Pos) != string::npos)
            {
                InputMode = RB_DEC; <-- стр. 4075
            }

похоже что компилятор в данном случае ведёт себя подобно первым версиям IBM PL/1L из OS/360 - в подобном случае тот путался с тип входных данных данных и заранее выдавал ошибку т.к. встречал неопределённость, а дальше т.к. произошёл сбой в строках 4064, 4069, 4075 по цепочке происходит сбой и в строках 4100/4105 ведь компилятор уже зафиксировал неопределённость и вызвал обработчик ошибок.

И тут я вижу только один вариант их избежать - алгоритм типа такого: модификатор первые два символа, проверяем его на значения %, R, L, + и - любые иные считаем ошибкой, его в переменную которая послужит нам семафором для ветвления, всё остальное в поле цифры, проверяем если там значения 0-9, a-f и или при модификаторе % третий символ запятая проверяем что ввод содержит только допустимые цифры, нет - ругаемся, да - считаем адрес перехода и goto. При этом нам не требуется отдельный модификатор DEC/HEX - режим определит ввод, а тип перехода - абсолютный от начала файла или относительный по смещению от строки - ну к примеру модификатор R, + - переход по смещению вперёд, L, "-" - аналогично, но назад, + и - указывают на относительное смещение, точка отсчёта текущая строка, R и L задают отсчёт от начала (R), или конца файла (L).

Так мне кажется проще выходит, хотя придётся проверять ввод на принадлежность к цифрам и запятой, но без учёта регистра это шестнадцать быстрых проверок на И ...
Автор: VictorVG2
Дата сообщения: 19.02.2016 11:24
Да, цифру билда поправили, а остальное? Или это решили на допущениях оставить ибо это проще? А где ещё эта мина сработает? А мина-то добротная....
Автор: Alexyz21
Дата сообщения: 19.02.2016 11:48
[del]
Автор: shmuz
Дата сообщения: 19.02.2016 12:10
VictorVG2

Цитата:
Да, цифру билда поправили, а остальное?

Особо не вникал, но предположу, что с кодом всё в порядке, а на поддержку VS 2010 забили.
Автор: VictorVG2
Дата сообщения: 19.02.2016 13:05
shmuz

Явно так, но это значит мы допускаем чтобы "особенность" реализации стандартов языка привязала нас к бизнес-решениям автора компилятора, и если завтра он скажет "лягушка" мы будем обязаны прыгать и квакать. В 84-м мы на это с СУБД нарвались когда её автор "оптимизировал" стандарт ANSI SQL "забыв" это задокументировать, и все экономические задачи рухнули, а сводки по почти пятистам заводам что мы считали ложились прямо на стол Генсеку. Что с этого было не трудно себе представить.
Автор: shmuz
Дата сообщения: 19.02.2016 13:11
VictorVG2

Цитата:
но это значит мы допускаем чтобы "особенность" реализации стандартов языка привязала нас к бизнес-решениям автора компилятора

А вы попробуйте собрать на одной из последних версий GCC. Если соберётся, значит стандарт не нарушен.
Автор: fcdobpiy
Дата сообщения: 19.02.2016 13:14
VictorVG2
там с стандартом все ок. реально забили на 2010 и к лучшему. в ближайших версиях и colorer перестанет собираться через vc2010.
но как и far , должен собрать через gcc
Автор: VictorVG2
Дата сообщения: 19.02.2016 13:18
shmuz

С алгоритмом у компилятора в этом просто - у него нечёткая логика строится на предположениях вида "Если явно не указано А, то предполагаем что С или В, а если после выяснится что не С и не А, то возможно это В, а А более не рассматриваем..." а если в этом месте на самом деле как раз А? Получим сбой типа этого с которым мы сейчас возимся?
Автор: skipik001
Дата сообщения: 19.02.2016 13:26
VictorVG2
MS VS 2015 успешно собирает эту ревизию, только ворнинг в наличии:

Цитата:
1>viewer.cpp(4095): warning C4458: declaration of 'Strings' hides class member
1> c:\soft\fardev\fardev\unicode_far\viewer.hpp(171): note: see declaration of 'Viewer::Strings' (compiling source file viewer.cpp)
Автор: shmuz
Дата сообщения: 19.02.2016 13:28
VictorVG2
Зачем лезть в дебри алгоритмов компиляторов, мы же не компиляторы делаем? Соберите на GCC, и если соберётся, значит всё OK.
Автор: VictorVG2
Дата сообщения: 19.02.2016 14:17
shmuz
fcdobpiy

Ясно, ладно, скрипты я поправлю, не долго. А с rufus там у меня "весело" - программа глухо виснет на опросе железа, ну там Питер сейчас поглядит - мне её даже в отладчике не удаётся "разбудить". Короче сплошные неприятности.

skipik001

Варнинг ночью и сам словил когда у приятеля проверял. Ладно, пойду к ребятам перенастраивать ./etc/cl.conf через который у меня компиляторы зовутся. Там сейчас 2010 отстроена, а с 2015 я по NFS "приседаю" ой-ой-ой как... Пляски Святого Витта в кубе помноженные на перебор чинов и званий с крепкими выражениями в адрес небесной верхушки. Хорошо что сегодня они на месте или жди у моря погоды покуда появятся
Автор: VictorVG2
Дата сообщения: 19.02.2016 16:56
shmuz

Факт, в GCC 5.10 SEH (x86_64-5.1.0-win32-seh-rt_v4-rev0) собралось, хотя габарит, но тут можно с майками повозится и подобрать оптимизацию.
Автор: VictorVG2
Дата сообщения: 19.02.2016 19:48
Ладно, пока собрал FarUE3 b4552 r13845 Fri Feb 19 19:50:59 +0300 2016

Цитата:
1. Far b4552 r13845
2. LuaFAR Search v3.22.4
3. Рефакторинг. Обновление совместимо с SVN r13839 - SVN r13845

в х64 как обычно без инсталлятора.

И на пробу - 2k/XP у меня нет, гляньте у кого есть как оно работает? Far30.4552.13845_gcc_5.10_seh.7z. Не будет проблем - можем придумать что интересное.
Автор: Alexyz21
Дата сообщения: 19.02.2016 21:11

Цитата:
Far30.4552.13845_gcc_5.10_seh.7z

под XPSP2 запускается
Автор: VictorVG2
Дата сообщения: 19.02.2016 21:26
Alexyz21

Ага, добро. Я на всякий пожарный туда кинул собранные в VC2015 плагины и главное сделал чтобы рабочий профиль не портила + запуск как в х64 варианте через скрипт и скрытую консоль. Перезалил.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: оффтоп


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.