Pull down all non-code notes (#14)
This commit changes the filter on the API response so that we are only filtering out system level notes. This means we get notes that are not linked to specific locations in the code. Subsequent work will have to separate these types of notes from the other code-linked notes and probably display them in some sort of separate tree.
This commit is contained in:
committed by
GitHub
parent
22389fdb3d
commit
f15711edab
@@ -44,18 +44,18 @@ func (c *Client) ListDiscussions() ([]*gitlab.Discussion, int, error) {
|
|||||||
return nil, res.Response.StatusCode, fmt.Errorf("Listing discussions failed: %w", err)
|
return nil, res.Response.StatusCode, fmt.Errorf("Listing discussions failed: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var realDiscussions []*gitlab.Discussion
|
var diffNotes []*gitlab.Discussion
|
||||||
for i := 0; i < len(discussions); i++ {
|
for i := 0; i < len(discussions); i++ {
|
||||||
notes := discussions[i].Notes
|
notes := discussions[i].Notes
|
||||||
for j := 0; j < len(notes); j++ {
|
for j := 0; j < len(notes); j++ {
|
||||||
if notes[j].Type == gitlab.NoteTypeValue("DiffNote") {
|
if !notes[j].System {
|
||||||
realDiscussions = append(realDiscussions, discussions[i])
|
diffNotes = append(diffNotes, discussions[i])
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sortedDiscussions := SortableDiscussions(realDiscussions)
|
sortedDiscussions := SortableDiscussions(diffNotes)
|
||||||
sort.Sort(sortedDiscussions)
|
sort.Sort(sortedDiscussions)
|
||||||
|
|
||||||
return sortedDiscussions, http.StatusOK, nil
|
return sortedDiscussions, http.StatusOK, nil
|
||||||
|
|||||||
@@ -33,6 +33,15 @@ M.send_reply = function(text)
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Adds node to discussion tree
|
||||||
|
local function addToDiscussionTree(i, note, discussionChildren)
|
||||||
|
local note_node = M.build_note(note)
|
||||||
|
if i == 1 then
|
||||||
|
note_node:expand()
|
||||||
|
end
|
||||||
|
table.insert(discussionChildren, note_node)
|
||||||
|
end
|
||||||
|
|
||||||
-- Places all of the discussions into a readable list
|
-- Places all of the discussions into a readable list
|
||||||
M.list_discussions = function()
|
M.list_discussions = function()
|
||||||
if u.base_invalid() then return end
|
if u.base_invalid() then return end
|
||||||
@@ -63,11 +72,10 @@ M.list_discussions = function()
|
|||||||
for i, discussion in ipairs(data.discussions) do
|
for i, discussion in ipairs(data.discussions) do
|
||||||
local discussionChildren = {}
|
local discussionChildren = {}
|
||||||
for _, note in ipairs(discussion.notes) do
|
for _, note in ipairs(discussion.notes) do
|
||||||
local note_node = M.build_note(note)
|
if note.position then
|
||||||
if i == 1 then
|
addToDiscussionTree(i, note, discussionChildren)
|
||||||
note_node:expand()
|
else
|
||||||
end
|
end
|
||||||
table.insert(discussionChildren, note_node)
|
|
||||||
end
|
end
|
||||||
local discussionNode = NuiTree.Node({
|
local discussionNode = NuiTree.Node({
|
||||||
text = discussion.id,
|
text = discussion.id,
|
||||||
@@ -87,7 +95,6 @@ M.list_discussions = function()
|
|||||||
state.tree:render()
|
state.tree:render()
|
||||||
vim.api.nvim_buf_set_option(buf, 'filetype', 'markdown')
|
vim.api.nvim_buf_set_option(buf, 'filetype', 'markdown')
|
||||||
u.darken_metadata(buf, '')
|
u.darken_metadata(buf, '')
|
||||||
M.jump_to_file()
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@@ -98,6 +105,7 @@ M.list_discussions = function()
|
|||||||
}):start()
|
}):start()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
M.jump_to_file = function()
|
M.jump_to_file = function()
|
||||||
local node = state.tree:get_node()
|
local node = state.tree:get_node()
|
||||||
if node == nil then return end
|
if node == nil then return end
|
||||||
@@ -189,14 +197,22 @@ M.build_note = function(note)
|
|||||||
local noteHeader = "@" ..
|
local noteHeader = "@" ..
|
||||||
note.author.username .. " on " .. u.format_date(note.created_at)
|
note.author.username .. " on " .. u.format_date(note.created_at)
|
||||||
|
|
||||||
local line_number = note.position.new_line or note.position.old_line
|
local file_name
|
||||||
|
local line_number
|
||||||
|
if (type(note.position) == 'table') then
|
||||||
|
line_number = note.position.new_line or note.position.old_line
|
||||||
|
file_name = note.position.new_path
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
local note_node = NuiTree.Node(
|
local note_node = NuiTree.Node(
|
||||||
{
|
{
|
||||||
text = noteHeader,
|
text = noteHeader,
|
||||||
id = note.id,
|
id = note.id,
|
||||||
file_name = note.position.new_path,
|
file_name = file_name,
|
||||||
line_number = line_number,
|
line_number = line_number,
|
||||||
is_note = true
|
is_note = true,
|
||||||
|
is_code_comment = type(note.position) == 'table'
|
||||||
}, noteTextNodes)
|
}, noteTextNodes)
|
||||||
|
|
||||||
return note_node
|
return note_node
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ end
|
|||||||
|
|
||||||
|
|
||||||
local function jump_to_file(filename, line_number)
|
local function jump_to_file(filename, line_number)
|
||||||
if line_number == nil then line_number = 1 end
|
if line_number == nil or filename == nil then return end
|
||||||
vim.api.nvim_command("wincmd l")
|
vim.api.nvim_command("wincmd l")
|
||||||
local bufnr = vim.fn.bufnr(filename)
|
local bufnr = vim.fn.bufnr(filename)
|
||||||
if bufnr ~= -1 then
|
if bufnr ~= -1 then
|
||||||
|
|||||||
Reference in New Issue
Block a user