refactor(cosmic-ui): readd diagnostics and handlers
This commit is contained in:
parent
de5e977c27
commit
b105b15248
6 changed files with 79 additions and 16 deletions
|
@ -73,6 +73,9 @@ config.cosmic_ui = {
|
||||||
diagnostic = {},
|
diagnostic = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- See https://github.com/ray-x/lsp_signature.nvim#full-configuration-with-default-values
|
||||||
|
config.lsp_signature = {}
|
||||||
|
|
||||||
-- See https://github.com/L3MON4D3/LuaSnip/blob/577045e9adf325e58f690f4d4b4a293f3dcec1b3/README.md#config
|
-- See https://github.com/L3MON4D3/LuaSnip/blob/577045e9adf325e58f690f4d4b4a293f3dcec1b3/README.md#config
|
||||||
config.luasnip = {}
|
config.luasnip = {}
|
||||||
|
|
||||||
|
|
|
@ -80,32 +80,34 @@ return packer.startup(function()
|
||||||
require('cosmic.lsp')
|
require('cosmic.lsp')
|
||||||
end,
|
end,
|
||||||
requires = {
|
requires = {
|
||||||
{ 'jose-elias-alvarez/nvim-lsp-ts-utils' },
|
|
||||||
{ 'williamboman/nvim-lsp-installer' },
|
{ 'williamboman/nvim-lsp-installer' },
|
||||||
|
{ 'jose-elias-alvarez/nvim-lsp-ts-utils' },
|
||||||
|
{
|
||||||
|
'ray-x/lsp_signature.nvim',
|
||||||
|
config = function()
|
||||||
|
require('cosmic.plugins.lsp-signature')
|
||||||
|
end,
|
||||||
|
after = 'nvim-lspconfig',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'jose-elias-alvarez/null-ls.nvim',
|
||||||
|
config = function()
|
||||||
|
require('cosmic.lsp.providers.null_ls')
|
||||||
|
end,
|
||||||
|
disable = vim.tbl_contains(user_plugins.disable, 'null-ls'),
|
||||||
|
after = 'nvim-lspconfig',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
use({
|
|
||||||
'jose-elias-alvarez/null-ls.nvim',
|
|
||||||
config = function()
|
|
||||||
require('cosmic.lsp.providers.null_ls')
|
|
||||||
end,
|
|
||||||
requires = { 'nvim-lua/plenary.nvim' },
|
|
||||||
disable = vim.tbl_contains(user_plugins.disable, 'null-ls'),
|
|
||||||
after = 'nvim-lspconfig',
|
|
||||||
})
|
|
||||||
|
|
||||||
use({
|
use({
|
||||||
'CosmicNvim/cosmic-ui',
|
'CosmicNvim/cosmic-ui',
|
||||||
requires = {
|
requires = {
|
||||||
'MunifTanjim/nui.nvim',
|
'MunifTanjim/nui.nvim',
|
||||||
'nvim-lua/plenary.nvim',
|
|
||||||
'ray-x/lsp_signature.nvim',
|
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
require('cosmic.plugins.cosmic-ui')
|
require('cosmic.plugins.cosmic-ui')
|
||||||
end,
|
end,
|
||||||
after = 'nvim-lspconfig',
|
|
||||||
})
|
})
|
||||||
|
|
||||||
-- autocompletion
|
-- autocompletion
|
||||||
|
|
40
lua/cosmic/lsp/diagnostics.lua
Normal file
40
lua/cosmic/lsp/diagnostics.lua
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
local icons = require('cosmic.theme.icons')
|
||||||
|
local config = require('cosmic.config')
|
||||||
|
local cosmic_ui = require('cosmic-ui')
|
||||||
|
|
||||||
|
-- set up LSP signs
|
||||||
|
local signs = {
|
||||||
|
Error = icons.error .. ' ',
|
||||||
|
Warn = icons.warn .. ' ',
|
||||||
|
Hint = icons.hint .. ' ',
|
||||||
|
Info = icons.info .. ' ',
|
||||||
|
}
|
||||||
|
|
||||||
|
local t = vim.fn.sign_getdefined('DiagnosticSignWarn')
|
||||||
|
if vim.tbl_isempty(t) then
|
||||||
|
for type, icon in pairs(signs) do
|
||||||
|
local hl = 'DiagnosticSign' .. type
|
||||||
|
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- set up vim.diagnostics
|
||||||
|
-- vim.diagnostic.config opts
|
||||||
|
vim.diagnostic.config(vim.tbl_deep_extend('force', {
|
||||||
|
underline = true,
|
||||||
|
signs = true,
|
||||||
|
update_in_insert = false,
|
||||||
|
severity_sort = true,
|
||||||
|
float = {
|
||||||
|
header = false,
|
||||||
|
source = 'always',
|
||||||
|
border = cosmic_ui.get_border(),
|
||||||
|
},
|
||||||
|
virtual_text = {
|
||||||
|
spacing = 4,
|
||||||
|
source = 'always',
|
||||||
|
severity = {
|
||||||
|
min = vim.diagnostic.severity.HINT,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}, config.diagnostic or {}))
|
|
@ -1,4 +1,13 @@
|
||||||
-- local config = require('cosmic.config')
|
local cosmic_ui = require('cosmic-ui')
|
||||||
|
|
||||||
-- set up lsp servers
|
-- set up lsp servers
|
||||||
require('cosmic.lsp.providers')
|
require('cosmic.lsp.providers')
|
||||||
|
require('cosmic.lsp.diagnostics')
|
||||||
|
|
||||||
|
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||||
|
border = cosmic_ui.get_border(),
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||||
|
border = cosmic_ui.get_border(),
|
||||||
|
})
|
||||||
|
|
9
lua/cosmic/plugins/lsp-signature/init.lua
Normal file
9
lua/cosmic/plugins/lsp-signature/init.lua
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
local cosmic_ui = require('cosmic-ui')
|
||||||
|
local config = require('cosmic.config')
|
||||||
|
|
||||||
|
require('lsp_signature').setup(vim.tbl_deep_extend('force', {
|
||||||
|
bind = true, -- This is mandatory, otherwise border config won't get registered.
|
||||||
|
handler_opts = {
|
||||||
|
border = cosmic_ui.get_border(),
|
||||||
|
},
|
||||||
|
}, config.lsp_signature or {}))
|
|
@ -29,7 +29,7 @@ Full featured native LSP functionality!
|
||||||
|
|
||||||
##### Additional features
|
##### Additional features
|
||||||
|
|
||||||
- Aesthetically pleasing UI via [Cosmic-UI](https://github.com/CosmicNvim/cosmic-ui)
|
- Custom rename and code action popups via [Cosmic-UI](https://github.com/CosmicNvim/cosmic-ui)
|
||||||
- Amazing default theme via [tokyonight.nvim](https://github.com/folke/tokyonight.nvim)
|
- Amazing default theme via [tokyonight.nvim](https://github.com/folke/tokyonight.nvim)
|
||||||
- Enhanced syntax highlighting via [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
|
- Enhanced syntax highlighting via [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
|
||||||
- Dashboard via [dashboard-nvim](https://github.com/glepnir/dashboard-nvim)
|
- Dashboard via [dashboard-nvim](https://github.com/glepnir/dashboard-nvim)
|
||||||
|
|
Loading…
Add table
Reference in a new issue