50 lines
1.3 KiB
Lua
50 lines
1.3 KiB
Lua
script_name = "Em-dash"
|
|
script_description = "I do not have an em-dash key on my keyboard"
|
|
script_author = "garret"
|
|
script_version = "2.1.0"
|
|
|
|
local em = "—"
|
|
|
|
local function have_cursor_funcs()
|
|
return aegisub.gui and aegisub.gui.get_cursor and aegisub.gui.set_cursor
|
|
end
|
|
|
|
local function insert(sub, sel, act)
|
|
local line = sub[act]
|
|
local pos = aegisub.gui.get_cursor()
|
|
local start = string.sub(line.text, 1, pos - 1)
|
|
local end_ = string.sub(line.text, pos)
|
|
line.text = start .. em .. end_
|
|
aegisub.gui.set_cursor(pos + 1)
|
|
sub[act] = line
|
|
end
|
|
|
|
local function append(sub, sel)
|
|
for si, li in ipairs(sel) do
|
|
local line = sub[li]
|
|
if string.sub(line.text, -1) == "-" then
|
|
line.text = line.text:sub(1, #line.text - 1)
|
|
end
|
|
line.text = line.text..em
|
|
sub[li] = line
|
|
end
|
|
aegisub.set_undo_point(script_name)
|
|
end
|
|
|
|
local function replace(sub, sel)
|
|
for si, li in ipairs(sel) do
|
|
local line = sub[li]
|
|
local text = sub[li].text
|
|
text = text:gsub("%-%-",em)
|
|
line.text=text
|
|
sub[li] = line
|
|
end
|
|
aegisub.set_undo_point(script_name)
|
|
end
|
|
|
|
aegisub.register_macro(script_name.."/Append", "Appends an Em-dash to the selected line(s)", append)
|
|
aegisub.register_macro(script_name.."/Replace", "Replaces -- with "..em, replace)
|
|
if have_cursor_funcs() then
|
|
aegisub.register_macro(script_name.."/Insert", "Inserts an em-dash at the cursor position", insert)
|
|
end
|