(Напомню, что ссылки будут подчёркнуты только в режиме TrueMod.)
Активируется двойным кликом мыши, или
Shift+Enter.Code: Select all
local F = far.Flags
local function expandEnv (str)
return (str:gsub("%%([%w_]-)%%", win.GetEnv))
end
local function open (url)
if not url then
return
elseif url:match"^http" then
win.ShellExecute(nil,nil,url)
elseif url:match"^mk:@MSITStore:" then
win.ShellExecute(nil,nil,"hh",expandEnv(url))
end
end
local function colorer (...)
return Plugin.SyncCall("D2F36B62-A470-418D-83A3-ED7A3710E5B5", ...)
end
Macro { description="Open url (Colorer)";
area="Editor"; key="MsLClick ShiftEnter";
priority=60;
id="EF30041E-6F5F-4B56-83DC-7C9529570433";
condition=function(key)
if bit64.band(Mouse.EventFlags, F.DOUBLE_CLICK)~=0 or not key:match"^Ms" then
local region, scheme = colorer("Region","List")
return region=="def:URL" or region=="markdown:LinkMark"
or region=="markdown:LinkText" and scheme~="markdown:Link"
end
end;
action=function()
colorer("Region","Select")
local sel = Editor.SelValue
sel = sel:match('^%]%((.-) "') or sel
sel = sel:match("^%]%((.-)%)") or sel
open(sel)
end;
}