diff options
| -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 |