aboutsummaryrefslogtreecommitdiffstats
path: root/em-dash.lua
diff options
context:
space:
mode:
Diffstat (limited to 'em-dash.lua')
-rw-r--r--em-dash.lua49
1 files changed, 49 insertions, 0 deletions
diff --git a/em-dash.lua b/em-dash.lua
new file mode 100644
index 0000000..c52aa1b
--- /dev/null
+++ b/em-dash.lua
@@ -0,0 +1,49 @@
+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