SUSim wrote:Ну почему же? можно макросом пробежаться по папкам вверх до папки с git, а если дошли до корня то не git...
И каждый заход в в любую папку будет сопровождаться пробеганием макроса по всем папкам до рута. Что то мне это не нравится. Особенно на сетевых дисках. Плюс нужно смотреть что бы реализация просмотра содеожимого папки была "ленивой".
P.S. Это я так, выступаю в качестве "адвоката дьявола".
Я имею в виду, что мне хотелось бы иметь возможность получить в Far Manager функциональность, аналогичную командному процессору в части использования «$_» в приглашении (PROMPT) командной строки, дабы была возможность разнести $P в одну строку, $M — во вторую, а курсор для ввода на третью, наподобие:
Было несколько лет назад... Хотелось выводить побольше информации на экран, и лучше всего в командную строку...
Можете на макросах попробовать... //Crutches
/* эти переменные не реализованы
$E - Escape code (ASCII code 27)
$V - Windows XP version number
$_ - Carriage return and linefeed
$M - Отображение полного имени удаленного диска, связанного с именем текущего диска, или пустой строки, если текущий диск не является сетевым.
*/
Ща что-нить придумаю, и можно на мантис выложитоь дифф к cmdline.cpp...
Кстати кто знает почему не было реализовано?
Вернул каретку, пока не знаю, но почему-то всё выводится в одну строку, хотя должно быть не так...
Кстати где часть кода, отвечающая за подчистку пространства после командной строки? ведь там мусора не остаётся, нужно, что-бы она ещё обрабатывала Y1-strnewlinei
Осталось повычитать из проходящих параметров, те которые уже были выведены... 24.04.2012 11:59 am diff.cmdline.cpp diff.cmdline.hpp
Вопрос с возвратом каретки решаю, но пока оно не актуально... // заново всегда отображать всю консоль, а это очень не хорошо. 26.04.12 7:18 pm
Дочитал книжку до array'ев, понял, что это именно то, что и нужно...
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
SUSim wrote:Ну почему же? можно макросом пробежаться по папкам вверх до папки с git, а если дошли до корня то не git...
И каждый заход в в любую папку будет сопровождаться пробеганием макроса по всем папкам до рута. Что то мне это не нравится. Особенно на сетевых дисках. Плюс нужно смотреть что бы реализация просмотра содеожимого папки была "ленивой".
P.S. Это я так, выступаю в качестве "адвоката дьявола".
Вначале я думал, что можно легко запихнуть в GetPrompt вызов кастомной прожки, задаваемой в настройках, которая будет делать все, что надо. Модульность на высоте, все прозрачно - красота.
Иллюзия длилась пока я не попробовал реализовать. Написал мини-тул, который вызывает git branch в текущей директории - получились адовые тормоза. Каждый вызов занимает где-то полсекунды, в итоге молниеносность работы с фаром превращается в УГ. Вроде бы, проблема в деталях реализации гита на винде. С гитовым плагином для емакса была та же история.
В итоге забил и захардкодил получение бранча прямо в GetPrompt: https://github.com/xeno-by/dotwindows/b ... e.cpp#L627. Само собой, некрасиво, но на большее у меня сейчас нет времени. Зато очень быстро (понятное дело, на сетевых папках быстро не будет).
Решение ограниченное, но все же решил запостить - вдруг кому пригодится. Кодяра вроде работает, но последний раз на плюсах я писал лет восемь назад, поэтому не уверен.
По умолчанию, в строке prompt показывается текущий каталог. Если этот каталог очень длинный, то он обрезается (показывается только конец, а начало заменяется точками). Но, на мой вкус, все равно оставляется слишком много.
Вопрос: как можно укоротить тот кусок пути к текущему каталогу, который показывается в prompt?
И заодно одно предложение/идея: не сделать ли так, как это, по-моему, сделано в PowerShell и bash, т.е. чтобы prompt был результатом какой-то функции (со стандартным именем). Тогда с помощью Lua можно было бы этот prompt сделать таким, каким хочется.
Попробовал разобраться в коде Фара. В cmdline.cpp prompt обрезается до половины ширины экрана. Посмотрел plugapi.hpp, но ничего похожего на что-то для управления prompt не нашел. Неужели даже с помощью плагина это невозможно сделать? Мне что-то не верится, видя, какие чудеса народ творит с помощью плагинов.
Плагины творят чудеса в силу имеющегося API. Если что-то не покрыто API или макросами, то никаких чудес не будет.
Пожелание же - здравое. Упоминание существующих подходов в PowerShell (знаю) и bash (не знаю) не лишнее тоже. Как бы намекает. Фар ведь шелл в какой-то мере.
fml2 wrote:Вот еще одна хотелка по этому же поводу -- с менее гибким, но гораздо более простым в реализации (как мне кажется) решением: http://bugs.farmanager.com/view.php?id=2302
Частичное решение (первая часть) - в build 3190.
Вторая часть (макросы) - к shmuel
We are the Borg. You will be assimilated.
So Say We All!
Спасибо за первую часть (хотя я еще и не попробовал). По поводу макросов: я так понял, что они пока что не помогут (даже с помощью shmuel), т.к. в Фар пока еще просто нет соответствующего API / hook. Но задание максимальной ширины в процентах уже значительно облегчит мне жизнь.
По поводу build 3193: а почему бы не ввести символы, позволяющие вычленять отдельные куски из текущего каталога. Например, $W{n}. При этом: если n положительно, то берется n-й кусок с начала, а если отрицательно, то с конца. Введенный в 3193 символ эквивалентен $W{-1} в терминах этого предложения.
fml2 wrote:По поводу build 3193: а почему бы не ввести символы, позволяющие вычленять отдельные куски из текущего каталога. Например, $W{n}. При этом: если n положительно, то берется n-й кусок с начала, а если отрицательно, то с конца. Введенный в 3193 символ эквивалентен $W{-1} в терминах этого предложения.
Это для того, чтобы совсем всех запутать?
Например, мы здесь: C:\Windows\System32\drivers\etc, при этом промптер нам кажет "System32>" для "$w{2}$g".
We are the Borg. You will be assimilated.
So Say We All!