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

Здесь можно обсудить ваш любимый плагин.
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 »

Latest post of the previous page:

zg wrote:на мантис.
сделано: 1880 и 1881.
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
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Помнится эта проблема обсуждалась, и выяснилось что такова уж особенность/ограничение 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 »

похоже, вы правы, и проблема не в плагинах, а в самом 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: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

Вызов CallPlugin (и у макрофункций так же будет, если я правильно понял) - синхронный, т.е. пока плагин не вернул управление следующие команды не отрабатываются. Наверное, иначе и быть не может. Хуже то, что во время этого синхронного вызова макродвижек вообще заблокирован (http://bugs.farmanager.com/view.php?id=1280). Можно ли обойти эту проблему, без серьезного переписывания макродвижка - не знаю, пока что не получилось.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

Штатная работа функции callplugin.
Многого отнее не ждите, т.к. функция временная и предназначена исключительно для вызова плагина и передачи каки-либо данных, не более.
Во время работы функции текущая последовательность замораживается (до тех пор, пока функция не отработает - т.е. плагин не выйдет из OpenW).
Вариант решения - как в .
We are the Borg. You will be assimilated.
So Say We All!
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Skirda wrote:Многого отнее не ждите, т.к. функция временная [...]
Уже прижилась.
И что значит "временная", неужели после реализации ProcessMacroFuncW её планируется убрать?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

скорее всего превратится во что-то более ассинхронное.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

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 »

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: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

Писатель! 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 »

а, ну так бы сразу и сказал =)
по поводу 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: 1637
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

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

Post by SUSim »

Идеал, может быть, и не достижим, но к нему стоит стремиться...
По существу: пока работает макрос-плагин пользователь отдыхает... асинхронность в этом вопросе неприемлема, кроме прерывания работы конечно, Хотелось бы в это время вызвать другой плагин который ни как не зависит от работы фара типа: калькулятора, проигрывателя и ... но таких немого, и ради них городить глобальную асинхронность и огребать кучу глюков-коллизий ну нафик!!!
SimSU ··· ·· -- ··· ··-
User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39
Been thanked: 2 times

EditCase Hotkeys

Post by LanKing »

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

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

CtrlAlt+L: все строчные
CtrlAlt+T: Начинать С Прописных
CtrlAlt+U: ВСЕ ПРОПИСНЫЕ
CtrlAlt+G: иЗМЕНИТЬ рЕГИСТР
CtrlAlt+C: Циклическое изменение
Attachments
Edit.Case.zip
(836 Bytes) Downloaded 89 times
User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39
Been thanked: 2 times

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

Post by LanKing »

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

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: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

LanKing, у раздела, в котором вы пытались разместить две своих последние темы, есть правила.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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

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

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 “Обсуждение плагинов”