aboutsummaryrefslogtreecommitdiff
path: root/plugins/detectindent.lua
diff options
context:
space:
mode:
authorFrancesco Abbate <francesco.bbt@gmail.com>2021-04-21 13:37:22 +0200
committerFrancesco Abbate <francesco.bbt@gmail.com>2021-04-21 13:37:22 +0200
commit787f31d3eb85541726e066472e1fd20c44939393 (patch)
tree2de7f6076577e18b5bb01ad7539bf4a8993cada6 /plugins/detectindent.lua
parentb09046a719cafa8f75c542123828cd76be460a2a (diff)
parent2fefdae0bb729edb29c6b90e89d34a9e664fbf14 (diff)
downloadlite-xl-plugins-787f31d3eb85541726e066472e1fd20c44939393.tar.gz
lite-xl-plugins-787f31d3eb85541726e066472e1fd20c44939393.zip
Merge branch 'lite-xl-1.16'
Diffstat (limited to 'plugins/detectindent.lua')
-rw-r--r--plugins/detectindent.lua64
1 files changed, 0 insertions, 64 deletions
diff --git a/plugins/detectindent.lua b/plugins/detectindent.lua
deleted file mode 100644
index 9c473b5..0000000
--- a/plugins/detectindent.lua
+++ /dev/null
@@ -1,64 +0,0 @@
-local core = require "core"
-local command = require "core.command"
-local config = require "core.config"
-local DocView = require "core.docview"
-local Doc = require "core.doc"
-
-local cache = setmetatable({}, { __mode = "k" })
-
-
-local function detect_indent(doc)
- for _, text in ipairs(doc.lines) do
- local str = text:match("^ +")
- if str then return "soft", #str end
- local str = text:match("^\t+")
- if str then return "hard" end
- end
-end
-
-
-local function update_cache(doc)
- local type, size = detect_indent(doc)
- if type then
- cache[doc] = { type = type, size = size }
- end
-end
-
-
-local new = Doc.new
-function Doc:new(...)
- new(self, ...)
- update_cache(self)
-end
-
-local clean = Doc.clean
-function Doc:clean(...)
- clean(self, ...)
- update_cache(self)
-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
-