From daab7a91c0aafd317d4a5dc19a07efdb9bb99195 Mon Sep 17 00:00:00 2001 From: Avimitin Date: Thu, 1 Feb 2024 18:49:48 +0800 Subject: [PATCH 1/3] Add support for global statusline Signed-off-by: Avimitin --- lua/galaxyline.lua | 21 ++++++++++++++++++--- plugin/galaxyline.vim | 4 ++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/lua/galaxyline.lua b/lua/galaxyline.lua index 765dcec..6b6a704 100644 --- a/lua/galaxyline.lua +++ b/lua/galaxyline.lua @@ -2,6 +2,7 @@ local vim = vim local uv = vim.loop local M = {} +M.global_status_line = false M.section = {} M.section.left = {} M.section.right = {} @@ -208,7 +209,12 @@ async_combin = uv.new_async(vim.schedule_wrap(function() line = short_line end - vim.wo.statusline = line + if M.global_status_line then + vim.go.statusline = line + else + vim.wo.statusline = line + end + M.init_colorscheme() end)) @@ -230,7 +236,12 @@ function M.init_colorscheme() end function M.disable_galaxyline() - vim.wo.statusline = '' + if M.global_status_line then + vim.go.statusline = '' + else + vim.wo.statusline = '' + end + vim.api.nvim_command('augroup galaxyline') vim.api.nvim_command('autocmd!') vim.api.nvim_command('augroup END!') @@ -243,7 +254,11 @@ function M.galaxyline_augroup() local command = string.format('autocmd %s * lua require("galaxyline").load_galaxyline()',def) vim.api.nvim_command(command) end - vim.api.nvim_command('autocmd WinLeave * lua require("galaxyline").inactive_galaxyline()') + + if not M.global_status_line then + vim.api.nvim_command('autocmd WinLeave * lua require("galaxyline").inactive_galaxyline()') + end + vim.api.nvim_command('augroup END') end diff --git a/plugin/galaxyline.vim b/plugin/galaxyline.vim index 8ae0d0b..73b8669 100644 --- a/plugin/galaxyline.vim +++ b/plugin/galaxyline.vim @@ -12,6 +12,10 @@ endif let g:loaded_galaxyline = 1 +if &laststatus == 3 + lua require('galaxyline').global_status_line = true +endif + lua require('galaxyline').galaxyline_augroup() let &cpo = s:save_cpo From 8efeb1cb4bcd88761351723a5cc34c78c43524c3 Mon Sep 17 00:00:00 2001 From: Avimitin Date: Thu, 3 Apr 2025 17:47:14 +0800 Subject: [PATCH 2/3] Fix deprecated buf_get_client call Signed-off-by: Avimitin --- lua/galaxyline/condition.lua | 2 +- lua/galaxyline/provider_diagnostic.lua | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lua/galaxyline/condition.lua b/lua/galaxyline/condition.lua index a0a0628..894198a 100644 --- a/lua/galaxyline/condition.lua +++ b/lua/galaxyline/condition.lua @@ -33,7 +33,7 @@ function M.hide_in_width() end function M.check_active_lsp() - local clients = vim.lsp.buf_get_clients() + local clients = vim.lsp.get_clients() if next(clients) == nil then return false end diff --git a/lua/galaxyline/provider_diagnostic.lua b/lua/galaxyline/provider_diagnostic.lua index 03146cc..2141972 100644 --- a/lua/galaxyline/provider_diagnostic.lua +++ b/lua/galaxyline/provider_diagnostic.lua @@ -14,7 +14,7 @@ end -- nvim-lspconfig -- see https://github.com/neovim/nvim-lspconfig local function get_nvim_lsp_diagnostic(diag_type) - if next(lsp.buf_get_clients(0)) == nil then return '' end + if next(lsp.get_clients({ bufnr = 0 })) == nil then return '' end local active_clients = lsp.get_active_clients() if active_clients then @@ -26,7 +26,7 @@ end function M.get_diagnostic_error() if vim.fn.exists('*coc#rpc#start_server') == 1 then return get_coc_diagnostic('error') - elseif not vim.tbl_isempty(lsp.buf_get_clients(0)) then + elseif not vim.tbl_isempty(lsp.get_clients({ bufnr = 0 })) then return get_nvim_lsp_diagnostic(diagnostic.severity.ERROR) end return '' @@ -35,7 +35,7 @@ end function M.get_diagnostic_warn() if vim.fn.exists('*coc#rpc#start_server') == 1 then return get_coc_diagnostic('warning') - elseif not vim.tbl_isempty(lsp.buf_get_clients(0)) then + elseif not vim.tbl_isempty(lsp.get_clients({ bufnr = 0 })) then return get_nvim_lsp_diagnostic(diagnostic.severity.WARN) end return '' @@ -44,7 +44,7 @@ end function M.get_diagnostic_hint() if vim.fn.exists('*coc#rpc#start_server') == 1 then return get_coc_diagnostic('hint') - elseif not vim.tbl_isempty(lsp.buf_get_clients(0)) then + elseif not vim.tbl_isempty(lsp.get_clients({ bufnr = 0 })) then return get_nvim_lsp_diagnostic(diagnostic.severity.HINT) end return '' @@ -53,7 +53,7 @@ end function M.get_diagnostic_info() if vim.fn.exists('*coc#rpc#start_server') == 1 then return get_coc_diagnostic('information') - elseif not vim.tbl_isempty(lsp.buf_get_clients(0)) then + elseif not vim.tbl_isempty(lsp.get_clients({ bufnr = 0 })) then return get_nvim_lsp_diagnostic(diagnostic.severity.INFO) end return '' From c4801de4bad71e0a38cab8e5e703524c97496812 Mon Sep 17 00:00:00 2001 From: Avimitin Date: Thu, 3 Apr 2025 17:49:38 +0800 Subject: [PATCH 3/3] Fix deprecated get_active_clients call Signed-off-by: Avimitin --- lua/galaxyline/provider_diagnostic.lua | 2 +- lua/galaxyline/provider_lsp.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/galaxyline/provider_diagnostic.lua b/lua/galaxyline/provider_diagnostic.lua index 2141972..6206ffe 100644 --- a/lua/galaxyline/provider_diagnostic.lua +++ b/lua/galaxyline/provider_diagnostic.lua @@ -15,7 +15,7 @@ end -- see https://github.com/neovim/nvim-lspconfig local function get_nvim_lsp_diagnostic(diag_type) if next(lsp.get_clients({ bufnr = 0 })) == nil then return '' end - local active_clients = lsp.get_active_clients() + local active_clients = lsp.get_clients() if active_clients then local result = diagnostic.get(vim.api.nvim_get_current_buf(), { severity = diag_type }) diff --git a/lua/galaxyline/provider_lsp.lua b/lua/galaxyline/provider_lsp.lua index 0ae84cf..61b8a53 100644 --- a/lua/galaxyline/provider_lsp.lua +++ b/lua/galaxyline/provider_lsp.lua @@ -1,7 +1,7 @@ local get_lsp_client = function (msg) msg = msg or 'No Active Lsp' - local buf_ft = vim.api.nvim_buf_get_option(0,'filetype') - local clients = vim.lsp.get_active_clients() + local buf_ft = vim.api.nvim_get_option_value('filetype', {buf = 0}) + local clients = vim.lsp.get_clients() if next(clients) == nil then return msg end