DialogTools — дополнительные возможности в диалогах

Здесь можно обсудить ваш любимый плагин.
Smitis
Posts: 1621
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 40 times

DialogTools — дополнительные возможности в диалогах

Post by Smitis »

Latest post of the previous page:

На \\.\nul редактор при выходе ругается, что файл удалён, сделал пока через обычный временный файл
Разум когда-нибудь победит.

User avatar
HaRT
Moderator
Posts: 9419
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 219 times

DialogTools — дополнительные возможности в диалогах

Post by HaRT »

HaRT wrote: работающие макросы для Undo/Redo/Edit/Show password в поле ввода текста
Добавлены макросы для вызова Поиска ([b]F7[/b]) и Замены ([b]CtrlF7[/b]). Вот полный новый комплект:
  1. -- See http:// forum.farmanager.com/viewtopic.php?p=136132#p136132
  2. local DLGITEMTYPE_EDIT, DLGITEMTYPE_PSWEDIT, DLGITEMTYPE_FIXEDIT = 4, 5, 6
  3.  
  4. local DialogTools_MainGuid = "B2EC2264-0F55-4B86-87F7-F1392B8FC5DC"
  5. local DialogTools_SrchGuid = "40E53FB1-6291-45a1-9DDF-B4A2048CA6BA"
  6. local DialogTools_RplcGuid = "F4C58B97-BA69-4814-9FC9-DAB9307C0E88"
  7. local DialogTools_UndoGuid = "1117C0E3-76BA-443D-90E3-89D20C45F364"
  8. local DialogTools_EditGuid = "D0C5118D-E750-4E00-A4D4-0E0E0063571F"
  9. local DialogTools_PwShGuid = "C8D4D4A4-943B-436F-8414-D36CBAF37C53"
  10.  
  11. local function inEditField()
  12.   return Dlg.ItemType == DLGITEMTYPE_EDIT or Dlg.ItemType == DLGITEMTYPE_FIXEDIT
  13. end
  14.  
  15. local function callUndoRedo( stepKey )
  16.   Plugin.Menu( DialogTools_MainGuid, DialogTools_UndoGuid )
  17.   Keys( stepKey .. ' ' .. 'Enter' )
  18. end
  19.  
  20. Macro {
  21.   description = "DialogTools: Search";
  22.   area = "Dialog"; key = "F7";
  23.   condition = inEditField;
  24.   action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_SrchGuid ) end
  25. }
  26.  
  27. Macro {
  28.   description = "DialogTools: Replace";
  29.   area = "Dialog"; key = "CtrlF7";
  30.   condition = inEditField;
  31.   action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_RplcGuid ) end
  32. }
  33.  
  34. Macro {
  35.   description = "DialogTools: Undo";
  36.   area = "Dialog"; key = "CtrlZ AltBS";
  37.   condition = inEditField;
  38.   action = function() callUndoRedo( '' ) end
  39. }
  40.  
  41. Macro {
  42.   description = "DialogTools: Redo";
  43.   area = "Dialog"; key = "CtrlShiftZ AltShiftBS";
  44.   condition = inEditField;
  45.   action = function() callUndoRedo( 'Up' ) end
  46. }
  47.  
  48. Macro {
  49.   description = "DialogTools: Edit";
  50.   area = "Dialog"; key = "F4";
  51.   condition = inEditField;
  52.   action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_EditGuid ) end
  53. }
  54.  
  55. Macro {
  56.   description = "DialogTools: Show password";
  57.   area = "Dialog"; key = "F3";
  58.   condition = function() return Dlg.ItemType == DLGITEMTYPE_PSWEDIT end;
  59.   action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_PwShGuid ) end
  60. }
Не добавить ли эти скриптики в комплект поставки плагина, чтобы людям их не выискивать?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

DialogTools — дополнительные возможности в диалогах

Post by zg »

в репозитарий закоммитил.

User avatar
HaRT
Moderator
Posts: 9419
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 219 times

DialogTools — дополнительные возможности в диалогах

Post by HaRT »

Обнаружилось, что Paste Selection ошибается, если выделение содержит ‘"’ или ‘\’: (), вставляет не то (в умеренном случае), делает чёрт-те что (в плохом) — из-за того, что , безо всякого экранирования. “Code injection? Нет, не слышал.”
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9419
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 219 times

DialogTools — дополнительные возможности в диалогах

Post by HaRT »

HaRT wrote: выделенный текст подставляется в макрос как есть, безо всякого экранирования
Патч:
  1. diff --git a/DialogTools/src/pasteselection.cpp b/DialogTools/src/pasteselection.cpp
  2. index 61a6e5e..68ceacd 100644
  3. --- a/DialogTools/src/pasteselection.cpp
  4. +++ b/DialogTools/src/pasteselection.cpp
  5. @@ -18,7 +18,7 @@
  6.  */
  7.  
  8.  #include "dt.hpp"
  9. -#include "guid.hpp"
  10. +
  11.  #include <stdio.h>
  12.  
  13.  inline TCHAR hex(TCHAR c)
  14. @@ -27,7 +27,7 @@ inline TCHAR hex(TCHAR c)
  15.    return ('A'+c-10);
  16.  }
  17.  
  18. -#define MACRO_LEN 1
  19. +#define MACRO_LEN 2  // in the worst case we need to escape each text character
  20.  
  21.  void DoPaste(HANDLE aDlg)
  22.  {
  23. @@ -58,9 +58,15 @@ void DoPaste(HANDLE aDlg)
  24.                TCHAR *buffer=(TCHAR *)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(len*MACRO_LEN+8+1)*sizeof(TCHAR));
  25.                if (buffer)
  26.                {
  27. -                _tcscpy(buffer,_T("print(\""));
  28. -                _tcscpy(buffer+7,text);
  29. -                _tcscpy(buffer+len*MACRO_LEN+7,_T("\")"));
  30. +                _tcscpy(buffer,_T("print(\""));  // length is 7
  31. +                TCHAR * src = text, * dst = buffer + 7;
  32. +                while(*src)
  33. +                {
  34. +                   if( *src == _T('\\') || *src == _T('"') )
  35. +                      *dst++ = _T('\\');
  36. +                   *dst++ = *src++;
  37. +                }
  38. +                _tcscpy(dst,_T("\")"));
  39.                  MacroSendMacroText seq={sizeof(MacroSendMacroText),KMFLAGS_NONE,{0},buffer};
  40.                  Info.MacroControl(0,MCTL_SENDSTRING,MSSC_POST,&seq);
  41.                  HeapFree(GetProcessHeap(),0,buffer);
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9419
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 219 times

DialogTools — дополнительные возможности в диалогах

Post by HaRT »

zg wrote: закоммитил
Прошу туда ещё и патч применить…
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9419
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 219 times

DialogTools — дополнительные возможности в диалогах

Post by HaRT »

t-rex, как я ещё могу посодействовать исправлению ошибки?
HaRT wrote:
zg wrote: закоммитил
Прошу туда ещё и патч применить…
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

DialogTools — дополнительные возможности в диалогах

Post by zg »

я применю патч, не надо нервничать.

User avatar
Taciturn
Posts: 417
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 31 times
Been thanked: 11 times
Contact:

DialogTools — дополнительные возможности в диалогах

Post by Taciturn »

Долгое время использовал Far 2 и DialogTools.111123.7z. При использовании команд «Поиск» и «Поиск и замена подстроки» в соответствующих диалогах работала история. Перешёл на Far 3.0.4900 и DialogTools 1.0.3.0 — истории в этих диалогах больше нет. Так и задумано? Если нет, то добавьте, пожалуйста, историю.

User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

DialogTools — дополнительные возможности в диалогах

Post by zg »

1.0.4.

User avatar
Taciturn
Posts: 417
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 31 times
Been thanked: 11 times
Contact:

DialogTools — дополнительные возможности в диалогах

Post by Taciturn »

Спасибо большое!

Hedin
Posts: 210
Joined: Thu 17 Mar, 2005 10:29
Has thanked: 4 times

DialogTools — дополнительные возможности в диалогах

Post by Hedin »

В FAR3 5263-64 (возможно раньше) перестал работать вызов диалога выбора файла. Версия плагина 1.0.4.
При выборе этого пункта из меню FAR зависает, его кнопка в таскбаре Win7 становится красной, а через некоторое время появляется сообщение Windows: "Прекращена работа программы "File and archive manager"..." с кнопкой "Закрыть программу".
Больше никаких сообщений не показывается.

User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

DialogTools — дополнительные возможности в диалогах

Post by zg »

1.0.5.

User avatar
HaRT
Moderator
Posts: 9419
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 219 times

DialogTools — дополнительные возможности в диалогах

Post by HaRT »

zg wrote:
Wed 05 Sep, 2018 10:37
1.0.5
Планируете загрузить бинари на плагринг?
Фар есть инструмент, а не нянька. © 2009 DrKnS

skipik
Posts: 202
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 30 times
Been thanked: 21 times

DialogTools — дополнительные возможности в диалогах

Post by skipik »

Собрал обе разрядности, вдруг кому потребуется: https://www.upload.ee/files/8910593/bin_1.7z.html
В качестве бонуса положил ecompl, который тоже недавно обновлялся.

skv
Posts: 1
Joined: Fri 06 Sep, 2019 00:03
Has thanked: 1 time

DialogTools — дополнительные возможности в диалогах

Post by skv »

Где взять собранную последнюю версию DialogTools?

Post Reply

Return to “Обсуждение плагинов”