Console Control

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

Re: Console Control

Post by John Doe » Sun 17 Mar, 2013 20:56

Latest post of the previous page:

Max Rusov wrote:Что то оно у меня не заработало
Ну я же не думал что вы его на самом деле попробуете запустить!
Я лично не пробовал :-)
(набросал на скорую руку)

В любом случае, предлагаю вам более интересную версию, на этот раз проверил )

Code: Select all

local cc = {}
cc.ID = "94624B7B-FFDB-435F-B955-F99DBBC3BFE0"
local interface=[[
  Width, Height = WindowSize ([Width], [Height]) -- размеры окна 
  Width, Height = BufferSize ([Width], [Height]) -- размеры буфера
  Size,  Name   = FontSize ([Size])              -- размер шрифта
  Size,  Name   = FontSizeDelta ([DeltaSize])    -- +/- размер шрифта
  Size,  Name   = FontName ([Name], [Size])      -- параметры шрифта
  {0|1}         = Maximize ([On])                -- максимизация/восстановление 
                                                    размеров окна (-1 - переключить)
  {0|1}         = Topmost ([On])                 -- Always On Top (-1 - переключить)
  {0-255}       = Transparency ([Value])         -- прозрачность
]]
--Width, Height = WindowSizeDelta (DX, DY)       -- +/- размеры окна
--Width, Height = BufferSizeDelta (DX, DY)       -- +/- размеры буфера

for c in interface:gmatch("(%w+)%s*%(.-\n") do
  cc[c] = function(...)  return Plugin.Call(cc.ID,c,...)  end
end

for c in ("Exist Call Command Config Menu"):gmatch("%w+") do
  cc[c] = function(...)  return Plugin[c](cc.ID,...)  end
end

cc.Installed = cc.Exist

cc.WindowSizeDelta = function(DX, DY)
  local X, Y = cc.WindowSize()
  return cc.WindowSize(X+DX, Y+DY)
end

cc.BufferSizeDelta = function(DX, DY)
  local X, Y = cc.BufferSize()
  return cc.BufferSize(X+DX, Y+DY)
end

ConsoleControl = cc
[attachment=0]ConsoleControl.lua.7z[/attachment]Этот вариант мне нравится тем, что модуль как бы "автогенерируется" из собственной "документации" (interface).

P.S.
Если эту тему немного развить, то возможно сделать и универсальную функцию, на манер Plugin.require
А LuaMacroComplit можно будет снабдить подсказкой!
Attachments
ConsoleControl.lua.7z
(1.93 KiB) Downloaded 106 times

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

Re: Console Control

Post by John Doe » Sun 17 Mar, 2013 23:28

Поигрался с плагином.
Поведение некоторых функций изменилось по сравнению с прошлой версией.

Неудобно что некоторые параметры в документации называются иначе чем в модуле (Width - X, Height - Y, ...)
Составил для себя "конспект" Readme.txt (см. выше).

Maximize и Topmost возвращают 1|0
Но в Lua 0 - это true, поэтому лучше бы использовать вместо него false/nil, удобнее в условиях

P.S.
В текст вложения выше закралась (некритичная) ошибка. Файл заменил.

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

Re: Console Control

Post by John Doe » Mon 18 Mar, 2013 10:18

Большинство макросов ConsoleControl-Macros.*lua работают как с левыми, так и с правыми модификаторами.
Кроме Change Windows Size: всё дело в local S = akey(1):sub(9);
Стоит изменить на local S = akey(1):match("R?AltShift(.+)");

P.S.
Заметил что в .fmlua используются регэкспы в именах ключей, а в .lua нет.
Вот как будет в .lua

Code: Select all

key="/[LR]AltShift(Up|Down|Left|Right)/";
key="/[LR]CtrlMsWheel(Up|Down)/";
key="/[LR]Ctrl[LR]AltMsWheel(Up|Down)/";

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

Re: Console Control

Post by John Doe » Tue 19 Mar, 2013 12:21

По поводу того же макроса: Macro { description="Console Control: Change Windows Size";
Он перехватывает клавиши, занятые в редакторе для пометки вертикального блока.

Надо либо отключать этот макрос в редакторе , либо ограничить его действие только левыми (или только правыми) модификаторами.

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

Re: Console Control

Post by Max Rusov » Tue 19 Mar, 2013 12:46

Вообще-то вертикальные блоки в редакторе и при одном Alt выделяются, так что раскорячиваться с AltShift не обязательно. Но, конечно, макрос можно переназначить как угодно - он идет только в качестве примера. Мне, вообще, мышкой удобнее размер менять.

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

Re: Console Control

Post by John Doe » Tue 19 Mar, 2013 12:50

Вот блин.

Code: Select all

Alt-серые клав.курсора  Пометка вертикального блока
Alt-Shift-Клав.курсора  Пометка вертикального блока
Кто мне скажет как выглядят серые клавиши на чёрной клавиатуре?

Был уверен что это клавиши Numpad, но начинаю сомневаться:
Аlt - <стрелки NumPad> не срабатывает.

User avatar
Alexey Samlyukov
Posts: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 5 times
Contact:

Re: Console Control

Post by Alexey Samlyukov » Tue 19 Mar, 2013 12:53

когда-то давно курсорные клавиши были серыми. http://www.vintagecomputer.net/ibm/5140 ... rtible.jpg

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

Re: Console Control

Post by John Doe » Tue 19 Mar, 2013 13:00

Да нет, тут ерунда какая-то
Что тогда по вашему Alt-Shift-Клав.курсора Пометка вертикального блока?
Не NumPad же

Update
Таки да, судя по функциям "не серые" подразумевают NumPad
Крайне неудачно сформулировано

2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Re: Console Control

Post by 2useven10 » Tue 19 Mar, 2013 13:13

Не NumPad же, с шифтом-то
почему нет ? нумпад с выключенным нумлоком - пометка вертикального блока.
на старых клавиатурах отдельных курсорных клавиш не было, а когда они появились, то были серыми (обычно).

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

Re: Console Control

Post by John Doe » Tue 19 Mar, 2013 13:15

Разобрались...

Но что тогда это:

Code: Select all

   #Ctrl-Alt-серые клавиши#  Пометка вертикального блока
У меня не работает.

Зато (сюрприз) почему-то работает CtrlAltNum4 и CtrlAltNum6

P.S.
Max Rusov
Эту часть обсуждения отделю потом, т.к. оффтопик

2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Re: Console Control

Post by 2useven10 » Tue 19 Mar, 2013 13:19

у меня работает.
клавиатура

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

Re: Console Control

Post by John Doe » Tue 19 Mar, 2013 13:22

У меня полноразмерная клавиатура, и #Ctrl-Alt-серые клавиши# не выполняют никаких действий в редакторе.
Нужна статистика, у кого как?

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

Re: Console Control

Post by Max Rusov » Tue 19 Mar, 2013 13:32

У меня работает как выделение прямоугольного блока по словам.
Только Ctrl-Alt-Num8 / Ctrl-Alt-Num2 не работают почему то.

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

Re: Console Control

Post by John Doe » Tue 19 Mar, 2013 13:36

Max Rusov wrote:У меня работает как выделение прямоугольного блока по словам.
Только Ctrl-Alt-Num8 / Ctrl-Alt-Num2 не работают почему то.
Да, и у меня, и это странно, потому что не должны.
Ведь речь не них.

#Ctrl-Alt-серые клавиши# - не нумпадные
Работают ли у вас?

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

Re: Console Control

Post by Max Rusov » Tue 19 Mar, 2013 13:43

Не "нумпадные" работают все

2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Re: Console Control

Post by 2useven10 » Tue 19 Mar, 2013 13:55

судя по коду - всё так как описывает Макс, почему обижены Ctrl-Alt-Num8 / Ctrl-Alt-Num2 - не знаю.

2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Re: Console Control

Post by 2useven10 » Tue 19 Mar, 2013 14:03

CtrlAltUp/Down/Home/End/PgUp/PgDn могут уходить в скроллинг (far /w)

Post Reply

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