Commit graph

2635 commits

Author SHA1 Message Date
github-actions[bot]
a4e46becca
chore(main): release 2.30.0
Some checks are pending
CI / ci (push) Waiting to run
🤖 I have created a release *beep* *boop*
---


## [2.30.0](https://github.com/folke/snacks.nvim/compare/v2.29.0...v2.30.0) (2025-11-06)


### Features

* **diff:** prettier commit rendering (git show, diff with header) ([dc2186e](dc2186e572))
* **gh:** add inline review comment annotations to diff viewer ([c83ff8d](c83ff8d598))
* **gh:** create review comments in GitHub PR diff, on diff lines. Closes [#2446](https://github.com/folke/snacks.nvim/issues/2446) ([85bf3f0](85bf3f0123))
* **layout:** allow resizing split layouts. See [#2390](https://github.com/folke/snacks.nvim/issues/2390) ([913379c](913379ccd2))
* **picker.gh_diff:** you can now reply to review comments in diffs with `a`. See [#2446](https://github.com/folke/snacks.nvim/issues/2446) ([c3bda87](c3bda8709a))
* **picker.icons:** make it easier to add custom icon sources ([82e6966](82e69661cd))
* **picker.marks:** added `<c-x>` to delete a mark from the list. See [#2390](https://github.com/folke/snacks.nvim/issues/2390) ([9a04605](9a04605664))
* **picker:** when picker was started from insert mode, return to insert after paste ([a417630](a4176301e3))
* **util.async:** add proper backtrace to unhandled async errors ([01f6cac](01f6cac48f))


### Bug Fixes

* **gh:** force `fancy` diff style for gh pr diff, since that's needed to render/interact with review comments ([bd71cd4](bd71cd4b00))
* **gh:** only skip empty comment reviews. Closes [#2445](https://github.com/folke/snacks.nvim/issues/2445) ([1848d74](1848d74e7c))
* **gh:** pass correct context in gh_perform_action. Closes [#2442](https://github.com/folke/snacks.nvim/issues/2442). Closes [#2443](https://github.com/folke/snacks.nvim/issues/2443) ([13edbc6](13edbc681c))
* **gh:** properly handly pending requests ([7a15e16](7a15e16d01))
* **gh:** use lua to parse dates so we can do this in a fast context ([cd0d6fe](cd0d6fe864))
* **image:** run terminal capability detection synchronous when needed. Closes [#2439](https://github.com/folke/snacks.nvim/issues/2439) ([58f1152](58f11527fe))
* **layout:** ignore very zindex windows for calulating layout zindex, so that it stays below things like notifications ([47340e6](47340e6b0b))
* **lsp:** properly detach buffers on LspDetach. Closes [#2457](https://github.com/folke/snacks.nvim/issues/2457) ([beb995e](beb995e1c6))
* **picker.actions:** don't open a new tab if the current tab is empty. Closes [#2461](https://github.com/folke/snacks.nvim/issues/2461) ([4e2424e](4e2424eca7))
* **picker.diff:** added `showbreak=""` for fancy diff. Closes [#2441](https://github.com/folke/snacks.nvim/issues/2441) ([fb55f7b](fb55f7bf2b))
* **picker.format:** use file for icon. fallback to ft when buffer is not a file. See [#2390](https://github.com/folke/snacks.nvim/issues/2390) ([20ac8bf](20ac8bfc4a))
* **picker.grep_word:** pass `--word-regexp` to `ripgrep` ([6aad368](6aad36810a))
* **picker.highlight:** resolve ([4438ee4](4438ee4770))
* **picker.input:** startinsert when starting the picker from terminal mode. See [#2390](https://github.com/folke/snacks.nvim/issues/2390) ([b2054a3](b2054a3a73))
* **picker.lsp_config:** nil on lsp info ([#2459](https://github.com/folke/snacks.nvim/issues/2459)) ([c5257fa](c5257fa690))
* **scope:** textobjects should use synchronous treesitter parsing. Closes [#2448](https://github.com/folke/snacks.nvim/issues/2448) ([9737c25](9737c25f29))
* **toggle:** set/get raw values for option toggles. See [#2390](https://github.com/folke/snacks.nvim/issues/2390) ([41da728](41da728f02))
* **win:** set `foldcolumn='0'` for minimal style. See [#2390](https://github.com/folke/snacks.nvim/issues/2390) ([195faa0](195faa0646))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
2025-11-06 22:23:04 +01:00
Folke Lemaitre
4e2424eca7
fix(picker.actions): don't open a new tab if the current tab is empty. Closes #2461 2025-11-06 22:21:06 +01:00
folke
aeedfdbb75 chore(build): auto-generated vimdocs 2025-11-06 21:07:09 +00:00
folke
257c1855da chore(build): auto-generated docs 2025-11-06 21:05:42 +00:00
Folke Lemaitre
85bf3f0123
feat(gh): create review comments in GitHub PR diff, on diff lines. Closes #2446 2025-11-06 22:04:47 +01:00
folke
42374e9a6d chore(build): auto-generated vimdocs 2025-11-06 17:40:18 +00:00
folke
5ac617d50d chore(build): auto-generated docs 2025-11-06 17:37:03 +00:00
Folke Lemaitre
c3bda8709a
feat(picker.gh_diff): you can now reply to review comments in diffs with a. See #2446 2025-11-06 18:35:57 +01:00
Folke Lemaitre
47340e6b0b
fix(layout): ignore very zindex windows for calulating layout zindex, so that it stays below things like notifications 2025-11-06 18:25:04 +01:00
Folke Lemaitre
6e16c85212
refactor(picker): generalize line meta data in vim.b.snacks_meta 2025-11-06 18:01:37 +01:00
Folke Lemaitre
7a94861471
style(gh): cleanup 2025-11-06 17:56:29 +01:00
Folke Lemaitre
bd71cd4b00
fix(gh): force fancy diff style for gh pr diff, since that's needed to render/interact with review comments 2025-11-06 17:15:54 +01:00
Folke Lemaitre
01f6cac48f
feat(util.async): add proper backtrace to unhandled async errors 2025-11-06 17:15:20 +01:00
Folke Lemaitre
7a15e16d01
fix(gh): properly handly pending requests 2025-11-06 16:57:21 +01:00
Folke Lemaitre
cd0d6fe864
fix(gh): use lua to parse dates so we can do this in a fast context 2025-11-06 16:16:03 +01:00
Folke Lemaitre
4438ee4770
fix(picker.highlight): resolve
Some checks are pending
CI / ci (push) Waiting to run
2025-11-06 12:55:54 +01:00
EasonMo
c5257fa690
fix(picker.lsp_config): nil on lsp info (#2459)
## Description

It will report message `error: vim/shared.lua:0: t: expected table, got
nil` when execute `Snacks.picker.lsp_config()`.
2025-11-06 12:18:08 +01:00
Folke Lemaitre
c83ff8d598
feat(gh): add inline review comment annotations to diff viewer
Refactors the diff renderer to support displaying GitHub review comments
inline with the relevant diff lines. Links review comments to specific
file positions using reviewThreads data from the GraphQL API, enabling a
more intuitive code review experience directly within the diff view.

- Refactored gh/api.lua to async fetch review comments and threads
- Added annotation support to diff renderer with context object pattern
- Separated diff parsing from formatting for better maintainability
- Integrated review comment positioning via reviewThreads linkage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 12:00:29 +01:00
Folke Lemaitre
beb995e1c6
fix(lsp): properly detach buffers on LspDetach. Closes #2457
Some checks are pending
CI / ci (push) Waiting to run
2025-11-06 07:02:56 +01:00
folke
42a6ba9e5e chore(build): auto-generated vimdocs 2025-11-06 05:52:15 +00:00
folke
5d7c53b4e5 chore(build): auto-generated docs 2025-11-06 05:51:10 +00:00
Folke Lemaitre
58f11527fe
fix(image): run terminal capability detection synchronous when needed. Closes #2439 2025-11-06 06:50:21 +01:00
Folke Lemaitre
93cd1175e6
refactor(gh): render cleanup 2025-11-06 06:50:21 +01:00
Folke Lemaitre
f2b3244ed6
refactor(picker): horizontal rules 2025-11-06 06:50:21 +01:00
folke
741f4b1899 chore(build): auto-generated vimdocs
Some checks are pending
CI / ci (push) Waiting to run
2025-11-05 13:03:47 +00:00
folke
398306873d chore(build): auto-generated docs 2025-11-05 13:02:22 +00:00
Folke Lemaitre
82e69661cd
feat(picker.icons): make it easier to add custom icon sources 2025-11-05 14:01:38 +01:00
Folke Lemaitre
a4176301e3
feat(picker): when picker was started from insert mode, return to insert after paste 2025-11-05 14:01:38 +01:00
folke
b49d11c28a chore(build): auto-generated vimdocs 2025-11-05 11:30:30 +00:00
folke
9f37859245 chore(build): auto-generated docs 2025-11-05 11:29:15 +00:00
Folke Lemaitre
dc2186e572
feat(diff): prettier commit rendering (git show, diff with header) 2025-11-05 12:28:15 +01:00
folke
a276661e2f chore(build): auto-generated vimdocs 2025-11-05 09:31:14 +00:00
folke
32d43299d8 chore(build): auto-generated docs 2025-11-05 09:30:05 +00:00
Folke Lemaitre
9737c25f29
fix(scope): textobjects should use synchronous treesitter parsing. Closes #2448 2025-11-05 10:29:12 +01:00
folke
8ff16ab54d chore(build): auto-generated vimdocs 2025-11-05 08:56:22 +00:00
folke
7f1494c9ed chore(build): auto-generated docs 2025-11-05 08:55:07 +00:00
Folke Lemaitre
6aad36810a
fix(picker.grep_word): pass --word-regexp to ripgrep 2025-11-05 09:54:08 +01:00
Folke Lemaitre
1848d74e7c
fix(gh): only skip empty comment reviews. Closes #2445 2025-11-05 08:39:27 +01:00
Folke Lemaitre
913379ccd2
feat(layout): allow resizing split layouts. See #2390 2025-11-05 08:32:43 +01:00
folke
3b8c6a6126 chore(build): auto-generated vimdocs 2025-11-05 07:19:26 +00:00
folke
0ed1adf732 chore(build): auto-generated docs 2025-11-05 07:18:09 +00:00
Folke Lemaitre
b2054a3a73
fix(picker.input): startinsert when starting the picker from terminal mode. See #2390 2025-11-05 08:10:34 +01:00
Folke Lemaitre
41da728f02
fix(toggle): set/get raw values for option toggles. See #2390 2025-11-05 08:03:03 +01:00
Folke Lemaitre
9a04605664
feat(picker.marks): added <c-x> to delete a mark from the list. See #2390 2025-11-05 07:42:23 +01:00
Folke Lemaitre
20ac8bfc4a
fix(picker.format): use file for icon. fallback to ft when buffer is not a file. See #2390 2025-11-05 07:30:23 +01:00
Folke Lemaitre
195faa0646
fix(win): set foldcolumn='0' for minimal style. See #2390 2025-11-05 07:21:58 +01:00
Folke Lemaitre
13edbc681c
fix(gh): pass correct context in gh_perform_action. Closes #2442. Closes #2443 2025-11-05 07:11:30 +01:00
folke
d6137be7ec chore(build): auto-generated vimdocs 2025-11-05 05:57:49 +00:00
folke
53e4f537ea chore(build): auto-generated docs 2025-11-05 05:56:33 +00:00
Folke Lemaitre
fb55f7bf2b
fix(picker.diff): added showbreak="" for fancy diff. Closes #2441 2025-11-05 06:55:39 +01:00