feat(lsp): Make line diagnostics display prettier

Adds indentation that matches the number prefix to ensure diagnostic
messages spawning multiple lines align.

Before:

    Diagnostics:
    1. • Variable not in scope: red :: t0 -> t
    • Perhaps you meant one of these:
        ‘rem’ (imported from Prelude), ‘read’ (imported from Prelude),
        ‘pred’ (imported from Prelude)
    2. • Variable not in scope: repeDoubleColon :: [Char] -> t0
    • Perhaps you meant ‘replaceDoubleColon’ (line 32)

After:

    Diagnostics:
    1. • Variable not in scope: red :: t0 -> t
       • Perhaps you meant one of these:
           ‘rem’ (imported from Prelude), ‘read’ (imported from Prelude),
           ‘pred’ (imported from Prelude)
    2. • Variable not in scope: repeDoubleColon :: [Char] -> t0
       • Perhaps you meant ‘replaceDoubleColon’ (line 32)
This commit is contained in:
Mathias Fussenegger 2021-07-08 11:41:26 +02:00
parent 37af69285a
commit e43dbfdd05

View File

@ -1211,7 +1211,7 @@ function M.show_line_diagnostics(opts, bufnr, line_nr, client_id)
table.insert(lines, prefix..message_lines[1]) table.insert(lines, prefix..message_lines[1])
table.insert(highlights, {#prefix, hiname}) table.insert(highlights, {#prefix, hiname})
for j = 2, #message_lines do for j = 2, #message_lines do
table.insert(lines, message_lines[j]) table.insert(lines, string.rep(' ', #prefix) .. message_lines[j])
table.insert(highlights, {0, hiname}) table.insert(highlights, {0, hiname})
end end
end end