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

Здесь можно обсудить ваш любимый плагин.
Post Reply
User avatar
zg
zero-gravity
Posts: 5231
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Tue 23 Dec, 2008 04:42

часть того, что было dialogmanager'ом портировано под новое апи и уникод. называется DialogTools. лежит у t-rex'а в svn. включает в себя:

Code: Select all

Change Case
Open File Dialog
Paste Selection
Show Password
Search
Replace
Undo
остальное как-нибудь тоже планируется.

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

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

Post by HaRT » Wed 16 Sep, 2009 10:16

В этой теме теперь обсуждается плагин DialogTools.
Но начиналось всё с темы в разделе «Плагины: Предложения и идеи».


Вступление: есть у меня идейка, но совершенно нет энтузиазма её воплощать. Для частного случая она была независимо придумана и реализована Cavalerом в недавней версии его плагина RESearch, но общий случай он тоже делать не рвётся.

Мотивация: зачастую поля ввода в Фаровских диалогах куда меньше, чем текст, который надо в них ввести. Про удобство редактирования, всякие там переходы-раскраски-навороты я уж и не говорю. Хочется иметь в полях ввода стандартных диалогов (почти) всю мощь редактора.

Идея: написать плагин, который бы, будучи вызван из поля ввода через меню плагинов, брал текущее содержимое, позицию курсора, выделение, режим вставки/замены (и проч.) и открывал (модальный) редактор со всем этим. При закрытии редактора все те же самые данные плагин переносил бы обратно в поле ввода.

Обсуждение: разумеется, встают некоторые закономерные вопросы, как-то: что делать с разделителями строк, какого размера должен быть редактор и т.п. Но какие-то из них для начального этапа неважны, а другие могут быть урегулированы опциями.

Заключение: если кому-то это интересно, я готов обсуждать детали логики.

2015-07-09
HaRT wrote: Если кому интересно, вот работающие макросы для Undo/Redo/Edit/Show password в поле ввода текста:
Code: [Select all] [Expand/Collapse] [Download] (Dialog_Undo,Redo,Edit,Show.lua)
  1. -- See http:// forum.farmanager.com/viewtopic.php?p=130985#p130985
  2.  
  3. local DLGITEMTYPE_EDIT, DLGITEMTYPE_PSWEDIT, DLGITEMTYPE_FIXEDIT = 4, 5, 6
  4.  
  5.  
  6.  
  7. local DialogTools_MainGuid = "B2EC2264-0F55-4B86-87F7-F1392B8FC5DC"
  8.  
  9. local DialogTools_UndoGuid = "1117C0E3-76BA-443D-90E3-89D20C45F364"
  10.  
  11. local DialogTools_EditGuid = "D0C5118D-E750-4E00-A4D4-0E0E0063571F"
  12.  
  13. local DialogTools_PwShGuid = "C8D4D4A4-943B-436F-8414-D36CBAF37C53"
  14.  
  15.  
  16.  
  17. local function inEditField()
  18.  
  19.   return Dlg.ItemType == DLGITEMTYPE_EDIT or Dlg.ItemType == DLGITEMTYPE_FIXEDIT
  20.  
  21. end
  22.  
  23.  
  24.  
  25. local function callUndoRedo( stepKey )
  26.  
  27.   Plugin.Menu( DialogTools_MainGuid, DialogTools_UndoGuid )
  28.  
  29.   Keys( stepKey .. ' ' .. 'Enter' )
  30.  
  31. end
  32.  
  33.  
  34.  
  35. Macro {
  36.  
  37.   description = "DialogTools: Undo";
  38.  
  39.   area = "Dialog"; key = "CtrlZ AltBS";
  40.  
  41.   condition = inEditField;
  42.  
  43.   action = function() callUndoRedo( '' ) end
  44.  
  45. }
  46.  
  47.  
  48.  
  49. Macro {
  50.  
  51.   description = "DialogTools: Redo";
  52.  
  53.   area = "Dialog"; key = "CtrlShiftZ AltShiftBS";
  54.  
  55.   condition = inEditField;
  56.  
  57.   action = function() callUndoRedo( 'Up' ) end
  58.  
  59. }
  60.  
  61.  
  62.  
  63. Macro {
  64.  
  65.   description = "DialogTools: Edit";
  66.  
  67.   area = "Dialog"; key = "F4";
  68.  
  69.   condition = inEditField;
  70.  
  71.   action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_EditGuid ) end
  72.  
  73. }
  74.  
  75.  
  76.  
  77. Macro {
  78.  
  79.   description = "DialogTools: Show password";
  80.  
  81.   area = "Dialog"; key = "F3";
  82.  
  83.   condition = function() return Dlg.ItemType == DLGITEMTYPE_PSWEDIT end;
  84.  
  85.   action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_PwShGuid ) end
  86.  
  87. }
Last edited by HaRT on Thu 09 Jul, 2015 16:40, edited 4 times in total.
Reason: Добавлены макросы для Фар 3

Yegor
Posts: 844
Joined: Mon 04 Apr, 2005 13:41
Location: Kharkov, Ukraine
Has thanked: 2 times
Been thanked: 7 times

Re: Развёрнутое редактирование полей ввода

Post by Yegor » Wed 16 Sep, 2009 10:34

Я думаю, есть смысл расширить ф-ть плагина DialogTools и попробовать добавить тюда такую ф-ю.
Не знаю, правда, насколько это нужно, хотя было бы полезно в редактировании макросов в плагине FAR Macro
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

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

Re: Развёрнутое редактирование полей ввода

Post by HaRT » Wed 16 Sep, 2009 10:42

Yegor wrote:Я думаю, есть смысл расширить ф-ть плагина DialogTools и попробовать добавить тюда такую ф-ю.
Коренной недостаток такого подхода в том, что DialogTools только для Far 2.

23:23 MSK
Оказывается, в Фаре 1.75 с DialogTools тоже всё в порядке.
Last edited by HaRT on Wed 16 Sep, 2009 20:23, edited 1 time in total.
Reason: Добавлен абзац про Фар 1.75
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

Re: Развёрнутое редактирование полей ввода

Post by Skirda » Wed 16 Sep, 2009 10:48

Ну, я бы сказал, что это баян, но т.к. это (спецификация) вроде бы ни где не публиковалось (упоминания можно найти в форуме), то...
В общем есть такой проект DI_MEMOEDIT (для чего в свое время выкидывали все, относящиеся к слову "файл" из класса Editor в FileEdit)
Вот только руки никак не доходят...

Здесь как раз тот случай, когда плагином не гоже...

PS.
Если нужно, могу выкатить текущее недоописание проекта.
We are the Borg. You will be assimilated.
So Say We All!

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

Re: Развёрнутое редактирование полей ввода

Post by Skirda » Wed 16 Sep, 2009 10:53

Хе... оказывается описание есть :-)
We are the Borg. You will be assimilated.
So Say We All!

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

Re: Развёрнутое редактирование полей ввода

Post by HaRT » Wed 16 Sep, 2009 10:59

Skirda wrote:есть такой проект DI_MEMOEDIT (для чего в свое время выкидывали все, относящиеся к слову "файл" из класса Editor в FileEdit)
Вот только руки никак не доходят...
Вот-вот. А в виде плагина пусть и не так красиво, зато гораздо проще и потенциально быстрее.
Плюс оно возможно и в Фар 1.7.
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

Re: Развёрнутое редактирование полей ввода

Post by Skirda » Wed 16 Sep, 2009 11:15

HaRT, да ради Бога, главное чтобы кто-то поддерживал такой плагин :-)
We are the Borg. You will be assimilated.
So Say We All!

User avatar
Александр Кряжев
Posts: 882
Joined: Sun 03 Dec, 2006 10:09
Location: Витебск
Has thanked: 1 time
Contact:

Re: Развёрнутое редактирование полей ввода

Post by Александр Кряжев » Wed 16 Sep, 2009 11:15

HaRT, не кажется ли Вам, что пора уже "забивать" на поддержку тупиковых ветвей развития? ;)

Фар - маргинальный продукт. (c) zg

User avatar
t-rex
Страшный и ужасный
Posts: 4871
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Contact:

Re: Развёрнутое редактирование полей ввода

Post by t-rex » Wed 16 Sep, 2009 11:29

Ну это плагин ровно на 10-20 строк кода, можешь и сам написать раз оно тебе так надо.

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

Re: Развёрнутое редактирование полей ввода

Post by HaRT » Wed 16 Sep, 2009 11:34

Skirda wrote:да ради Бога, главное чтобы кто-то поддерживал такой плагин :-)
Вот я и ищу такого человека. Пожалуй, постучусь ещё в PowerShellFar, т.к. надеюсь, что наскриптовать предлагаемый плагин опытному человеку будет несложно. Вдруг NightRomanу идея понравится…
Александр Кряжев wrote:не кажется ли Вам, что пора уже "забивать" на поддержку тупиковых ветвей развития? ;)
Русская пословица гласит: “Старый конь борозды не портит”; есть и английская фраза к случаю: “The latest isn't the greatest”. Зачем раньше времени хоронить хороший продукт, ведь Фар 2 по некоторым показателям ещё не дотягивает до Фар 1.7.
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

Re: Развёрнутое редактирование полей ввода

Post by HaRT » Wed 16 Sep, 2009 11:43

Skirda wrote:Здесь как раз тот случай, когда плагином не гоже...
Я вспомнил ещё один довод.
Я ничего не имею против DI_MEMOEDIT, но его внедрение ничем не улучшит уже написанные плагины, а предлагаемая мной функциональность всё-таки упростила бы работу с ними.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
t-rex
Страшный и ужасный
Posts: 4871
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Contact:

Re: Развёрнутое редактирование полей ввода

Post by t-rex » Wed 16 Sep, 2009 12:08

t-rex wrote:Ну это плагин ровно на 10-20 строк кода, можешь и сам написать раз оно тебе так надо.
Ты уже тут стока написал что мог бы уже и плагин написать.

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

Re: Развёрнутое редактирование полей ввода

Post by HaRT » Wed 16 Sep, 2009 12:11

t-rex wrote:Ну это плагин ровно на 10-20 строк кода, можешь и сам написать раз оно тебе так надо.
В минимальном варианте, возможно, и так, но в полнофункциональном куда больше.
t-rex wrote:Ты уже тут стока написал что мог бы уже и плагин написать.
Ты мне льстишь.
Приятно, конечно, но, к сожалению, я не так быстро въезжаю в новое, а также применяю имеющийся багаж на практике.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
t-rex
Страшный и ужасный
Posts: 4871
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Contact:

Re: Развёрнутое редактирование полей ввода

Post by t-rex » Wed 16 Sep, 2009 12:30

Имено полнофункциональный 20 строк.

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

Re: Развёрнутое редактирование полей ввода

Post by zg » Wed 16 Sep, 2009 15:45

HaRT wrote:Коренной недостаток такого подхода в том, что DialogTools только для Far 2.
кто зохавал ваш мозг?

Post Reply

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

Who is online

Users browsing this forum: No registered users and 1 guest