aboutsummaryrefslogtreecommitdiff
path: root/plugins/force_syntax.lua
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/force_syntax.lua')
-rw-r--r--plugins/force_syntax.lua31
1 files changed, 15 insertions, 16 deletions
diff --git a/plugins/force_syntax.lua b/plugins/force_syntax.lua
index ae5a138..102ab01 100644
--- a/plugins/force_syntax.lua
+++ b/plugins/force_syntax.lua
@@ -8,9 +8,9 @@ local style = require "core.style"
local StatusView = require "core.statusview"
local DocView = require "core.docview"
-local function doc()
- if core.active_view and getmetatable(core.active_view) == DocView then return core.active_view.doc end
- if core.last_active_view and getmetatable(core.last_active_view) == DocView then return core.last_active_view.doc end
+local function get_doc()
+ if core.active_view then return core.active_view:is(DocView), core.active_view.doc end
+ if core.last_active_view then return core.last_active_view:is(DocView), core.last_active_view.doc end
end
-- Force plaintext syntax to have a name
@@ -40,13 +40,12 @@ local function get_syntax_name(s)
end
core.status_view:add_item({
- predicate = function()
- return core.active_view and getmetatable(core.active_view) == DocView
- end,
+ predicate = get_doc,
name = "doc:syntax",
alignment = StatusView.Item.RIGHT,
get_item = function()
- local syntax_name = get_syntax_name(doc().syntax)
+ local _, doc = get_doc()
+ local syntax_name = get_syntax_name(doc.syntax)
return {
style.text,
syntax_name
@@ -58,9 +57,9 @@ core.status_view:add_item({
separator = core.status_view.separator2
})
-local function get_syntax_list()
+local function get_syntax_list(doc)
local pt_name = plain_text_syntax.name
- if doc().syntax == plain_text_syntax then
+ if doc.syntax == plain_text_syntax then
pt_name = "Current: "..pt_name
end
local list = { ["Auto detect"] = false,
@@ -75,7 +74,7 @@ local function get_syntax_list()
i = i + 1
fullname = name.." ("..i..")"
end
- if doc().syntax == s then
+ if doc.syntax == s then
fullname = "Current: "..fullname
end
list[fullname] = s
@@ -101,17 +100,17 @@ local function bias_sorter(a, b)
return sorter(a, b)
end
-command.add("core.docview", {
+command.add(get_doc, {
["force-syntax:select-file-syntax"] =
- function()
+ function(doc)
core.command_view:enter("Set syntax for this file", {
submit = function(text, item)
- local list, _ = get_syntax_list()
- doc().force_syntax = list[item.text]
- doc():reset_syntax()
+ local list, _ = get_syntax_list(doc)
+ doc.force_syntax = list[item.text]
+ doc:reset_syntax()
end,
suggest = function(text)
- local _, keylist = get_syntax_list()
+ local _, keylist = get_syntax_list(doc)
local res = common.fuzzy_match(keylist, text)
-- Force Current and Auto detect syntax to the bottom
-- if the text is empty