Замена оверлейных иконок символами в отдельном колумне

Хотите предложить идею нового плагина или знаете, что улучшить в существующем? Пишите сюда.
liquidblasted
Posts: 6
Joined: Wed 21 Jul, 2010 17:35

Замена оверлейных иконок символами в отдельном колумне

Post by liquidblasted »

Что бывает часто не хватает при использовании текстового Far - это отсутствие оверлейных иконок, обозначающих статус файла в системах контроля версий. Бывает очень удобно окинуть список файлов в папке взглядом и сразу видеть, какие файлы закоммичены, какие модифицированы, какие конфликтуют. и т.п.
Или например видеть статус синхронизации файлов в папке Dropbox.

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

Например, статус файла в SVN/CVS "закоммичен", в проводнике он имеет иконку "зеленой галки", Far это определяет и в соответствующей колонке напротив имени файла - символ 'u'. А если еще и зеленого цвета (а конфликтующий - красная 'c', например - чтобы сразу бросалось в глаза) - вообще класс.
И так далее.

Сорри может я наивен т.к. сам не разработчик, и не имею представления о работе оверлейных иконок и можно ли их легко "определять", но очень хотелось бы подобный плагин, и я думаю не мне одному :)
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Centaur »

Вот честно, никогда не понимал, в чём прикол видеть статус файлов.

Если я работаю с проектом, мне недостаточно видеть статус файлов в текущем каталоге — мне нужно видеть состояние всего проекта. Мне не интересно видеть галочку на неизменённых файлах — наоборот, надо видеть изменённые и новые (не находящиеся под source control) файлы. Наконец, мне нужно видеть весь дифф, который будет закоммичен, если я сейчас скажу «svn commit».

Когда я работал с svn (и ещё не открыл для себя git-svn), у меня был пункт в юзерменю, вызывающий edit:<svn diff, и настройка в Colorer’е, чтоб красило. А потом я стал пользоваться gitk и git gui, чего и всем желаю.

[/offtopic]

А что касается оверлейных иконок, то это тогда надо работать с COM-интерфейсами Explorer’а и shell extension’ов, со всеми вытекающими. Впрочем, я не видел полезных применений оверлеев.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Maximus5 »

а я вот не понимаю, почему не хватает svn_c0?
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Wave »

svn_c0 работает с tortoisesvn 1.7.x? (просто любопытствую, т.к. смутно помню соотв. жалобы, а самому мне на эти иконки всегда было пох. Ну и кроме свн'а оверлейные иконки цепляет меркурий, гит, наверняка ещё софт…)
Пользуюсь ФАРом больше 20 лет © собирательный.
liquidblasted
Posts: 6
Joined: Wed 21 Jul, 2010 17:35

Re: Замена оверлейных иконок символами в отдельном колумне

Post by liquidblasted »

Centaur,

У всех разные методы работы. Я вот например работаю в достаточно крупных и сложных проектах, и при этом только с небольшой частью в них. И не все изменяемые файлы я собираюсь коммитить в репозиторий - что-то я меняю локально для теста. И каждый раз довольно медленно обрабатывать командами ВЕСЬ проект только ради того, чтоб узнать, что же я закоммичу нужного, что нет, запоминать это и закоммитить только нужное - не тот метод.
Кроме того, в силу специфики моей работы оверлей помогает мне при сортировке и визуальном сравнении.
И системы контроля версий это только частный пример, оверлей используется не только в них.

Maximus5,

svn_c0 прежде всего лишь только для SVN (если я не ошибаюсь), а помимо того не обновлялся очень давно и не работает с новыми версиями, т.е. не вариант вообще
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Замена оверлейных иконок символами в отдельном колумне

Post by HaRT »

liquidblasted
А почему вы так хотите привязаться именно к оверлейным иконкам? В чём выигрыш перед другими способами анализа? Ведь всё равно для каждого приложения, добавляющего оверлейные иконки, (например, TortoiseSVN) они будут свои, и знание об этом надо будет закладывать в преобразователь или в его конфигурацию.
Не проще ли написать плагин, который будет брать реальные файлы в директории, анализировать их статус в выбранной системе (например, SVN) и отображать его на файловые атрибуты, а те уже легко перенести на плагиновую файловую панель через механизм Highlighting (например, как предложено в Атрибуции). При желании можно сделать хост-плагин, который будет распознавать, грубо говоря, тип рабочей копии (CVS, SVN 1.6-, SVN 1.7+, git, …) и спрашивать статусы у своего под-плагина (модуля) для этого типа.
Фар есть инструмент, а не нянька. © 2009 DrKnS
liquidblasted
Posts: 6
Joined: Wed 21 Jul, 2010 17:35

Re: Замена оверлейных иконок символами в отдельном колумне

Post by liquidblasted »

HaRT wrote:liquidblasted
А почему вы так хотите привязаться именно к оверлейным иконкам? В чём выигрыш перед другими способами анализа?
Нет-нет, без разницы, существует ли привязка к оверлейным иконкам, либо способ, описанный вами - главное - это как-то видеть статус файла. Символами в колонке, или подсветкой. Просто я не программист и не знаю, какой способ лучше/проще/реальней :) И как раз думал, что статус уже отображается на файловые атрибуты, откуда проводник их подхватывает и сует необходимую иконку, но судя по всему ошибался.
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Centaur »

liquidblasted wrote:Я вот например работаю в достаточно крупных и сложных проектах, и при этом только с небольшой частью в них. И не все изменяемые файлы я собираюсь коммитить в репозиторий - что-то я меняю локально для теста. И каждый раз довольно медленно обрабатывать командами ВЕСЬ проект только ради того, чтоб узнать, что же я закоммичу нужного, что нет, запоминать это и закоммитить только нужное - не тот метод.
Ну разумеется, это не тот метод. Тот метод — это открыть git gui и он покажет, какие файлы добавились/удалились/изменились, и дифф каждого изменённого файла. И затем на каждом файле можно кликнуть либо stage «взять в коммит», либо revert «вернуть как было», либо вообще не кликать («оставить для следующих коммитов»); потом написать commit message и, ткнув кнопочку, закоммитить все за’stage’нные изменения.
liquidblasted
Posts: 6
Joined: Wed 21 Jul, 2010 17:35

Re: Замена оверлейных иконок символами в отдельном колумне

Post by liquidblasted »

Centaur wrote:
liquidblasted wrote:Я вот например работаю в достаточно крупных и сложных проектах, и при этом только с небольшой частью в них. И не все изменяемые файлы я собираюсь коммитить в репозиторий - что-то я меняю локально для теста. И каждый раз довольно медленно обрабатывать командами ВЕСЬ проект только ради того, чтоб узнать, что же я закоммичу нужного, что нет, запоминать это и закоммитить только нужное - не тот метод.
Ну разумеется, это не тот метод. Тот метод — это открыть git gui и он покажет, какие файлы добавились/удалились/изменились, и дифф каждого изменённого файла. И затем на каждом файле можно кликнуть либо stage «взять в коммит», либо revert «вернуть как было», либо вообще не кликать («оставить для следующих коммитов»); потом написать commit message и, ткнув кнопочку, закоммитить все за’stage’нные изменения.
Проблема опять же в том, что это работает только в git gui, у нас же используется доработанный своими силами cvsnt, я не в курсе всех технических подробностей, но вроде из-за того, что идет работа с большими данными часто меняющихся бинарников и все эти свн, гиты, меркуриалы в этом плане весьма тормозны и накладны и нам не подходят.

И, повторюсь, не в этом дело, я не имел в виду только цвс, только свн, только гит, а все вместе + еще есть куча софта наподобие dropbox, skyDrive и много чего еще
User avatar
CyberShadow
Posts: 194
Joined: Sun 15 Apr, 2007 17:12
Been thanked: 1 time
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by CyberShadow »

Я тут поигрался, вот что вышло. ИМО неплохо :)

Идея: хешируем оверлеи и позволяем пользователям наделять хешам имена (пока в ини-файле).

Порадовало, что т.к. Tortoise(Svn|Hg|Git) используют те же иконки, настроить пришлось только одну из них.

Еще не знаю, если я хочу это доделывать и поддерживать, может кто-то с большим опытом захочет взять под крыло. Приметил у Максимуса целую коллекцию c0-плагинов ;)
HaRT wrote:Не проще ли
60 строк кода говорят "нет". :quiet:
Attachments
iconoverlay_c0.7z
Far2/3 x86/64
(13.38 KiB) Downloaded 212 times
liquidblasted
Posts: 6
Joined: Wed 21 Jul, 2010 17:35

Re: Замена оверлейных иконок символами в отдельном колумне

Post by liquidblasted »

CyberShadow
Супер, спасибо! Это уже что-то! :)
Есть ли какой-то способ обычному пользователю определять хеш оверлеев, чтобы самому дописать в инишник, для тех же cvs или dropbox?
User avatar
CyberShadow
Posts: 194
Joined: Sun 15 Apr, 2007 17:12
Been thanked: 1 time
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by CyberShadow »

Если нет описания - отображается хеш. Хеш копируйте в ини и добавляйте описание :)
liquidblasted
Posts: 6
Joined: Wed 21 Jul, 2010 17:35

Re: Замена оверлейных иконок символами в отдельном колумне

Post by liquidblasted »

Вообще отлично :)

Выяснил пока что для DropBox, доберусь до работы - выясню и для CVS :)

; Dropbox
777AAEE5=Normal
2EBC8E8F=Syncing
72C386F2=Error
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Tim Sobolev »

Работает, но тупит чтение каталога страшно :roll:
Причём даже те, где никак не могут быть оверлейные иконки (FAR 3.0 build 2534 x86).
User avatar
CyberShadow
Posts: 194
Joined: Sun 15 Apr, 2007 17:12
Been thanked: 1 time
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by CyberShadow »

Да, для каждого файла нужно запросить иконку. MSDN рекомендует это делать асинхронно, но я так понимаю что FAR API это делать не позволяет.

Впрочем, если просто спрашивать у разных VCS статус как было предложено выше, думаю выйдет не лучше, так как у Tortoise* есть доработанные механизмы кеширования (этим занимаются процессы TSVNCache/TGitCache/TortoiseHgOverlayServer).
Post Reply

Return to “Предложения и идеи”