Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion lua/kubectl/actions/actions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ function M.floating_buffer(content, filetype, opts)
vim.keymap.set("n", "q", vim.cmd.close, { buffer = buf, silent = true })

layout.set_buf_options(buf, win, filetype, opts.syntax or filetype)

hl.setup()
hl.set_highlighting(win)
end
Expand Down Expand Up @@ -150,7 +151,14 @@ function M.notification_buffer(content, opts)
buf = create_buffer(bufname)
end

set_buffer_lines(buf, {}, content)
if opts.append then
local lines = vim.api.nvim_buf_get_lines(buf, 0, -1, false)
for _, line in ipairs(lines) do
table.insert(content, #content, line)
end
end

vim.api.nvim_buf_set_lines(buf, 0, -1, false, content)
local win = layout.notification_layout(buf, bufname, { width = opts.width })

layout.set_buf_options(buf, win, bufname, bufname)
Expand Down
2 changes: 1 addition & 1 deletion lua/kubectl/actions/highlight.lua
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ vim.api.nvim_set_hl(0, "KubectlPending", { fg = "#C586C0" }) -- Purple
vim.api.nvim_set_hl(0, "KubectlDeprecated", { fg = "#D4A5A5" }) -- Pink
vim.api.nvim_set_hl(0, "KubectlExperimental", { fg = "#CE9178" }) -- Brown
vim.api.nvim_set_hl(0, "KubectlNote", { fg = "#9CDCFE" }) -- Light Blue
vim.api.nvim_set_hl(0, "KubectlGray", { fg = "#A9A9A9" }) -- Dark Gray
vim.api.nvim_set_hl(0, "KubectlGray", { fg = "#666666" }) -- Dark Gray

-- Define M.symbols for tags
M.symbols = {
Expand Down
2 changes: 1 addition & 1 deletion lua/kubectl/actions/layout.lua
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ end

function M.notification_layout(buf, title, opts)
local editor_width, editor_height = M.get_editor_dimensions()
local height = math.min(2, editor_height)
local height = math.min(4, editor_height)
local width = math.min(opts.width, editor_width - 4) -- guess width of signcolumn etc.
local row_max = vim.api.nvim_win_get_height(0)

Expand Down
21 changes: 16 additions & 5 deletions lua/kubectl/notification.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ local actions = require("kubectl.actions.actions")
local M = {}

function M.process_row(rows)
local width = 0
local max_width = 60
local width = 40
local max_width = 40
for _, value in ipairs(rows) do
if #value > width then
width = #value
Expand All @@ -28,11 +28,22 @@ function M.process_row(rows)
end

function M.Close()
actions.notification_buffer({ "" }, { close = true })
vim.defer_fn(function()
actions.notification_buffer({ "" }, { close = true })
end, 100)
end
function M.Add(rows)
vim.schedule(function()
local content, width = M.process_row(rows)
actions.notification_buffer(content, { width = width, close = false, append = true })
end)
end

function M.Open(rows)
local content, width = M.process_row(rows)
actions.notification_buffer(content, { width = width, close = false })
vim.schedule(function()
local content, width = M.process_row(rows)
actions.notification_buffer(content, { width = width, close = false, append = false })
end)
end

return M
33 changes: 27 additions & 6 deletions lua/kubectl/resourcebuilder.lua
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,10 @@ function ResourceBuilder:fetch()
end

function ResourceBuilder:fetchAsync(callback)
vim.schedule(function()
notifications.Open({
hl.symbols.gray .. "Loading: " .. self.resource,
hl.symbols.gray .. "args: " .. " " .. vim.inspect(self.args),
})
end)
notifications.Open({
hl.symbols.gray .. "fetching " .. "[" .. self.resource .. "]",
hl.symbols.gray .. "args: " .. " " .. vim.inspect(self.args),
})
commands.shell_command_async(self.cmd, self.args, function(data)
self.data = data
callback(self)
Expand All @@ -54,18 +52,28 @@ end

function ResourceBuilder:decodeJson()
local success, decodedData = pcall(vim.json.decode, self.data)

if success then
notifications.Add({
hl.symbols.gray .. "json decode successful " .. "[" .. self.resource .. "]",
})
self.data = decodedData
end
return self
end

function ResourceBuilder:process(processFunc)
notifications.Add({
hl.symbols.gray .. "processing table " .. "[" .. self.resource .. "]",
})
self.processedData = processFunc(self.data)
return self
end

function ResourceBuilder:sort()
notifications.Add({
hl.symbols.gray .. "sorting " .. "[" .. self.resource .. "]",
})
local sortby = state.getSortBy()
if sortby ~= "" then
sortby = string.lower(sortby)
Expand Down Expand Up @@ -102,11 +110,17 @@ function ResourceBuilder:splitData()
end

function ResourceBuilder:prettyPrint(headersFunc)
notifications.Add({
hl.symbols.gray .. "prettify table " .. "[" .. self.resource .. "]",
})
self.prettyData = tables.pretty_print(self.processedData, headersFunc())
return self
end

function ResourceBuilder:addHints(hints, include_defaults, include_context)
notifications.Add({
hl.symbols.gray .. "adding hints " .. "[" .. self.resource .. "]",
})
self.hints = tables.generateHints(hints, include_defaults, include_context)
return self
end
Expand All @@ -120,12 +134,19 @@ function ResourceBuilder:display(filetype, title, cancellationToken)
if cancellationToken and cancellationToken() then
return
end
notifications.Add({
hl.symbols.gray .. "display data " .. "[" .. self.resource .. "]",
})
notifications.Close()
actions.buffer(find.filter_line(self.prettyData, self.filter, 2), filetype, { title = title, hints = self.hints })
end

function ResourceBuilder:displayFloat(filetype, title, syntax, usePrettyData)
local displayData = usePrettyData and self.prettyData or self.data

notifications.Add({
hl.symbols.gray .. "display data " .. "[" .. self.resource .. "]",
})
notifications.Close()
actions.floating_buffer(displayData, filetype, { title = title, syntax = syntax, hints = self.hints })

Expand Down