EditCase — Преобразование регистра выделенного текста

Здесь можно обсудить ваш любимый плагин.
User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

Re: EditCase — Преобразование регистра выделенного текста

Post by John Doe » Thu 15 Sep, 2011 10:49

Latest post of the previous page:

Помнится эта проблема обсуждалась, и выяснилось что такова уж особенность/ограничение callplugin.
Тут можно либо научить плагины выполнять сразу нужные действия (по заданному параметру callplugin), либо дождаться наконец реализации макрофункций предоставляемых плагинами (ProcessMacroFuncW).

Какова политика партии по этому вопросу я не знаю, самому интересно.
?

User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: EditCase — Преобразование регистра выделенного текста

Post by Kerberos464 » Thu 15 Sep, 2011 10:54

похоже, вы правы, и проблема не в плагинах, а в самом CallPlugin.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

Re: EditCase — Преобразование регистра выделенного текста

Post by Max Rusov » Thu 15 Sep, 2011 11:07

Вызов CallPlugin (и у макрофункций так же будет, если я правильно понял) - синхронный, т.е. пока плагин не вернул управление следующие команды не отрабатываются. Наверное, иначе и быть не может. Хуже то, что во время этого синхронного вызова макродвижек вообще заблокирован (http://bugs.farmanager.com/view.php?id=1280). Можно ли обойти эту проблему, без серьезного переписывания макродвижка - не знаю, пока что не получилось.

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

Re: EditCase — Преобразование регистра выделенного текста

Post by Skirda » Thu 15 Sep, 2011 11:09

Штатная работа функции callplugin.
Многого отнее не ждите, т.к. функция временная и предназначена исключительно для вызова плагина и передачи каки-либо данных, не более.
Во время работы функции текущая последовательность замораживается (до тех пор, пока функция не отработает - т.е. плагин не выйдет из OpenW).
Вариант решения - как в .
We are the Borg. You will be assimilated.
So Say We All!

User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

Re: EditCase — Преобразование регистра выделенного текста

Post by John Doe » Thu 15 Sep, 2011 11:14

Skirda wrote:Многого отнее не ждите, т.к. функция временная [...]
Уже прижилась.
И что значит "временная", неужели после реализации ProcessMacroFuncW её планируется убрать?

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

Re: EditCase — Преобразование регистра выделенного текста

Post by Skirda » Thu 15 Sep, 2011 11:49

скорее всего превратится во что-то более ассинхронное.
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: 4 times

Re: EditCase — Преобразование регистра выделенного текста

Post by Skirda » Thu 15 Sep, 2011 11:49

Kerberos464 wrote:
zg wrote:на мантис.
сделано: 1880 и 1881.
И что мы здесь хотим видеть?
We are the Borg. You will be assimilated.
So Say We All!

User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: EditCase — Преобразование регистра выделенного текста

Post by Kerberos464 » Thu 15 Sep, 2011 12:21

Skirda wrote: И что мы здесь хотим видеть?
это очевидно - продолжения работы макроса во время CallPlugin. но теперь понимаю, что это невозможно =(
вначале думал, что проблема в плагинах EditCase и Brackets, а не в реализации CallPlugin, поэтому и сделал такие тикеты.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

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

Re: EditCase — Преобразование регистра выделенного текста

Post by Skirda » Thu 15 Sep, 2011 13:56

Писатель! facepalm2

Hint[1]: сейчас editcase и brackets никак не обрабатывают ситуацию, когда их вызывают из макросов посредством callplugin.
Hint[2]: callplugin может передавать вызываемому плагину число либо строку.
Hint[3]: drawline ждет от callplugin строку, которую интерпретирует как макрос, который нужно запостить ФАРу.
Hint[4]: если callplugin вызывал плагин и передал строку-макропоследовательность и отдал ФАРу, то макродвиг "пушит" текущую машину, создает новую и запускает макрос (после отработки "попит" пред. машину)

Еще раз (с учетом того, что я рассказал выше и ранее) - "И что мы здесь хотим видеть?" (что конкретно мы хотим получить от этих плагинов, когда они вызываются из callplugin?)
We are the Borg. You will be assimilated.
So Say We All!

User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: EditCase — Преобразование регистра выделенного текста

Post by Kerberos464 » Thu 15 Sep, 2011 14:05

а, ну так бы сразу и сказал =)
по поводу editcase - пусть плагин принимает через callplugin одно из пяти значений (1 - uppercase, 2 - lowercase и т.д.).
по brackets - аналогично, одно из двух значений (допустим, 1 - search bracket, 2 - search and select).

дописать это в тикеты 1880 и 1881?
Skirda wrote:Писатель! facepalm2
и это.. я ж хотел, как лучше, однако отсутствие программистской мысли сказывается =)
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

User avatar
SUSim
Posts: 1536
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: EditCase — Преобразование регистра выделенного текста

Post by SUSim » Fri 16 Sep, 2011 19:29

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

User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39

EditCase Hotkeys

Post by LanKing » Mon 24 Nov, 2014 06:15

Есть такой замечательный плагин: EditCase. Идёт в комплекте поставки FARа, умеет менять регистр слов в частности в редакторе.

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

CtrlAlt+L: все строчные
CtrlAlt+T: Начинать С Прописных
CtrlAlt+U: ВСЕ ПРОПИСНЫЕ
CtrlAlt+G: иЗМЕНИТЬ рЕГИСТР
CtrlAlt+C: Циклическое изменение
Attachments
Edit.Case.zip
(836 Bytes) Downloaded 49 times

User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39

EditCase — Преобразование регистра выделенного текста

Post by LanKing » Mon 24 Nov, 2014 06:21

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

CtrlAlt+L: все строчные
CtrlAlt+T: Начинать С Прописных
CtrlAlt+U: ВСЕ ПРОПИСНЫЕ
CtrlAlt+G: иЗМЕНИТЬ рЕГИСТР
CtrlAlt+C: Циклическое изменение

http://forum.farmanager.com/viewtopic.php?f=60&t=9174

User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

EditCase — Преобразование регистра выделенного текста

Post by John Doe » Mon 24 Nov, 2014 08:20

LanKing, у раздела, в котором вы пытались разместить две своих последние темы, есть правила.

User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

EditCase — Преобразование регистра выделенного текста

Post by John Doe » Mon 24 Nov, 2014 08:24

По теме.
Действительно, есть смысл добавить в дистрибутив соответствующий макрос.

Вот так на мой взгляд аккуратнее:

Code: Select all

local shortcuts = {
  ["CtrlAltL"] = "Lower", 
  ["CtrlAltT"] = "Title", 
  ["CtrlAltU"] = "Upper", 
  ["CtrlAltG"] = "Toggle",
  ["CtrlAltC"] = "Cyclic",
}
for key,cmd in pairs(shortcuts) do
  Macro { description="Change case: "..cmd;
    area="Editor"; key=key;
    action = function()
      Plugin.Call("0E92FC81-4888-4297-A85D-31C79E0E0CEE", cmd);
    end
  }
end


Post Reply

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