72 lines
1.8 KiB
Lua
72 lines
1.8 KiB
Lua
local core = require "core"
|
|
local command = require "core.command"
|
|
local common = require "core.common"
|
|
local style = require "core.style"
|
|
local StatusView = require "core.statusview"
|
|
|
|
local function status_view_item_names()
|
|
local items = core.status_view:get_items_list()
|
|
local names = {}
|
|
for _, item in ipairs(items) do
|
|
table.insert(names, item.name)
|
|
end
|
|
return names
|
|
end
|
|
|
|
local function status_view_items_data(names)
|
|
local data = {}
|
|
for _, name in ipairs(names) do
|
|
local item = core.status_view:get_item(name)
|
|
table.insert(data, {
|
|
text = command.prettify_name(item.name),
|
|
info = item.alignment == StatusView.Item.LEFT and "Left" or "Right",
|
|
name = item.name
|
|
})
|
|
end
|
|
return data
|
|
end
|
|
|
|
local function status_view_get_items(text)
|
|
local names = status_view_item_names()
|
|
local results = common.fuzzy_match(names, text)
|
|
results = status_view_items_data(results)
|
|
return results
|
|
end
|
|
|
|
command.add(nil, {
|
|
["status-bar:toggle"] = function()
|
|
core.status_view:toggle()
|
|
end,
|
|
["status-bar:show"] = function()
|
|
core.status_view:show()
|
|
end,
|
|
["status-bar:hide"] = function()
|
|
core.status_view:hide()
|
|
end,
|
|
["status-bar:disable-messages"] = function()
|
|
core.status_view:display_messages(false)
|
|
end,
|
|
["status-bar:enable-messages"] = function()
|
|
core.status_view:display_messages(true)
|
|
end,
|
|
["status-bar:hide-item"] = function()
|
|
core.command_view:enter("Status bar item to hide",
|
|
function(text, item)
|
|
core.status_view:hide_items(item.name)
|
|
end,
|
|
status_view_get_items
|
|
)
|
|
end,
|
|
["status-bar:show-item"] = function()
|
|
core.command_view:enter("Status bar item to show",
|
|
function(text, item)
|
|
core.status_view:show_items(item.name)
|
|
end,
|
|
status_view_get_items
|
|
)
|
|
end,
|
|
["status-bar:reset-items"] = function()
|
|
core.status_view:show_items()
|
|
end,
|
|
})
|