Skip to content

Commit

Permalink
feat(deps): add MiniDepsMsgBreaking highlight group
Browse files Browse the repository at this point in the history
Resolve #905
  • Loading branch information
echasnovski committed May 31, 2024
1 parent a1164b3 commit 5ce69e4
Show file tree
Hide file tree
Showing 9 changed files with 117 additions and 2 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@

- FEATURE: Support dot-repeat after initial commenting is done for visual selection; repeating is done for same relative range.

## mini.deps

- FEATURE: add `MiniDepsMsgBreaking` highlight group for messages indicating a breaking change in a conventional commit style.

## mini.diff

- Introduction of a new module.
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ Here is a list of all highlight groups defined inside 'mini.nvim' modules. See d
- `MiniDepsChangeRemoved`
- `MiniDepsHint`
- `MiniDepsInfo`
- `MiniDepsMsgBreaking`
- `MiniDepsPlaceholder`
- `MiniDepsTitle`
- `MiniDepsTitleError`
Expand Down
1 change: 1 addition & 0 deletions doc/mini-deps.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ default |MiniDeps.update()| and |MiniDeps.clean()|.
* `MiniDepsChangeRemoved` - removed change (commit) during update.
* `MiniDepsHint` - various hints.
* `MiniDepsInfo` - various information.
* `MiniDepsMsgBreaking` - message for (conventional commit) breaking change.
* `MiniDepsPlaceholder` - placeholder when there is no valuable information.
* `MiniDepsTitle` - various titles.
* `MiniDepsTitleError` - title when plugin had errors during update.
Expand Down
1 change: 1 addition & 0 deletions lua/mini/base16.lua
Original file line number Diff line number Diff line change
Expand Up @@ -697,6 +697,7 @@ H.apply_palette = function(palette, use_cterm)
hi('MiniDepsChangeRemoved', {link='diffRemoved'})
hi('MiniDepsHint', {link='DiagnosticHint'})
hi('MiniDepsInfo', {link='DiagnosticInfo'})
hi('MiniDepsMsgBreaking', {link='DiagnosticWarn'})
hi('MiniDepsPlaceholder', {link='Comment'})
hi('MiniDepsTitle', {link='Title'})
hi('MiniDepsTitleError', {link='DiffDelete'})
Expand Down
3 changes: 3 additions & 0 deletions lua/mini/deps.lua
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
--- * `MiniDepsChangeRemoved` - removed change (commit) during update.
--- * `MiniDepsHint` - various hints.
--- * `MiniDepsInfo` - various information.
--- * `MiniDepsMsgBreaking` - message for (conventional commit) breaking change.
--- * `MiniDepsPlaceholder` - placeholder when there is no valuable information.
--- * `MiniDepsTitle` - various titles.
--- * `MiniDepsTitleError` - title when plugin had errors during update.
Expand Down Expand Up @@ -837,6 +838,7 @@ H.create_default_hl = function()
hi('MiniDepsChangeRemoved', { link = has_core_diff_hl and 'Removed' or 'diffRemoved' })
hi('MiniDepsHint', { link = 'DiagnosticHint' })
hi('MiniDepsInfo', { link = 'DiagnosticInfo' })
hi('MiniDepsMsgBreaking', { link = 'DiagnosticWarn' })
hi('MiniDepsPlaceholder', { link = 'Comment' })
hi('MiniDepsTitle', { link = 'Title' })
hi('MiniDepsTitleError', { link = 'DiffDelete' })
Expand Down Expand Up @@ -1396,6 +1398,7 @@ H.update_add_syntax = function()
syntax match MiniDepsHint "\(^State.\+\)\@<=(.\+)$"
syntax match MiniDepsChangeAdded "^> .*$"
syntax match MiniDepsChangeRemoved "^< .*$"
syntax match MiniDepsMsgBreaking "^ \S\+!: .*$"
syntax match MiniDepsPlaceholder "^<.*>$"
]])
end
Expand Down
1 change: 1 addition & 0 deletions lua/mini/hues.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1077,6 +1077,7 @@ H.apply_colorscheme = function(config)
hi('MiniDepsChangeRemoved', { link='diffRemoved' })
hi('MiniDepsHint', { link='DiagnosticHint' })
hi('MiniDepsInfo', { link='DiagnosticInfo' })
hi('MiniDepsMsgBreaking', { link='DiagnosticWarn' })
hi('MiniDepsPlaceholder', { link='Comment' })
hi('MiniDepsTitle', { link='Title' })
hi('MiniDepsTitleError', { link='DiffDelete' })
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
--|---------|---------|---------|---------|---------|---------|---------|---------|
01| [No Name] m//confirm-update X
02|This is a confirmation report before an update.
03|
04|Line `+++ <plugin_name> +++` means plugin will be updated.
05|See update details below it.
06|Changes starting with ">"/"<" will be added/removed.
07|Remove the line to not update that plugin.
08|
09|Line `--- <plugin_name> ---` means plugin has nothing to update.
10|
11|Line `!!! <plugin_name> !!!` means plugin had an error and won't be updated.
12|See error details below it.
13|
14|Use regular fold keys (`zM`, `zR`, etc.) to manage shorter view.
15|To finish update, write this buffer (for example, with `:write` command).
16|To cancel update, close this window (for example, with `:close` command).
17|
18|+++ plugin_1 +++
19|Path: MOCKDIR/pack/deps/opt/plugin_1
20|Source: https://github.com/user/plugin_1
21|State before: sha1head
22|State after: wow1head (main)
23|
24|Pending updates from `main`:
25|< sha2head | 2024-01-02 01:01:01 +0200 | Neo McVim
26| feat!: a breaking feature
27|> new2head | 2024-01-02 02:02:02 +0200 | Neo McVim
28| fix(deps)!: a breaking fix
29|> wow2head | 2024-01-02 03:03:03 +0200 | Neo McVim
30| fix: not a fix!: breaking change
31|~
32|~
33|

--|---------|---------|---------|---------|---------|---------|---------|---------|
01|00000000000111111111111111111100000000000000000000000000000000000000000000000000
02|22222222222222222222222222222222222222222222222333333333333333333333333333333333
03|33333333333333333333333333333333333333333333333333333333333333333333333333333333
04|22222222222222222222222222222222222222222222222222222222223333333333333333333333
05|22222222222222222222222222223333333333333333333333333333333333333333333333333333
06|22222222222222222222222222222222222222222222222222223333333333333333333333333333
07|22222222222222222222222222222222222222222233333333333333333333333333333333333333
08|33333333333333333333333333333333333333333333333333333333333333333333333333333333
09|22222222222222222222222222222222222222222222222222222222222222223333333333333333
10|33333333333333333333333333333333333333333333333333333333333333333333333333333333
11|22222222222222222222222222222222222222222222222222222222222222222222222222223333
12|22222222222222222222222222233333333333333333333333333333333333333333333333333333
13|33333333333333333333333333333333333333333333333333333333333333333333333333333333
14|22222222222222222222222222222222222222222222222222222222222222223333333333333333
15|22222222222222222222222222222222222222222222222222222222222222222222222223333333
16|22222222222222222222222222222222222222222222222222222222222222222222222223333333
17|33333333333333333333333333333333333333333333333333333333333333333333333333333333
18|44444444444444443333333333333333333333333333333333333333333333333333333333333333
19|33333333333333555555555555555555555555555555333333333333333333333333333333333333
20|33333333333333555555555555555555555555555555553333333333333333333333333333333333
21|33333333333333555555553333333333333333333333333333333333333333333333333333333333
22|33333333333333555555553222222333333333333333333333333333333333333333333333333333
23|33333333333333333333333333333333333333333333333333333333333333333333333333333333
24|33333333333333333333333333333333333333333333333333333333333333333333333333333333
25|66666666666666666666666666666666666666666666666666333333333333333333333333333333
26|77777777777777777777777777733333333333333333333333333333333333333333333333333333
27|88888888888888888888888888888888888888888888888888333333333333333333333333333333
28|77777777777777777777777777773333333333333333333333333333333333333333333333333333
29|88888888888888888888888888888888888888888888888888333333333333333333333333333333
30|33333333333333333333333333333333333333333333333333333333333333333333333333333333
31|99999999999999999999999999999999999999999999999999999999999999999999999999999999
32|99999999999999999999999999999999999999999999999999999999999999999999999999999999
33|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
35 changes: 35 additions & 0 deletions tests/test_deps.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1431,6 +1431,41 @@ T['update()']['can fold in confirm buffer'] = function()
eq(child.wo.foldlevel, 0)
end

T['update()']['can highlight breaking changes'] = function()
child.set_size(33, 80)

add('plugin_1')

local plugin_1_log = table.concat({
'< sha2head | 2024-01-02 01:01:01 +0200 | Neo McVim',
' feat!: a breaking feature',
'> new2head | 2024-01-02 02:02:02 +0200 | Neo McVim',
' fix(deps)!: a breaking fix',
'> wow2head | 2024-01-02 03:03:03 +0200 | Neo McVim',
' fix: not a fix!: breaking change',
}, '\n')
child.lua('_G.plugin_1_log = ' .. vim.inspect(plugin_1_log))

child.lua([[
_G.stdio_queue = {
{ out = 'git version 2.43.0'}, -- Check Git executable
{ out = 'https://github.com/user/plugin_1' }, -- Get source from `origin` in plugin_1
{ out = 'sha1head' }, -- Get `HEAD` in plugin_1
{ out = 'origin/main' }, -- Get default branch in plugin_1
{}, -- Fetch in plugin_1
{ out = 'origin/main' }, -- Check if `checkout` is origin branch in plugin_1
{ out = 'wow1head' }, -- Get commit of `checkout` in plugin_1
{ out = _G.plugin_1_log }, -- Get log of `checkout` changes in plugin_1
}
]])

update()

-- Should show confirmation buffer with highlighted breaking messages
mock_hide_path(test_dir_absolute)
child.expect_screenshot()
end

T['update()']['can work with non-default branches'] = function()
child.set_size(32, 80)

Expand Down
4 changes: 2 additions & 2 deletions tests/test_extra.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2058,7 +2058,7 @@ T['pickers']['hl_groups()']['works'] = function()
child.lua_notify('_G.return_item = MiniExtra.pickers.hl_groups()')
validate_picker_name('Highlight groups')
type_keys('^Diff')
child.expect_screenshot()
child.expect_screenshot({ ignore_lines = { 9 } })

-- Should use same group for line highlighting
local matches = get_picker_matches().all
Expand All @@ -2071,7 +2071,7 @@ T['pickers']['hl_groups()']['works'] = function()

-- Should have proper preview
type_keys('<Tab>')
child.expect_screenshot()
child.expect_screenshot({ ignore_lines = { 9 } })

-- Should properly choose
type_keys('<CR>')
Expand Down

0 comments on commit 5ce69e4

Please sign in to comment.