Adapt `detectindent` to the new indentation architecture
This commit is contained in:
parent
3d9901695b
commit
2de48b6ac8
|
@ -121,40 +121,17 @@ end
|
||||||
local clean = Doc.clean
|
local clean = Doc.clean
|
||||||
function Doc:clean(...)
|
function Doc:clean(...)
|
||||||
clean(self, ...)
|
clean(self, ...)
|
||||||
if not cache[self].confirmed then
|
local _, _, confirmed = self:get_indent_info()
|
||||||
|
if not confirmed then
|
||||||
update_cache(self)
|
update_cache(self)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function with_indent_override(doc, fn, ...)
|
|
||||||
local c = cache[doc]
|
|
||||||
if not c then
|
|
||||||
return fn(...)
|
|
||||||
end
|
|
||||||
local type, size = config.tab_type, config.indent_size
|
|
||||||
config.tab_type, config.indent_size = c.type, c.size or config.indent_size
|
|
||||||
local r1, r2, r3 = fn(...)
|
|
||||||
config.tab_type, config.indent_size = type, size
|
|
||||||
return r1, r2, r3
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
local perform = command.perform
|
|
||||||
function command.perform(...)
|
|
||||||
return with_indent_override(core.active_view.doc, perform, ...)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
local draw = DocView.draw
|
|
||||||
function DocView:draw(...)
|
|
||||||
return with_indent_override(self.doc, draw, self, ...)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
local function set_indent_type(doc, type)
|
local function set_indent_type(doc, type)
|
||||||
|
local _, indent_size = doc:get_indent_info()
|
||||||
cache[doc] = {type = type,
|
cache[doc] = {type = type,
|
||||||
size = cache[doc].value or config.indent_size,
|
size = indent_size,
|
||||||
confirmed = true}
|
confirmed = true}
|
||||||
doc.indent_info = cache[doc]
|
doc.indent_info = cache[doc]
|
||||||
end
|
end
|
||||||
|
@ -180,7 +157,8 @@ end
|
||||||
|
|
||||||
|
|
||||||
local function set_indent_size(doc, size)
|
local function set_indent_size(doc, size)
|
||||||
cache[doc] = {type = cache[doc].type or config.tab_type,
|
local indent_type = doc:get_indent_info()
|
||||||
|
cache[doc] = {type = indent_type,
|
||||||
size = size,
|
size = size,
|
||||||
confirmed = true}
|
confirmed = true}
|
||||||
doc.indent_info = cache[doc]
|
doc.indent_info = cache[doc]
|
||||||
|
|
Loading…
Reference in New Issue