Просмотр исходного кода

Show all LSP Clients attached to the Buffer in GalaxyLine Bar (#611)

* [UPDATE] change efm filetypes to only python

* [UPDATE] shows all LSP Clients in galaxyline
Rohit Patil 4 лет назад
Родитель
Сommit
f7132edd54
2 измененных файлов с 31 добавлено и 2 удалено
  1. 1 1
      ftplugin/python.lua
  2. 30 1
      lua/lv-galaxyline/init.lua

+ 1 - 1
ftplugin/python.lua

@@ -26,7 +26,7 @@ require"lspconfig".efm.setup {
     -- init_options = {initializationOptions},
     cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
     init_options = {documentFormatting = true, codeAction = false},
-    filetypes = {"lua", "python", "javascriptreact", "javascript", "typescript","typescriptreact","sh", "html", "css", "yaml", "markdown", "vue"},
+    filetypes = {"python"},
     settings = {
         rootMarkers = {".git/", "requirements.txt"},
         languages = {

+ 30 - 1
lua/lv-galaxyline/init.lua

@@ -178,9 +178,38 @@ table.insert(gls.right, {
     }
 })
 
+local get_lsp_client = function (msg)
+    msg = msg or "No Active LSP Client"
+    local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
+    local clients = vim.lsp.get_active_clients()
+    if next(clients) == nil then
+        return msg
+    end
+    local lsps = ""
+    for _,client in ipairs(clients) do
+        local filetypes = client.config.filetypes
+        if filetypes and vim.fn.index(filetypes, buf_ft) ~=1 then
+            print(client.name)
+            if lsps == "" then
+                print("first", lsps)
+                lsps = client.name
+            else
+                lsps = lsps .. ", " .. client.name
+                print("more", lsps)
+            end
+        end
+    end
+    if lsps == "" then
+        return msg
+    else
+        return lsps
+    end
+end
+
+
 table.insert(gls.right, {
     ShowLspClient = {
-        provider = 'GetLspClient',
+        provider = get_lsp_client,
         condition = function()
             local tbl = {['dashboard'] = true, [' '] = true}
             if tbl[vim.bo.filetype] then return false end