diff options
author | garret <garret@airmail.cc> | 2025-03-11 16:07:33 +0000 |
---|---|---|
committer | garret <garret@airmail.cc> | 2025-03-11 16:07:33 +0000 |
commit | 9f455636d19474b404ec89e1e17152e3c08a2430 (patch) | |
tree | 5697cb779b49f798b5eed39c1465778b0e523312 | |
parent | 76b99a0e10ef6b60779d6c9a343c000129199b86 (diff) | |
download | aegisub-scripts-9f455636d19474b404ec89e1e17152e3c08a2430.tar.gz aegisub-scripts-9f455636d19474b404ec89e1e17152e3c08a2430.tar.bz2 aegisub-scripts-9f455636d19474b404ec89e1e17152e3c08a2430.zip |
restyle the restyler (spaces -> tabs)
-rw-r--r-- | restyler.lua | 61 |
1 files changed, 31 insertions, 30 deletions
diff --git a/restyler.lua b/restyler.lua index 9430676..d0a2082 100644 --- a/restyler.lua +++ b/restyler.lua @@ -6,9 +6,9 @@ script_namespace = "garret.restyler" local haveDepCtrl, DependencyControl, depctrl = pcall(require, "l0.DependencyControl") if haveDepCtrl then - depctrl = DependencyControl { - --feed="TODO", - } + depctrl = DependencyControl { + --feed="TODO", + } end include("karaskel.lua") @@ -17,52 +17,53 @@ include("cleantags.lua") -- local config = simpleconf.get_config(aegisub.decode_path(config_dir.."/"..script_namespace..".conf"), {new_style = "Default"}) -- TODO: detect pre-existing inline tags - -- probably need some kind of ass parsing, or a hack with match() function add_tags(txt, italic, align) -- everything except txt is boolean. nil = don't change, !nil = change to this value --[[not quite happy with this, it overwrites the alignment - ie line is "{\an4} blah blah" and style is an8, it just changes it to an8 realisticly this _probably_ won't be a problem, but still would like to try and stop it at some point to be safe italics is fine, it just does {\i1\i0}, which is jank and bad but works fine so i won't worry about it too much]] - if italic == true then - txt="{\\i1}"..txt - elseif italics == false then - txt="{\\i0}"..txt - end - if align ~= nil then - txt="{\\an"..align.."}"..txt - end - txt = cleantags(txt) - return txt + if italic == true then + txt="{\\i1}"..txt + elseif italics == false then + txt="{\\i0}"..txt + end + if align ~= nil then + txt="{\\an"..align.."}"..txt + end + txt = cleantags(txt) + return txt end function get_new(old, new) - local i = nil - if old ~= new then - i = old - end - return i + local i = nil + if old ~= new then + i = old + end + return i end function main(sub, sel) - local _, styles = karaskel.collect_head(sub, false) - local new_style_name = "Default" - local new_style = styles[new_style_name] + local _, styles = karaskel.collect_head(sub, false) + local new_style_name = "Default" + local new_style = styles[new_style_name] + + for h, i in ipairs(sel) do - -- TODO: automatically exclude styles (also configurable) + -- TODO: automatically exclude styles (also configurable) local line = sub[i] - local old_style = styles[line.style] -- reinventing the wheel a bit here, since karaskel can do this with preproc_line_size (line.styleref), but it also adds loads of other crap we don't care about for the same functionality in the end, so ¯\_(ツ)_/¯ - local italic = get_new(old_style.italic, new_style.italic) - local align = get_new(old_style.align, new_style.align) - line.style = new_style_name - line.text = add_tags(line.text, italic, align) + local old_style = styles[line.style] -- reinventing the wheel a bit here, since karaskel can do this with preproc_line_size (line.styleref), but it also adds loads of other crap we don't care about for the same functionality in the end, so ¯\_(ツ)_/¯ + local italic = get_new(old_style.italic, new_style.italic) + local align = get_new(old_style.align, new_style.align) + line.style = new_style_name + line.text = add_tags(line.text, italic, align) sub[i] = line end aegisub.set_undo_point(script_name) end if haveDepCtrl then - depctrl:registerMacro(main) + depctrl:registerMacro(main) else - aegisub.register_macro(script_name, script_description, main) + aegisub.register_macro(script_name, script_description, main) end |