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
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
CI / ci (push) Waiting to run
2025-11-06 07:02:56 +01: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 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 Lemaitre
dc2186e572
feat(diff): prettier commit rendering (git show, diff with header)
2025-11-05 12:28:15 +01:00
Folke Lemaitre
9737c25f29
fix(scope): textobjects should use synchronous treesitter parsing. Closes #2448
2025-11-05 10:29:12 +01: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 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 Lemaitre
fb55f7bf2b
fix(picker.diff): added showbreak="" for fancy diff. Closes #2441
2025-11-05 06:55:39 +01:00
github-actions[bot]
6121b40a2d
chore(main): release 2.29.0 ( #2408 )
...
CI / ci (push) Waiting to run
🤖 I have created a release *beep* *boop*
---
##
[2.29.0](https://github.com/folke/snacks.nvim/compare/v2.28.0...v2.29.0 )
(2025-11-04)
### Features
* **gh.diff:** show git status in PR diff
([c671d06 ](c671d062d1 ))
* **gh:** added reviews and nice diffs to gh buffer views. See
[#2411 ](https://github.com/folke/snacks.nvim/issues/2411 )
([1335ca1 ](1335ca1956 ))
* **gh:** allow to update pr branch
([#2419 ](https://github.com/folke/snacks.nvim/issues/2419 ))
([f75f307 ](f75f307af3 ))
* **gh:** use new diff renderer for gh pr reviews
([714edec ](714edec900 ))
* **gh:** when on a review comment, the `gh_comment` action will now do
a reply instead of a top-level comment. Fixes
[#2410 ](https://github.com/folke/snacks.nvim/issues/2410 )
([a4f2b9d ](a4f2b9da2d ))
* **gh:** you can now use `Snacks.picker.gh_actions()` directly to see
actions for the checked out PR
([d0d10f6 ](d0d10f6d13 ))
* **picker.diff:** new fancy diff renderer
([22eea90 ](22eea90a95 ))
* **picker.git_diff:** show proper git status for git diff files
([ab48eeb ](ab48eebeb3 ))
* **picker.git_diff:** show renames
([77609a0 ](77609a0013 ))
* **picker.lsp_config:** added server/dynamic capabilities to preview
([da14fac ](da14fac1e5 ))
* **picker:** consolidate all diff options under `opts.previewers.diff`.
Default style is `fancy`
([b65b06c ](b65b06ca0e ))
* **zen:** added `center` option that defaults to `true` for zen mode
and `false` for zoom mode. Closes
[#2422 ](https://github.com/folke/snacks.nvim/issues/2422 )
([3c2d791 ](3c2d79162f ))
### Bug Fixes
* **dashboard:** start job after the terminal window is shown to make
sure it has the correct size. Closes
[#2421 ](https://github.com/folke/snacks.nvim/issues/2421 )
([e440df3 ](e440df387d ))
* **diff:** fallback if `Normal` has no fg color. Closes
[#2436 ](https://github.com/folke/snacks.nvim/issues/2436 )
([7f453c4 ](7f453c4f32 ))
* **diff:** improved diff parsing. Closes
[#2424 ](https://github.com/folke/snacks.nvim/issues/2424 ). Closes
[#2420 ](https://github.com/folke/snacks.nvim/issues/2420 )
([b6e4eb7 ](b6e4eb7e60 ))
* **diff:** remove diff injections. Closes
[#2406 ](https://github.com/folke/snacks.nvim/issues/2406 )
([ecc21bb ](ecc21bbb9b ))
* **gh.api:** get repo from upstream remote if availble. fallback to
origin
([5043637 ](50436373c2 ))
* **gh.api:** pass repo to cmd. Closes
[#2415 ](https://github.com/folke/snacks.nvim/issues/2415 )
([78046eb ](78046eb481 ))
* **gh.diff:** fixed rendering of diff header when wrap=true
([07c569d ](07c569dfd5 ))
* **gh.item:** better method to extract repo from gh url. Closes
[#2418 ](https://github.com/folke/snacks.nvim/issues/2418 )
([52d544c ](52d544cc64 ))
* **gh.render:** added support for older `StatusContext` checks. Closes
[#2407 ](https://github.com/folke/snacks.nvim/issues/2407 )
([74864a7 ](74864a7bb8 ))
* **gh.render:** use check name. See
[#2407 ](https://github.com/folke/snacks.nvim/issues/2407 )
([6f60105 ](6f60105302 ))
* **gh:** better way of determining current PR
([bd3c1a0 ](bd3c1a0714 ))
* **gh:** input for api should be a table, not a string. Closes
[#2427 ](https://github.com/folke/snacks.nvim/issues/2427 )
([1b3e409 ](1b3e4090a0 ))
* **image:** allow to fully disable all image rendering with
`opts.image.enabled = false`. Closes
[#2404 ](https://github.com/folke/snacks.nvim/issues/2404 )
([34a6591 ](34a6591a61 ))
* **image:** disable image conversion error notifications by default
([cfcf525 ](cfcf525207 ))
* **lsp:** check lsp handlers after LspAttach, since attached_buffers
won't have been set
([1861b0a ](1861b0a8ea ))
* **picker.actions:** only allow stage/unstage/restore for some diffs
([9cde35b ](9cde35b7b1 ))
* **picker.diff:** move git status calc based on diff to format
([b553c18 ](b553c18c26 ))
* **picker.diff:** parse full diff including diff and hunk headers.
Closes [#2429 ](https://github.com/folke/snacks.nvim/issues/2429 )
([53d8012 ](53d8012e5e ))
* **picker.git_diff:** don't show git status, disable
stage/unstage/restore when merge-base is set. Closes
[#2397 ](https://github.com/folke/snacks.nvim/issues/2397 )
([6ff82ca ](6ff82cab7b ))
* **picker.highlight:** resolve all text chunks when needed. Not just
the first.
([962aadd ](962aadd310 ))
* **picker.undo:** cleanup tmp files in `async:on("done")`. Closes
[#2434 ](https://github.com/folke/snacks.nvim/issues/2434 )
([3038dac ](3038dac460 ))
* **picker.undo:** set initial target to the current undo entry. See
[#2434 ](https://github.com/folke/snacks.nvim/issues/2434 )
([dc245ef ](dc245ef04e ))
* **picker:** don't focus a picker window when toggling a window and
picker wasn't current. closes
[#2417 ](https://github.com/folke/snacks.nvim/issues/2417 )
([b80b330 ](b80b330091 ))
* revert rename of actions.lua to tomdar87@outlook.com
([#2423 ](https://github.com/folke/snacks.nvim/issues/2423 ))
([8bb3ad6 ](8bb3ad6c53 ))
* **win:** fixed fixbuf. Closes
[#2409 ](https://github.com/folke/snacks.nvim/issues/2409 )
([2099572 ](2099572fe8 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-04 22:27:14 +01:00
Folke Lemaitre
7f453c4f32
fix(diff): fallback if Normal has no fg color. Closes #2436
2025-11-04 22:23:27 +01:00
Folke Lemaitre
b65b06ca0e
feat(picker): consolidate all diff options under opts.previewers.diff. Default style is fancy
2025-11-04 22:22:17 +01:00
Folke Lemaitre
714edec900
feat(gh): use new diff renderer for gh pr reviews
2025-11-04 22:22:17 +01:00
Folke Lemaitre
22eea90a95
feat(picker.diff): new fancy diff renderer
2025-11-04 22:22:17 +01:00
Folke Lemaitre
c09740eef6
style(picker.diff): new diff luals options
2025-11-04 06:44:08 +01:00
Folke Lemaitre
dc245ef04e
fix(picker.undo): set initial target to the current undo entry. See #2434
2025-11-04 06:35:52 +01:00
Folke Lemaitre
3038dac460
fix(picker.undo): cleanup tmp files in async:on("done"). Closes #2434
2025-11-04 06:35:09 +01:00
Folke Lemaitre
53d8012e5e
fix(picker.diff): parse full diff including diff and hunk headers. Closes #2429
CI / ci (push) Waiting to run
2025-11-03 21:50:49 +01:00
Folke Lemaitre
2e2cf50514
refactor(picker.highlight): added render and set now uses render with append=true
2025-11-03 18:52:45 +01:00
Folke Lemaitre
1b3e4090a0
fix(gh): input for api should be a table, not a string. Closes #2427
2025-11-03 17:13:24 +01:00
Folke Lemaitre
e440df387d
fix(dashboard): start job after the terminal window is shown to make sure it has the correct size. Closes #2421
2025-11-03 17:10:45 +01:00
Folke Lemaitre
c671d062d1
feat(gh.diff): show git status in PR diff
2025-11-03 13:33:51 +01:00
Folke Lemaitre
9cde35b7b1
fix(picker.actions): only allow stage/unstage/restore for some diffs
2025-11-03 13:33:36 +01:00
Folke Lemaitre
b553c18c26
fix(picker.diff): move git status calc based on diff to format
2025-11-03 13:31:40 +01:00
Folke Lemaitre
77609a0013
feat(picker.git_diff): show renames
2025-11-03 13:17:18 +01:00
Folke Lemaitre
962aadd310
fix(picker.highlight): resolve all text chunks when needed. Not just the first.
2025-11-03 13:17:04 +01:00
Folke Lemaitre
ab48eebeb3
feat(picker.git_diff): show proper git status for git diff files
2025-11-03 13:06:44 +01:00
Folke Lemaitre
765d50e820
style: stylua
2025-11-03 12:51:54 +01:00
Folke Lemaitre
b6e4eb7e60
fix(diff): improved diff parsing. Closes #2424 . Closes #2420
2025-11-03 12:43:01 +01:00
Jonas Dyrlie
8bb3ad6c53
fix: revert rename of actions.lua to tomdar87@outlook.com ( #2423 )
...
## Description
<!-- Describe the big picture of your changes to communicate to the
maintainers
why we should accept this pull request. -->
Seems like an unintentional change from this PR
https://github.com/folke/snacks.nvim/pull/2419
```
Lua callback: ....local/share/nvim/lazy/snacks.nvim/lua/snacks/gh/buf.lua:1: module 'snacks.gh.actions' not found:
no field package.preload['snacks.gh.actions']
cache_loader: module 'snacks.gh.actions' not found
cache_loader_lib: module 'snacks.gh.actions' not found
```
## Related Issue(s)
<!--
If this PR fixes any issues, please link to the issue here.
- Fixes #<issue_number>
-->
## Screenshots
<!-- Add screenshots of the changes if applicable. -->
2025-11-03 08:37:20 +01:00
Folke Lemaitre
52d544cc64
fix(gh.item): better method to extract repo from gh url. Closes #2418
2025-11-03 08:16:26 +01:00
Tom Darneix
f75f307af3
feat(gh): allow to update pr branch ( #2419 )
...
## Description
This adds a new gh cli actions that update a PR branch using `gh
update-branch <pr>`
## Related Issue(s)
None
## Screenshots
https://github.com/user-attachments/assets/d6b5f1f6-bb49-4b58-8f74-ce527cdeb9d1
2025-11-03 08:02:20 +01:00
Folke Lemaitre
3c2d79162f
feat(zen): added center option that defaults to true for zen mode and false for zoom mode. Closes #2422
2025-11-03 07:57:43 +01:00
Folke Lemaitre
da14fac1e5
feat(picker.lsp_config): added server/dynamic capabilities to preview
2025-11-03 07:29:38 +01:00