Skip to content

Commit

Permalink
feat(statusline)!: make default active content include section_lsp()
Browse files Browse the repository at this point in the history
This is a follow up to an update of `section_diagnostics()` which now
does not depend on whether LSP server is attached. As having feedback
about whether or not LSP server is successfully attached is important,
add this indicator to default active content.
  • Loading branch information
echasnovski committed May 23, 2024
1 parent 3fc7872 commit f5695ea
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 53 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@
- BREAKING FEATURE: `section_git()` now prefers using data from 'mini.git' with fallback on pure HEAD data from 'lewis6991/gistigns.nvim'.
- FEATURE: add `section_diff()` to show data from 'mini.diff' with fallback on diff data from 'lewis6991/gistigns.nvim'.
- FEATURE: add `section_lsp()` to show indicator of LSP servers attached to the buffer.
- BREAKING FEATURE: update default active content to use both `section_git()` and `section_diff()`.
- BREAKING FEATURE: update default active content:
- Add `section_diff()` (shows diff data near  icon) following refactor of `section_git()`.
- Add `section_lsp()` (shows number of attached LSP servers near 󰰎 icon) following refactor of `section_diagnostics()`.

## mini.tabline

Expand Down
3 changes: 2 additions & 1 deletion doc/mini-statusline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,15 @@ This function is used as default value for active content:
local git = MiniStatusline.section_git({ trunc_width = 40 })
local diff = MiniStatusline.section_diff({ trunc_width = 75 })
local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 })
local lsp = MiniStatusline.section_lsp({ trunc_width = 75 })
local filename = MiniStatusline.section_filename({ trunc_width = 140 })
local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
local location = MiniStatusline.section_location({ trunc_width = 75 })
local search = MiniStatusline.section_searchcount({ trunc_width = 75 })
return MiniStatusline.combine_groups({
{ hl = mode_hl, strings = { mode } },
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics } },
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics, lsp } },
'%<', -- Mark general truncate point
{ hl = 'MiniStatuslineFilename', strings = { filename } },
'%=', -- End left alignment
Expand Down
6 changes: 4 additions & 2 deletions lua/mini/statusline.lua
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,15 @@
--- local git = MiniStatusline.section_git({ trunc_width = 40 })
--- local diff = MiniStatusline.section_diff({ trunc_width = 75 })
--- local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 })
--- local lsp = MiniStatusline.section_lsp({ trunc_width = 75 })
--- local filename = MiniStatusline.section_filename({ trunc_width = 140 })
--- local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
--- local location = MiniStatusline.section_location({ trunc_width = 75 })
--- local search = MiniStatusline.section_searchcount({ trunc_width = 75 })
---
--- return MiniStatusline.combine_groups({
--- { hl = mode_hl, strings = { mode } },
--- { hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics } },
--- { hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics, lsp } },
--- '%<', -- Mark general truncate point
--- { hl = 'MiniStatuslineFilename', strings = { filename } },
--- '%=', -- End left alignment
Expand Down Expand Up @@ -600,6 +601,7 @@ H.default_content_active = function()
local git = MiniStatusline.section_git({ trunc_width = 40 })
local diff = MiniStatusline.section_diff({ trunc_width = 75 })
local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 })
local lsp = MiniStatusline.section_lsp({ trunc_width = 75 })
local filename = MiniStatusline.section_filename({ trunc_width = 140 })
local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
local location = MiniStatusline.section_location({ trunc_width = 75 })
Expand All @@ -611,7 +613,7 @@ H.default_content_active = function()
-- sections, etc.)
return MiniStatusline.combine_groups({
{ hl = mode_hl, strings = { mode } },
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics } },
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics, lsp } },
'%<', -- Mark general truncate point
{ hl = 'MiniStatuslineFilename', strings = { filename } },
'%=', -- End left alignment
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|aaaaaaaaa │
2|~ │~
3|~ │~
4| Normal  main|bisect (MM)  #4 +3 ~2 -1  E4 W3 I2 H1 <ir-statusline/mocked.lua  lua utf-8[unix] 10B 2/9 1|1│ 2|9 [No Name]
5|/a [2/9]
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|aaaaaaaaa │
2|~ │~
3|~ │~
4| Normal  main|bisect (MM)  #4 +3 ~2 -1  E4 W3 I2 H1 󰰎 + <tatusline/mocked.lua  lua utf-8[unix] 10B 2/9 1|1│ 2|9 [No Name]
5|/a [2/9]

-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|010000000222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222344444444444444444444444444444
2|555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555366666666666666666666666666666
3|555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555366666666666666666666666666666
4|777777778888888888888888888888888888888888888888888888889999999999999999999999999988888888888888888888888777777777777777999999999999999999999999999999
5|444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|0100000002222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223444444444444444444444444444444444444444
2|5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555553666666666666666666666666666666666666666
3|5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555553666666666666666666666666666666666666666
4|7777777788888888888888888888888888888888888888888888888888889999999999999999999999888888888888888888888887777777777777779999999999999999999999999999999999999999
5|4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|aaaaaaaaa │
2|~ │~
3|~ │~
4| N <statusline/mocked.lua  lua 1│ 2 [No Name]
5|/a [2/9]
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|aaaaaaaaa │
2|~ │~
3|~ │~
4| N <statusline/mocked.lua  lua 1│ 2 [No Name]
5|/a [2/9]

-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|010000000222222222222222222222222222222344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
2|555555555555555555555555555555555555555366666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
3|555555555555555555555555555555555555555366666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
4|777888888888888888888888889999999777777888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
5|444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|0100000002222222222222222222222222222223444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
2|5555555555555555555555555555555555555553666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
3|5555555555555555555555555555555555555553666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
4|7778888888888888888888888899999997777778888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
5|4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|aaaaaaaaa │
2|~ │~
3|~ │~
4| N  main|bisect (MM) <ua  lua 1│ 2 [No Name]
5|/a [2/9]
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|aaaaaaaaa │
2|~ │~
3|~ │~
4| N  main|bisect (MM) <ua  lua 1│ 2 [No Name]
5|/a [2/9]

-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|010000000222222222222222222222222222222234444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
2|555555555555555555555555555555555555555536666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
3|555555555555555555555555555555555555555536666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
4|777888888888888888888889999888888877777799999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
5|444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|0100000002222222222222222222222222222222344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
2|5555555555555555555555555555555555555555366666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
3|5555555555555555555555555555555555555555366666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
4|7778888888888888888888899998888888777777999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
5|4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|aaaaaaaaa │
2|~ │~
3|~ │~
4| N  main|bisect (MM)  #4 +3 ~2 -1  E4 W3 I2 H1 <  lua 2/9 1|1│ 2|9 [No Name]
5|/a [2/9]
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|aaaaaaaaa │
2|~ │~
3|~ │~
4| N  main|bisect (MM)  #4 +3 ~2 -1  E4 W3 I2 H1 󰰎 + <lua 2/9 1|1│ 2|9 [No Name]
5|/a [2/9]

-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|010000000222222222222222222222222222222222222222222222222222222222222222222344444444444444444444444444444444444444444444444444444444444444444444444444
2|555555555555555555555555555555555555555555555555555555555555555555555555555366666666666666666666666666666666666666666666666666666666666666666666666666
3|555555555555555555555555555555555555555555555555555555555555555555555555555366666666666666666666666666666666666666666666666666666666666666666666666666
4|777888888888888888888888888888888888888888888888888998888888777777777777777999999999999999999999999999999999999999999999999999999999999999999999999999
5|444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
-|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
1|0100000002222222222222222222222222222222222222222222222222222222222222222223444444444444444444444444444444444444444444444444444444444444444444444444444444444444
2|5555555555555555555555555555555555555555555555555555555555555555555555555553666666666666666666666666666666666666666666666666666666666666666666666666666666666666
3|5555555555555555555555555555555555555555555555555555555555555555555555555553666666666666666666666666666666666666666666666666666666666666666666666666666666666666
4|7778888888888888888888888888888888888888888888888888888888887777777777777779999999999999999999999999999999999999999999999999999999999999999999999999999999999999
5|4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
3 changes: 2 additions & 1 deletion tests/test_statusline.lua
Original file line number Diff line number Diff line change
Expand Up @@ -733,7 +733,7 @@ T['Default content'] = new_set()
T['Default content']['active'] = new_set({
hooks = {
pre_case = function()
child.set_size(5, 150)
child.set_size(5, 160)

mock_devicons()
mock_file(10)
Expand All @@ -742,6 +742,7 @@ T['Default content']['active'] = new_set({
child.lua([[MiniStatusline.section_filename = function() return '%f%m%r' end]])
child.cmd('edit ' .. vim.fn.fnamemodify(mocked_filepath, ':.'))
mock_diagnostics()
mock_lsp()
mock_minigit()
mock_minidiff()
type_keys('/a', '<CR>')
Expand Down

0 comments on commit f5695ea

Please sign in to comment.