Кастомная строка приглашения (prompt)

Хотите говорить о Far и не знаете, куда обратиться?
xeno.by
Posts: 14
Joined: Sun 16 Oct, 2011 19:49

Re: Кастомная строка приглашения

Post by xeno.by » Sat 14 Apr, 2012 10:13

Latest post of the previous page:

Уважаемые разработчики, не могли бы вы прокомментировать, пожалуйста?

В последнее время работаю с кучей бранчей, поэтому фича стала очень актуальной. Как отметил cmd.exe, можно было бы форкнуть фар и подпилить CommandLine::GetPrompt. Но хочется сделать все по уму и для пользы коммьюнити, поэтому я бы предпочел альтернативный вариант, но я не в курсе как это сделать макросами/плагинами. Возможно, вы сможете подсказать.

User avatar
SUSim
Posts: 1471
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 3 times

Re: Кастомная строка приглашения

Post by SUSim » Sat 14 Apr, 2012 10:38

AlexII wrote:cmd.exe, этак нужно обрабатывать «Ctrl-\», «Ctrl-PgUp/PgDn» и ещё много чего. На мой взгляд, проще повесить команду в UserMenu.
Не так уж и много: Enter - 2 штуки, Ctrl/, CtrlPgUp|Down, AltF1|F2, AltF12 (для эстетов)...
у меня макрос сохранения/восстановления пометок файлов на этих клавишах висит!
SimSU ··· ·· -- ··· ··-

xeno.by
Posts: 14
Joined: Sun 16 Oct, 2011 19:49

Re: Кастомная строка приглашения

Post by xeno.by » Sat 14 Apr, 2012 10:43

SUSim wrote:
AlexII wrote:cmd.exe, этак нужно обрабатывать «Ctrl-\», «Ctrl-PgUp/PgDn» и ещё много чего. На мой взгляд, проще повесить команду в UserMenu.
Не так уж и много: Enter - 2 штуки, Ctrl/, CtrlPgUp|Down, AltF1|F2, AltF12 (для эстетов)...
у меня макрос сохранения/восстановления пометок файлов на этих клавишах висит!
Боюсь, макросы на Enter и др. не годятся потому, что они будут обновлять переменные окружения с запаздыванием, как указал cmd.exe.

User avatar
SUSim
Posts: 1471
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 3 times

Re: Кастомная строка приглашения

Post by SUSim » Sat 14 Apr, 2012 11:01

если все правильно и аккуратно сделать, то всё будет во время...
SimSU ··· ·· -- ··· ··-

xeno.by
Posts: 14
Joined: Sun 16 Oct, 2011 19:49

Re: Кастомная строка приглашения

Post by xeno.by » Sat 14 Apr, 2012 11:08

SUSim wrote:если все правильно и аккуратно сделать, то всё будет во время...
Интригующе. А можешь намекнуть как?

Если мы возьмем содержимое командной строки, запустим на выполнение и потом вызовем макрос, то до вызова уже будет нарисована устаревшая командная строка. Если запускать команду втихаря аля :edit<, то тогда отломаются интерактивные приложения.

User avatar
DrKnS
Posts: 4535
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Re: Кастомная строка приглашения

Post by DrKnS » Sat 14 Apr, 2012 11:32

xeno.by wrote:хочется сделать все по уму и для пользы коммьюнити
По уму и для пользы коммьюнити надо:

1. продумать и предложить api, позволяющее плагинам получать и устанавливать промпт;
2. убедить разработчиков, что с этим api будет лучше, чем без него. Например, приведя несколько (более одного) примеров использования;
3. подготовить и предложить патч для far, либо подождать неопределённое количество лет, пока это сделает кто-то другой;
4. написать плагин, меняющий промпт когда надо и как надо;
5. ?????????
6. PROFIT

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: Кастомная строка приглашения

Post by Maximus5 » Sat 14 Apr, 2012 13:55

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

Т.е. что-то типа новой ProcessPanelEventW (которая в отличие от ProcessEventW будет "ловить" события не только от своего плагина, но и от других плагинов и от файловой панели).
А события - смена текущей директории; начало выполнения команды; окончание выполнения команды; активация панели (переключение между панелями табом, или возврат из редактора/вьювера).

Думаю, что возможности этой ProcessPanelEventW покроют этот запрос, но и другим будут интересны - мне в ConEmu уж точно пригодится, PanelTabs текущую папку мониторит, и т.п.

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

Re: Кастомная строка приглашения

Post by cmd.exe » Sat 14 Apr, 2012 22:03

В данном вопросе придерживаюсь примерно такой-же точки зрения как у Maximus5. Буду ждать с нетерпением реализации данного вопроса...
2 xeno.by можешь написать на Lua или PoverShellFar, из поддерживаемых Фаром плагинов. Или любом другом языке программирования.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia

Re: Кастомная строка приглашения

Post by Centaur » Sun 15 Apr, 2012 05:44

И что, вот пользователь зажал Tab, и плагин начинает дёргать переменную туда-сюда? Поди ещё и git branch во внешнем процессе запускает каждый раз?

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: Кастомная строка приглашения

Post by NightRoman » Sun 15 Apr, 2012 06:29

Centaur wrote:И что, вот пользователь зажал Tab, и плагин начинает дёргать переменную туда-сюда? Поди ещё и git branch во внешнем процессе запускает каждый раз?
Что в этом плохого? Что пользователю, которые это пользует, надо, то и делается. Это хорошо.

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

Re: Кастомная строка приглашения

Post by cmd.exe » Sun 15 Apr, 2012 07:23

NightRoman wrote:
Centaur wrote:И что, вот пользователь зажал Tab, и плагин начинает дёргать переменную туда-сюда? Поди ещё и git branch во внешнем процессе запускает каждый раз?
Что в этом плохого? Что пользователю, которые это пользует, надо, то и делается. Это хорошо.
Ведь вопрос прозвучал, как "Как менять Кастомную строку приглашения":
Можно было зайти на их git-core.googlecode.com 1.7.10, и собрать плагин для FAR, в меру знания языка.
И обрабатывать этот плагин если на панели содержится *.git, а вторым условием стало-бы изменение панели, а дальше передать на "Кастомную строку приглашения"...
Кстати *.git(так-же как *.svn) могут содержаться на локальном носителе, и создать настройку для включений(Папок где располагаются исходники), в которых плагин будет обрабатывать .git ...
Добавлено через 1 час:
Можно как плагин к Обсерверу, ведь есть dir.so можно так-же интерпретировать .svn и .git...
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

Nikolay
Posts: 519
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 11 times

Re: Кастомная строка приглашения

Post by Nikolay » Sun 15 Apr, 2012 16:51

Maximus5 wrote: Т.е. что-то типа новой ProcessPanelEventW (которая в отличие от ProcessEventW будет "ловить" события не только от своего плагина, но и от других плагинов и от файловой панели).
А события - смена текущей директории; начало выполнения команды; окончание выполнения команды; активация панели (переключение между панелями табом, или возврат из редактора/вьювера).

Думаю, что возможности этой ProcessPanelEventW покроют этот запрос, но и другим будут интересны - мне в ConEmu уж точно пригодится, PanelTabs текущую папку мониторит, и т.п.
Присоединяюсь, я давно упоминал о полезности такой фичи - http://forum.farmanager.com/viewtopic.p ... 870#p92558

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

Re: Кастомная строка приглашения

Post by cmd.exe » Sun 15 Apr, 2012 18:57

SUSim wrote:если все правильно и аккуратно сделать, то всё будет во время...
Вот временное решения этого вопроса, когда мы в git все будет работать, и выводиться...
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

DiRTy_GaRRy
Posts: 699
Joined: Tue 05 Apr, 2005 09:26
Been thanked: 2 times
Contact:

Re: Кастомная строка приглашения

Post by DiRTy_GaRRy » Sun 15 Apr, 2012 19:44

Вообще то у git-а каталог .git есть только в рутовой папке (как и у svn c hg), так что применимость подхода с макросами под большим вопросом.
Ы?

User avatar
SUSim
Posts: 1471
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 3 times

Re: Кастомная строка приглашения

Post by SUSim » Mon 16 Apr, 2012 03:46

Ну почему же? можно макросом пробежаться по папкам вверх до папки с git, а если дошли до корня то не git...
SimSU ··· ·· -- ··· ··-

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: Кастомная строка приглашения

Post by Skirda » Mon 16 Apr, 2012 07:42

Если макросами, то это к вопросу о Mantis#466.
We are the Borg. You will be assimilated.
So Say We All!

DiRTy_GaRRy
Posts: 699
Joined: Tue 05 Apr, 2005 09:26
Been thanked: 2 times
Contact:

Re: Кастомная строка приглашения

Post by DiRTy_GaRRy » Mon 16 Apr, 2012 11:44

SUSim wrote:Ну почему же? можно макросом пробежаться по папкам вверх до папки с git, а если дошли до корня то не git...
И каждый заход в в любую папку будет сопровождаться пробеганием макроса по всем папкам до рута. Что то мне это не нравится. Особенно на сетевых дисках. Плюс нужно смотреть что бы реализация просмотра содеожимого папки была "ленивой".

P.S. Это я так, выступаю в качестве "адвоката дьявола". ;)
Ы?

Post Reply

Return to “Обсуждение Far Manager”

Who is online

Users browsing this forum: No registered users and 4 guests