better formatting for ls output for tags

develop
myk002 2022-10-05 12:51:30 -07:00
parent 739792a59e
commit dc535004e9
No known key found for this signature in database
GPG Key ID: 8A39CA0FA0C16E78
3 changed files with 9 additions and 6 deletions

@ -38,6 +38,7 @@ changelog.txt uses a syntax similar to RST, with a few special sequences:
## Fixes ## Fixes
## Misc Improvements ## Misc Improvements
- `ls`: indent tag listings and wrap them in the right column for better readability
## Documentation ## Documentation

@ -726,13 +726,15 @@ end
local function list_entries(skip_tags, include, exclude) local function list_entries(skip_tags, include, exclude)
local entries = search_entries(include, exclude) local entries = search_entries(include, exclude)
for _,entry in ipairs(entries) do for _,entry in ipairs(entries) do
print_columns(entry, get_entry_short_help(entry)) local short_help = get_entry_short_help(entry)
if not skip_tags then if not skip_tags then
local tags = set_to_sorted_list(get_entry_tags(entry)) local tags = set_to_sorted_list(get_entry_tags(entry))
if #tags > 0 then if #tags > 0 then
print((' tags: %s'):format(table.concat(tags, ', '))) local taglist = table.concat(tags, ', ')
short_help = short_help .. NEWLINE .. 'tags: ' .. taglist
end end
end end
print_columns(entry, short_help)
end end
if #entries == 0 then if #entries == 0 then
print('No matches.') print('No matches.')

@ -637,7 +637,7 @@ function test.ls()
expect.eq(5, mock_print.call_count) expect.eq(5, mock_print.call_count)
expect.eq('inscript_docs in-file short description for inscript_docs.', expect.eq('inscript_docs in-file short description for inscript_docs.',
mock_print.call_args[1][1]) mock_print.call_args[1][1])
expect.eq(' tags: map', mock_print.call_args[2][1]) expect.eq(' tags: map', mock_print.call_args[2][1])
expect.eq('nodoc_command cpp description.', expect.eq('nodoc_command cpp description.',
mock_print.call_args[3][1]) mock_print.call_args[3][1])
expect.eq('nodocs_samename Nodocs samename.', expect.eq('nodocs_samename Nodocs samename.',
@ -652,15 +652,15 @@ function test.ls()
expect.eq(6, mock_print.call_count) expect.eq(6, mock_print.call_count)
expect.eq('bindboxers Bind your boxers.', expect.eq('bindboxers Bind your boxers.',
mock_print.call_args[1][1]) mock_print.call_args[1][1])
expect.eq(' tags: armok, fort, units', expect.eq(' tags: armok, fort, units',
mock_print.call_args[2][1]) mock_print.call_args[2][1])
expect.eq('boxbinders Box your binders.', expect.eq('boxbinders Box your binders.',
mock_print.call_args[3][1]) mock_print.call_args[3][1])
expect.eq(' tags: armok, fort, units', expect.eq(' tags: armok, fort, units',
mock_print.call_args[4][1]) mock_print.call_args[4][1])
expect.eq('samename Samename.', expect.eq('samename Samename.',
mock_print.call_args[5][1]) mock_print.call_args[5][1])
expect.eq(' tags: armok, fort, units', expect.eq(' tags: armok, fort, units',
mock_print.call_args[6][1]) mock_print.call_args[6][1])
end) end)