MaxRusov / far-plugins

Automatically exported from code.google.com/p/far-plugins
49 stars 12 forks source link

[FIXED] GitShell v1.2 х86 и x64 - не работает передача параметров при вызове по префиксу, из макроса может и не запустится. #52

Closed VictorVG closed 6 years ago

VictorVG commented 6 years ago

OS Win7 SP1 x64, тестировал на b5151 х86 и х64. Общая идея - добавить пункт истории гит в меню пользователя. Текущий черновик меню сейчас выглядит так:

G:   Git
{
F:   Add file to commit
     git add !.! -u
L:   Add list to commit
     git add !& -u
N:   New file to index
     git add !.!
S:   New list to index
     git add !&
--:  
C:   Create commit
     git commit -m "!?$Comment$Comment?!"
U:   Git undo to commit
     git reset --hard !?$Commit$Commit?!
Z:   Undo last commit
     git commit --amend
--:  
D:   Delete tag
     git tag -d !?$Name$Tag name?!
     git push !?$remout$Remote branch?origin! !?$local$Local branch?master! --tag
T:   Create tag
     git tag -a "!?$Name$Tag name?!" -m "!?$Comment$Comment?!"
V:   View local tag list
     edit: < git tag -l
--:  
A:   Git check status
     Git status
B:   Switch to branch
     git checkout !?$brnch$Switch to branch?master!
G:   View history log
     edit: < git log !&
H:   Repair HEAD detached
     git checkout HEAD@{1}
M:   Release wisard
     git add !& -u
     git commit -m "!?$Comment$Comment?!"
     git tag -a "!?$Name$Name?!" -m "!?$Comment$Comment?!"
     git push !?$remout$Remote branch?origin! !?$local$Local branch?master!
     git push !?$remout$Remote branch?origin! !?$local$Local branch?master! --tag
P:   Upload commit
     git push !?$remout$Remote branch?origin! !?$local$Local branch?master!
R:   Upload release
     git push !?$remout$Remote branch?origin! !?$local$Local branch?master! --tag
}

работа идёт на пунктом

G:   View history log
       edit: < git log !&

задача данного пункта выглядит просто - вызываем плагин с параметром log {selected files list} который в общем случае пустой и тогда видим всю историю текущего репозитория, иначе историю выбранных файлов.

Поведение 32-х и 64-х битных вариантов плагина частично различается:

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

x86_gitlog

для окна коммита:

x86_gitlog

остальные команды префикса сработают так же только при отсутсвии файлов-аргументов.

А вот у х64 варианта поведение совершенно иное:

git:log <file> - выводится главное меню плагина; 
git:log - выводится главное меню плагина; 
lua:eval("Plugin.Command('BE0B1498-4234-4BE1-B257-7653CAF4F091','log APanel.Current')",0); - выводится главное меню плагина;

lua:eval("Plugin.Command('BE0B1498-4234-4BE1-B257-7653CAF4F091','log')",0); - плагин вообще не вызывается;
lua:eval("Plugin.Menu('BE0B1498-4234-4BE1-B257-7653CAF4F091','51ECCEBF-D6F4-4B9F-9DAC-CDF69F74175F')",0); - плагин вообще не вызывается;
lua:eval("Plugin.Call('BE0B1498-4234-4BE1-B257-7653CAF4F091','log')",0); - плагин вообще не вызывается;

P.S.

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

MaxRusov commented 6 years ago

Может имелось ввиду

lua:eval("Plugin.Command('BE0B1498-4234-4BE1-B257-7653CAF4F091','log ' .. APanel.Current)")

VictorVG commented 6 years ago

@MaxRusov

О! А вот про это - lua:eval("Plugin.Command('BE0B1498-4234-4BE1-B257-7653CAF4F091','log ' .. APanel.Current)") я просто забыл.:( в таком варианте передача файла-аргумента на b5151 работает.

VictorVG commented 6 years ago

Осталась только бяка по префиксу. У себя плагин прикрутил в подменю Git только по кеа не решил надо ли дописать в макрос чистку %TEMP%\GitShell? Вроде и не долго, но пока решения нет - боярская дума задумалась.:) А так после выхода из плагина этот каталог по идее вроде и не неужен, но и иной раз им можно воспользоваться поскольку там же копия вывода в консоль плагина и может пригодится. Но, по идее можно добавить в плагин отключаемое логирование и тогда он и сам может эти хвосты за собой зачищать.

VictorVG commented 6 years ago

Префикс проверил в b5163 - порядок. Спасибо! Инц закрываю чтобы глаза не мозолил.:) А заодно придумаю как нам и в макросе новые возможности использовать и в меню (ну,тут правки на уровне текста). Просто не хочу делать макрос громоздким, а простое и лёгкое на вид как обычно больше труда отбирает.