AddOption("autoclose", true)
end
-local autoclosePairs = {"\"\"", "''", "()", "{}", "[]"}
+local autoclosePairs = {"\"\"", "''", "``", "()", "{}", "[]"}
local autoNewlinePairs = {"()", "{}", "[]"}
-function onRune(r)
+function onRune(r, v)
if not GetOption("autoclose") then
return
end
- local v = CurView()
for i = 1, #autoclosePairs do
if r == charAt(autoclosePairs[i], 2) then
local curLine = v.Buf:Line(v.Cursor.Y)
end
end
-function preInsertNewline()
+function preInsertNewline(v)
if not GetOption("autoclose") then
return
end
- local v = CurView()
local curLine = v.Buf:Line(v.Cursor.Y)
local curRune = charAt(curLine, v.Cursor.X)
local nextRune = charAt(curLine, v.Cursor.X+1)
return true
end
-function preBackspace()
+function preBackspace(v)
if not GetOption("autoclose") then
return
end
- local v = CurView()
-
for i = 1, #autoclosePairs do
local curLine = v.Buf:Line(v.Cursor.Y)
if charAt(curLine, v.Cursor.X+1) == charAt(autoclosePairs[i], 2) and charAt(curLine, v.Cursor.X) == charAt(autoclosePairs[i], 1) then