Skip to content

Commit

Permalink
Use lsp-status.nvim for LSP info in statusline
Browse files Browse the repository at this point in the history
  • Loading branch information
dlukes committed Sep 11, 2020
1 parent 72a6c69 commit 8feb47a
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
20 changes: 20 additions & 0 deletions nvim/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,24 @@ end
local lsp = vim.lsp
local nvim_lsp = require("nvim_lsp")
local configs = require("nvim_lsp/configs")
local lsp_status = require("lsp-status")

-- use LSP SymbolKinds themselves as the kind labels
local kind_labels_mt = {__index = function(_, k) return k end}
local kind_labels = {}
setmetatable(kind_labels, kind_labels_mt)

lsp_status.register_progress()
lsp_status.config({
kind_labels = kind_labels,
indicator_errors = "×",
indicator_warnings = "!",
indicator_info = "i",
indicator_hint = "",
-- the default is a wide codepoint which breaks absolute and relative
-- line counts if placed before airline's Z section
status_symbol = "",
})

-- TODO: get rid of this once an R lang server config is merged into
-- nvim_lsp
Expand Down Expand Up @@ -153,6 +171,7 @@ end
local on_attach = function(client, bufnr)
require('completion').on_attach(client, bufnr)
require('diagnostic').on_attach(client, bufnr)
lsp_status.on_attach(client, bufnr)
-- NOTE: uncomment to inspect features supported by language server
-- print(vim.inspect(client.resolved_capabilities))
if client.resolved_capabilities.document_formatting then
Expand Down Expand Up @@ -212,6 +231,7 @@ for ls, settings in pairs(servers) do
nvim_lsp[ls].setup {
on_attach = on_attach,
settings = settings,
capabilities = vim.tbl_extend("keep", configs[ls].capabilities or {}, lsp_status.capabilities),
}
end

Expand Down
9 changes: 9 additions & 0 deletions nvim/init.vim
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Plug 'junegunn/seoul256.vim'
Plug 'neovim/nvim-lsp'
Plug 'nvim-lua/completion-nvim'
Plug 'nvim-lua/diagnostic-nvim'
Plug 'nvim-lua/lsp-status.nvim'

" nice to have
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Expand Down Expand Up @@ -261,9 +262,17 @@ let g:markdown_fenced_languages = ['python', 'rust',
\ 'conf', 'diff', 'xml', 'systemd'
\ ]

function! LspStatus() abort
let status = luaeval('require("lsp-status").status()')
return trim(status)
endfunction
call airline#parts#define_function('lsp_status', 'LspStatus')
call airline#parts#define_condition('lsp_status', 'luaeval("#vim.lsp.buf_get_clients() > 0")')
let g:airline_powerline_fonts = 1
let g:airline_theme = 'bubblegum'
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#nvimlsp#enabled = 0
let g:airline_section_warning = airline#section#create_right(['lsp_status'])

let g:elm_format_autosave = 1

Expand Down

0 comments on commit 8feb47a

Please sign in to comment.