From 6dc398b0606b0c734018ff5cd86f148b596f89b6 Mon Sep 17 00:00:00 2001 From: Matt Leong Date: Fri, 22 Oct 2021 20:36:17 -0700 Subject: [PATCH] feat(diagnostics): add min severity level for v text, cleaner mappings --- lua/cosmic/core/file-navigation/init.lua | 3 +- lua/cosmic/core/theme/highlights.lua | 2 +- lua/cosmic/lsp/diagnostics.lua | 15 +++++++-- lua/cosmic/lsp/mappings.lua | 42 ++++++++++++------------ 4 files changed, 36 insertions(+), 26 deletions(-) diff --git a/lua/cosmic/core/file-navigation/init.lua b/lua/cosmic/core/file-navigation/init.lua index 63a16d0..b289e23 100644 --- a/lua/cosmic/core/file-navigation/init.lua +++ b/lua/cosmic/core/file-navigation/init.lua @@ -80,12 +80,13 @@ require('telescope').setup({ lsp_document_diagnostics = { initial_mode = 'normal', sorting_strategy = 'ascending', - layout_strategy = 'cursor', + layout_strategy = 'vertical', prompt_title = 'Diagnostics', results_title = '', layout_config = { width = 0.5, height = 0.5, + prompt_position = 'top' }, mappings = mappings, }, diff --git a/lua/cosmic/core/theme/highlights.lua b/lua/cosmic/core/theme/highlights.lua index aba8b47..ebcce25 100644 --- a/lua/cosmic/core/theme/highlights.lua +++ b/lua/cosmic/core/theme/highlights.lua @@ -32,7 +32,7 @@ function M.init() highlight('TelescopeSelectionCaret', 'None', colors.selection_caret) -- autocomplete highlights - highlight('CmpItemAbbrDeprecated', colors.warn) + highlight('CmpItemAbbrDeprecated', 'None', colors.warn) -- todo: needs to highlight after lsp start, why? idk vim.cmd([[ diff --git a/lua/cosmic/lsp/diagnostics.lua b/lua/cosmic/lsp/diagnostics.lua index 5650bb9..0200db9 100644 --- a/lua/cosmic/lsp/diagnostics.lua +++ b/lua/cosmic/lsp/diagnostics.lua @@ -8,15 +8,24 @@ function M.init() virtual_text = { spacing = 4, source = 'always', - -- severity = 'error' - -- prefix = '👾', + severity = { + min = vim.diagnostic.severity.HINT, + }, + -- todo: icons for diagnostics? + --[[ format = function(diagnostic) + if diagnostic.severity == vim.diagnostic.severity.ERROR then + return string.format('E: %s', diagnostic.message) + end + return diagnostic.message + end, ]] }, signs = true, severity_sort = true, float = { show_header = true, source = 'always', - } + border = 'single', + }, }) local function do_diagnostic_signs() diff --git a/lua/cosmic/lsp/mappings.lua b/lua/cosmic/lsp/mappings.lua index 9783a0b..87d26a4 100644 --- a/lua/cosmic/lsp/mappings.lua +++ b/lua/cosmic/lsp/mappings.lua @@ -4,30 +4,30 @@ local map = require('cosmic.utils').map local opts = { noremap = true, silent = true } -- See `:help vim.lsp.*` for documentation on any of the below functions -map('n', 'gd', 'lua vim.lsp.buf.definition()', opts) -map('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) -map('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) -map('n', 'gt', 'lua vim.lsp.buf.type_definition()', opts) -map('n', 'gr', 'lua require("telescope.builtin").lsp_references()', opts) -map('n', 'gn', 'lua require("cosmic.core.theme.ui").rename()', opts) +map('n', 'gd', 'lua vim.lsp.buf.definition()', opts) +map('n', 'gd', 'lua vim.lsp.buf.declaration()', opts) +map('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) +map('n', 'gt', 'lua vim.lsp.buf.type_definition()', opts) +map('n', 'gr', 'lua require("telescope.builtin").lsp_references()', opts) +map('n', 'gn', 'lua require("cosmic.core.theme.ui").rename()', opts) -- diagnostics -map('n', '[g', 'lua vim.diagnostic.goto_prev({ float = { border = "single" }})', opts) -map('n', ']g', 'lua vim.diagnostic.goto_next({ float = { border = "single" }})', opts) -map('n', 'ge', 'lua vim.diagnostic.open_float(0, { scope = "line", border = "single" })', opts) -map('n', 'ge', ':Telescope lsp_document_diagnostics', opts) -map('n', 'K', 'lua vim.lsp.buf.hover()', opts) -map('n', 'ga', 'lua require("telescope.builtin").lsp_code_actions()', opts) -map('v', 'ga', 'lua require("telescope.builtin").lsp_range_code_actions()', opts) -map('n', 'gf', 'lua vim.lsp.buf.formatting()', opts) -map('n', '', 'lua require("lsp_signature").signature()', opts) +map('n', '[g', 'lua vim.diagnostic.goto_prev({ float = { show_header = false }})', opts) +map('n', ']g', 'lua vim.diagnostic.goto_next({ float = { show_header = false }})', opts) +map('n', 'ge', 'lua vim.diagnostic.open_float(0, { scope = "line", })', opts) +map('n', 'ge', ':telescope lsp_document_diagnostics', opts) +map('n', 'K', 'lua vim.lsp.buf.hover()', opts) +map('n', 'ga', 'lua require("telescope.builtin").lsp_code_actions()', opts) +map('v', 'ga', 'lua require("telescope.builtin").lsp_range_code_actions()', opts) +map('n', 'gf', 'lua vim.lsp.buf.formatting()', opts) +map('n', '', 'lua require("lsp_signature").signature()', opts) -- lsp workspace -map('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) -map('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) -map('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) +map('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) +map('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) +map('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) -- typescript helpers -map('n', 'gr', ':TSLspRenameFile', opts) -map('n', 'go', ':TSLspOrganize', opts) -map('n', 'gi', ':TSLspImportAll', opts) +map('n', 'gr', ':tslsprenamefile', opts) +map('n', 'go', ':tslsporganize', opts) +map('n', 'gi', ':tslspimportall', opts)