aboutsummaryrefslogtreecommitdiffstats
path: root/macros/garret.ctrl-c-ctrl-v.lua
diff options
context:
space:
mode:
Diffstat (limited to 'macros/garret.ctrl-c-ctrl-v.lua')
-rw-r--r--macros/garret.ctrl-c-ctrl-v.lua90
1 files changed, 0 insertions, 90 deletions
diff --git a/macros/garret.ctrl-c-ctrl-v.lua b/macros/garret.ctrl-c-ctrl-v.lua
deleted file mode 100644
index 04c994d..0000000
--- a/macros/garret.ctrl-c-ctrl-v.lua
+++ /dev/null
@@ -1,90 +0,0 @@
-script_name = "Consistency Assistant"
-script_description = "ctrl-c ctrl-v and now ctrl-o"
-script_version = "1.2.0"
-script_author = "garret"
-script_namespace = "garret.ctrl-c-ctrl-v"
-
-local haveDepCtrl, DependencyControl, depctrl = pcall(require, "l0.DependencyControl")
-local parser
-if haveDepCtrl then
- depctrl = DependencyControl({
- --feed="TODO",
- {
- {
- "myaa.ASSParser",
- version = "0.0.4", -- very sketch about this
- url = "http://github.com/TypesettingTools/Myaamori-Aegisub-Scripts",
- feed = "https://raw.githubusercontent.com/TypesettingTools/Myaamori-Aegisub-Scripts/master/DependencyControl.json",
- optional = true,
- },
- },
- })
- parser = depctrl:requireModules()
-end
-
---inspect = require "inspect"
-
--- it looks more complicated than it is because of all the aegisub.log()s
-local function main(sub, is_recursion)
- local clipboard = {}
- for i = 1, #sub do
- local line = sub[i]
- if line.class == "dialogue" then
- local op, name = line.effect:match("ctrl%-([cvo]) ?([%S]*)")
- if op == "o" and parser ~= "nil" then -- o = open. check for parser or it wont work
- clipboard["__imports"] = clipboard["__imports"] or {} -- declare field
- clipboard["__imports"][name] = import(line.text)
- elseif line.comment ~= true then
- if op == "c" then
- aegisub.log(5, 5, "ctrl-c " .. name .. ": " .. line.text .. "\n")
- clipboard[name] = clipboard[name] or {}
- table.insert(clipboard[name], line)
- elseif op == "v" and is_recursion ~= true then -- don't want to affect the imported files (useless)
- -- have to specifically check ~= true because normally it'd be sel, which is a table of numbers (not nil/false)
- local file, slash, capture = name:match("([^%s/]+)(/?)([%S]*)") -- match filename/capture
- local clippings -- names = anything not a space or a /
- aegisub.log(5, file.."/"..capture.."\n")
- aegisub.log(5, "slash: "..slash.."\n")
- if slash ~= "" and parser ~= nil then
- clippings = clipboard["__imports"][file][capture]
- aegisub.log(5, "clippings = clipboard[\"__imports\"][\""..file.."\"][\""..capture.."\"]\n")
- else
- clippings = clipboard[file] or {line} -- error handling if the clipboard doesnt exist or parser isnt there
- aegisub.log(5, "clippings = clipboard[\""..file.."\"]\n")
- end
- aegisub.log(5, "ctrl-v " .. name .. ": " .. line.text .. "\n")
--- aegisub.log(5, inspect(clippings).."\n")
- line.text = clippings[1].text
- sub[i] = line
- table.remove(clippings, 1)
- end
- end
- end
- aegisub.progress.set(i / #sub * 100)
- end
--- aegisub.log(5, inspect(clipboard).."\n")
- return clipboard
-end
-
-function import(path)
---local function import(path)
- if parser then
- aegisub.log(5, "recursing\n")
- local f = io.open(aegisub.decode_path(path), "r")
- local sub = parser.parse_file(f).events
- f:close()
- local clipboard = main(sub, true)
- aegisub.log(5, "recursion complete\n")
- return clipboard
- else
- aegisub.log(1, "You don't appear to have myaa.ASSParser, which is required for including other files.\n")
- aegisub.log(1, "The script will continue, but any includes you've specified won't work.\n")
- return {}
- end
-end
-
-if haveDepCtrl then
- depctrl:registerMacro(main)
-else
- aegisub.register_macro(script_name, script_description, main)
-end