aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lua/pml68/settings.lua36
1 files changed, 35 insertions, 1 deletions
diff --git a/lua/pml68/settings.lua b/lua/pml68/settings.lua
index 33e7fd5..f862d85 100644
--- a/lua/pml68/settings.lua
+++ b/lua/pml68/settings.lua
@@ -14,6 +14,39 @@ local function branch_name()
end
end
+
+local function get_attached_clients()
+ local buf_clients = vim.lsp.get_active_clients({ bufnr = 0 })
+ if #buf_clients == 0 then
+ return "LSP Inactive"
+ end
+
+ local buf_ft = vim.bo.filetype
+ local buf_client_names = {}
+
+ for _, client in pairs(buf_clients) do
+ table.insert(buf_client_names, client.name)
+ end
+
+ local unique_client_names = {}
+ for _, client_name_target in ipairs(buf_client_names) do
+ local is_duplicate = false
+ for _, client_name_compare in ipairs(unique_client_names) do
+ if client_name_target == client_name_compare then
+ is_duplicate = true
+ end
+ end
+ if not is_duplicate then
+ table.insert(unique_client_names, client_name_target)
+ end
+ end
+
+ local client_names_str = table.concat(unique_client_names, ", ")
+ local language_servers = string.format("[%s]", client_names_str)
+
+ return language_servers
+end
+
vim.api.nvim_create_autocmd({ "FileType", "BufEnter", "FocusGained" }, {
callback = function()
vim.b.branch_name = branch_name()
@@ -26,7 +59,8 @@ function Status_Line()
.. " %f "
.. vim.b.branch_name
.. " %m"
- .. " %="
+ .. " %= "
+ .. get_attached_clients()
.. " [%{&filetype}]"
.. " %l:%c "
end