View Issue Details

IDProjectCategoryView StatusLast Update
0001338WishesCommand Line/Executepublic2017-11-11 14:31
ReporterMaximus Assigned Tovskirdin  
PrioritynormalSeverityfeatureReproducibilityalways
Status assignedResolutionopen 
Platformx86OSWindowsOS VersionXP SP2
Product Version2.0 
Summary0001338: Префикс в параметрах ком.строки
DescriptionХорошо бы научить фар воспринимать префиксы плагинов в ком.строке.
Префиксы ведь определяются практически однозначно:
1. если есть двоеточие (до первого возможно слеша)
2. и если до двоеточия не стоит буква диска.

В результате можно настраивать фар для явного открытия некоторых типов файлов:
картинки - сразу в picview, архивы - сразу в ma, 7-zip, exe-шники в impex, и т.п...

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

патчик прилагается
TagsNo tags attached.
Build

Relationships

related to 0001979 new Добавить ключи Фара /command1, /command2 

Activities

Maximus

2010-04-09 06:27

reporter  

100408.diff.7z (1,092 bytes)

vskirdin

2010-04-19 12:15

administrator   bugnote:0005235

непонятки:
1. патч обслуживает только активную панель, а как же и пассивная?
2. хелп где?

Maximus

2010-04-20 10:38

reporter   bugnote:0005241

Предлагаю так:
-----------------
  В командной строке можно указать не более двух путей (к каталогам, файлам, архивам)
или двух команд с префиксом плагина. Первый путь для активной панели, второй - для пассивной:
  - ^<wrap>для каталогов и архивов FAR покажет их содержимое;
  - ^<wrap>для файлов - произойдет переход в каталог с файлом и позиционирование на указанный файл, если он существует.
  При указании префиксов плагинов (допускается смешанное использование с обычными путями) сначала выполняется
команда для пассивной панели (при этом, эта панель временно активируется).
-----------------
если хелп устраивает - сделаю diff (вместе с обработкой префикса для пассивной)


К сожалению, с ходу не завелась строка запуска вроде:
far.exe "macro:post MsgBox(""FAR Manager"",""Successfully started"")"

Очевидно, что нужно перед выполнением команды заменять "" на ".
Есть уже в фаре что-то готовое, чтобы выполнить такую замену?

vskirdin

2010-04-20 11:46

administrator   bugnote:0005243

а как же слэши?
far.exe "macro:post MsgBox(\"FAR Manager\",\"Successfully started\")"

в остальном угу, делай патч

Maximus

2010-04-20 19:32

reporter  

100420.diff.7z (3,884 bytes)

Maximus

2010-04-20 19:34

reporter   bugnote:0005247

100420.diff.7z
префиксы работают для обеих панелей
дописаны русский и английский help (статья английского, посвященная параметрам, отформатирована аналогично русскому).

vskirdin

2010-04-21 06:08

administrator   bugnote:0005248

build 1515

NightRoman

2010-04-21 09:51

reporter   bugnote:0005249

> Односимвольные префиксы игнорируются.
Зачем так жестоко? Префикс PSF '>' уже годами существует и тут его того, обидели...

Может смягчить - односимвольные префиксы a-zA-Z игнорируются? А остальные символы вроде не должны быть с дисками спутаны, нет?

DrKnS

2010-04-21 10:04

administrator   bugnote:0005250

> А остальные символы вроде не должны быть с дисками спутаны, нет?

subst ^>: c:\
cd >:

NightRoman

2010-04-21 10:09

reporter   bugnote:0005251

Непонятно, зачем вообще вводить новые правила. Что Фар считает префиксами плагинов в обычной жизни (во внутренней комстроке), то должно считаться префиксами плагинов и в комстроке приложения. Так и плагины не остаются за бортом, и документировать никакие особенности не надо.

NightRoman

2010-04-21 10:14

reporter   bugnote:0005252

Недочеты в английском хелпе:
*) profixes -> prefixes
*) Односимвольные префиксы игнорируются. -> заменить на англ текст, но лучше бы убрать это сомнительное ограничение, логика неясна - почему Фар должен по разному трактовать префиксы плагинов в разных случаях.

NightRoman

2010-04-21 10:20

reporter   bugnote:0005253

> subst ^>: c:\
Прикольно (верю, но пробовать не буду).

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

P.S. Хозяин - барин. Нет - так нет.

vskirdin

2010-04-21 13:00

administrator   bugnote:0005255

таки да, надо наверное ограничится только a-zA-Z, ибо
subst Ф: c:\
срабатывает, но
cd ф:
матерится

можно наверное так же и цифиры сюда добавить...
о!
Нужно сделать строку-настройку (течинфо?), где перечислить то, что "не может быть односимвольным префиксом" (по умолчанию "a-zA-Z0-9")
Так делать?

NightRoman

2010-04-21 13:24

reporter   bugnote:0005256

техинфо - зло же..

*) Почему не заюзать ту же логику определения префикс\не-префикс, что щас в Фаре в обычной комстроке? Не было никаких техинфо на эту тему, и никто же не жаловался, так что тогда эта новая техинфо собирается улучшать? (это об идеальном, на мой взгляд варианте)

*) Практичный вариант. Я бы сделал a-zA-Z для дисков, остальное для префиксов. Без всяких техинфо. Назначать НЕ английские буквы или символы на диски, даже если работает - это изврат (либо я что-то пропустил и мне надо поучится, ткните носом, буду благодарен). И вот только если после этого будут жалобы, только тогда можно подумать о техинфо.

NightRoman

2010-04-21 13:28

reporter   bugnote:0005257

Но вариант с техинфо *сразу* - тоже годится, конечно, он обозначенную мной проблему решает.

DrKnS

2010-04-21 19:42

administrator   bugnote:0005258

Не, техинфо сразу в морг.

Вообще-то фар умеет определять, что префикс, а что нет.

И, скажем, в комстроке ( CommandLine::CmdExecute() ) это работает: если однобуквенный префикс совпадает с "буквой диска", то он имеет приоритет.
Можно и тут так сделать.


Но.
Мне вот сабж кажется достаточно мутной и сомнительной фичей.

Почему:
Far.exe path - команда прозрачная и предсказуемая: переход в папку (или вход в архив).

В то же время за префиксами могут скрываться не только открытия панелей архиваторных плагинов, но и вообще какие угодно действия.

Это не говоря уже о том, что сабжевое поведение прекрасно реализуется плагином из десятка строк и такой плагин даже есть в природе.

Maximus

2010-04-22 05:47

reporter   bugnote:0005259

Last edited: 2010-04-22 05:54

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

Если пользователь ввел "Far.exe prefix:command" зачит он этого сознательно хочет, и говорить а счет "каких угодно действий" некорректно. Действия как раз "угодные".

> Это не говоря уже о том, что сабжевое поведение прекрасно
> реализуется плагином из десятка строк и такой плагин даже есть в природе.

1. нафига плагин, если это командная строка, которую должен обрабатывать сам фар?
2. имя плагина
3. как с ним выполнить такое: far ma:c:\Far20.7z "macro:post MsgBox(\"FAR Manager\",\"Successfully started\")"

Maximus

2010-04-22 05:53

reporter   bugnote:0005260

> Почему не заюзать ту же логику определения префикс\не-префикс,
> что щас в Фаре в обычной комстроке? Не было никаких техинфо на
> эту тему, и никто же не жаловался, так что тогда эта новая техинфо
> собирается улучшать? (это об идеальном, на мой взгляд варианте)

В обычной комстроке логика простая: кеш плагинов (со всеми префиксами) уже загружен.
Первичная же обработка комстроки (с разбором параметров) выполняется ДО загрузки плагинов :) (ключик /p вообще-то есть), поэтому - AI

JohnDoe

2012-02-15 11:23

updater   bugnote:0008573

Тикет открыт потому что не всё ещё сделано?

NightRoman

2012-02-15 11:35

reporter   bugnote:0008574

В тему или нет, мне кажется, что то, как сделали, это вообще притянуто за уши, вот и порождает несколько неудобств, скажем так. А удобно, возможно, было бы так:

http://bugs.farmanager.com/view.php?id=1979

Кроме того, это проще документировать, проще понимать пользователю, проще использовать. Может, все это субъективно, конечно.

JohnDoe

2012-02-15 16:06

updater   bugnote:0008583

0001979 мне нравится, но пардон, но одно другому не мешает.
Где сейчас притянутость за уши?

Указывать префиксы в качестве путей нужно (по идее) для того чтобы открывать панели плагинов.
Если вас смущает ограничение на длину префиксов, то почему бы вашему плагину не заиметь второй, более длинный префикс?

NightRoman

2012-02-15 16:24

reporter   bugnote:0008584

Last edited: 2012-02-15 16:29

> Если вас смущает ограничение на длину префиксов, то почему бы вашему плагину не заиметь второй, более длинный префикс?
Да завел, конечно, а куда деваться.

> Где сейчас притянутость за уши?
Замешали операции, которые могут друг друга исключать. Установить путь панели + выполнить команду на ней не заложено в текущий синтаксис комстроки. Ну это я и назвал "притянутость за уши". Может, надо было другой термин применить. Но суть не поменяет.

Для того же запуска панели плагина по префиксу тоже часто не все равно с какого пути нативной панели она откроется.

JohnDoe

2012-02-15 16:52

updater   bugnote:0008585

>Для того же запуска панели плагина по префиксу тоже часто не все равно с какого пути нативной панели она откроется.
А какое это имеет значение? Или вы о том, чтобы по .. выйти в нужную папку?

JohnDoe

2012-02-15 16:59

updater   bugnote:0008586

Last edited: 2012-02-15 17:57

Если указан путь с пробелами, то вот баг:
Far.exe arc:"filename with spaces.7z"
В результате вместо архива открывается справка arclite.

NightRoman

2012-02-15 17:40

reporter   bugnote:0008587

> А какое это имеет значение? Или вы о том, чтобы по .. выйти в нужную папку?
Например. И куда будут сохраняться, скажем, файлы по умолчанию при работе с панелью (панель - это целый комплекс операций в зависимости от реализации это еще тот комбайн может быть). И где оно стартовало может быть не все равно.

JohnDoe

2012-02-15 17:53

updater   bugnote:0008588

Можно перейти в нужную папку ДО запуска фара.

NightRoman

2012-02-15 18:21

reporter   bugnote:0008589

> Можно перейти в нужную папку ДО запуска фара.
Да, можно так. А можно по-человечески сделать параметром.

Так обсуждать можно до бесконечности. Свое предложение я сделал. То, что я предлагаю, это красиво, удобно, просто, стандартно. Если кто не согласен, уговаривать незачем. Будет так или сяк, жить можно по любому. Жили же до сих пор.

Maximus

2012-02-15 18:43

reporter   bugnote:0008591

Last edited: 2012-02-15 18:43

> Если указан путь с пробелами, то вот баг:
это не баг, вы просто не умеете его готовить
FAR.EXE "arc:\"F:\Temp\3\vs var s.7z\""

> Так обсуждать можно до бесконечности. Свое предложение я сделал
Только патча я что-то не видел... Да и не понял, что именно ты предложил, если честно.

PS. На мой взгляд тикет можно закрывать.

NightRoman

2012-02-15 18:57

reporter   bugnote:0008593

> Только патча я что-то не видел...
А нужен вообще? На такой патч у меня уйма времени уйдет, ибо в Фаре я не особо разбираюсь. Уйдет, возможно, впустую, ибо патч ничего не гарантирует. Да и нет его этого времени, к сожалению.

А предложение никого ни к чему не обязывает. Подумать призывает. Плюсы описал как мог. Моя лепта внесена.

Issue History

Date Modified Username Field Change
2010-04-09 06:27 Maximus New Issue
2010-04-09 06:27 Maximus File Added: 100408.diff.7z
2010-04-19 12:15 vskirdin Note Added: 0005235
2010-04-20 10:38 Maximus Note Added: 0005241
2010-04-20 11:46 vskirdin Note Added: 0005243
2010-04-20 19:32 Maximus File Added: 100420.diff.7z
2010-04-20 19:34 Maximus Note Added: 0005247
2010-04-21 06:08 vskirdin Status new => assigned
2010-04-21 06:08 vskirdin Assigned To => vskirdin
2010-04-21 06:08 vskirdin Note Added: 0005248
2010-04-21 06:08 vskirdin Status assigned => feedback
2010-04-21 09:51 NightRoman Note Added: 0005249
2010-04-21 10:04 DrKnS Note Added: 0005250
2010-04-21 10:09 NightRoman Note Added: 0005251
2010-04-21 10:14 NightRoman Note Added: 0005252
2010-04-21 10:20 NightRoman Note Added: 0005253
2010-04-21 13:00 vskirdin Note Added: 0005255
2010-04-21 13:24 NightRoman Note Added: 0005256
2010-04-21 13:28 NightRoman Note Added: 0005257
2010-04-21 19:42 DrKnS Note Added: 0005258
2010-04-22 05:47 Maximus Note Added: 0005259
2010-04-22 05:47 Maximus Status feedback => assigned
2010-04-22 05:53 Maximus Note Added: 0005260
2010-04-22 05:54 Maximus Note Edited: 0005259
2012-02-15 11:23 JohnDoe Note Added: 0008573
2012-02-15 11:35 NightRoman Note Added: 0008574
2012-02-15 16:06 JohnDoe Note Added: 0008583
2012-02-15 16:24 NightRoman Note Added: 0008584
2012-02-15 16:29 NightRoman Note Edited: 0008584
2012-02-15 16:52 JohnDoe Note Added: 0008585
2012-02-15 16:59 JohnDoe Note Added: 0008586
2012-02-15 17:40 NightRoman Note Added: 0008587
2012-02-15 17:53 JohnDoe Note Added: 0008588
2012-02-15 17:57 JohnDoe Note Edited: 0008586
2012-02-15 18:21 NightRoman Note Added: 0008589
2012-02-15 18:43 Maximus Note Added: 0008591
2012-02-15 18:43 Maximus Note Edited: 0008591
2012-02-15 18:57 NightRoman Note Added: 0008593
2013-02-03 00:33 alexy Severity minor => feature
2017-11-11 14:31 JohnDoe Relationship added related to 0001979