Commit graph

2209 commits

Author SHA1 Message Date
Folke Lemaitre
f78ad177bf
style(picker): cleanup 2025-10-20 23:00:51 +02:00
Folke Lemaitre
af88de3c23
fix(picker.highlight): correctly updated offsets after resolving formatting 2025-10-20 22:59:43 +02:00
Folke Lemaitre
1060673632
feat(picker): added support for resolvable format items 2025-10-20 22:38:20 +02:00
Folke Lemaitre
b1b38bdc46
Merge branch 'main' into main 2025-10-20 12:35:16 -07:00
folke
475fb69947 chore(build): auto-generate docs 2025-10-20 18:10:20 +00:00
folke
3fd2acb72d chore(build): auto-generate docs 2025-10-20 18:09:27 +00:00
Mohamed Boussaffa
6af1e76758
fix(picker.qflist): error with qflist picker when the list contains invalid items (#2293)
## Description

There is an issue with the quick fix list picker
This happens when list contains some incomplete or invalid items.
The fallback mechanism in the picker have 2 typos that trigger an error
trap

* The item line number field is item.lnum and not item.line
* A check is done on item.text twice in the same if condition, it should
to item.text and item.lnum

## 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-10-20 20:09:08 +02:00
Folke Lemaitre
9b80137ace
feat(input): added support for a custom highlight functions. Closes #2216 2025-10-20 20:08:22 +02:00
Folke Lemaitre
595963140e
fix(picker.recent): include closed / unlisted buffers in recent. Closes #1745 2025-10-20 18:42:26 +02:00
folke
fd1640afe6 chore(build): auto-generate docs 2025-10-20 16:28:20 +00:00
Folke Lemaitre
30687d195b
feat(image): added clear fun. Closes #1394 2025-10-20 18:27:14 +02:00
Folke Lemaitre
a9275cbe57
test: fix matcher tests 2025-10-20 17:57:23 +02:00
Folke Lemaitre
774bf9d8c8
fix(util): only use mini.icons if it has been setup. Closes #2199 2025-10-20 17:53:11 +02:00
Glenn Waters
a32735b9e8
fix(picker.core): respect camelCase for scoring when ignorecase is true (#1601)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
Because the search item was lowercased before it was scored, camelCase
would not be triggered to give the intended bonus.

This was the simplest and fastest (code execution wise) fix I could see.

## Related Issue(s)
Fixes: https://github.com/folke/snacks.nvim/issues/1599

## Screenshots

<!-- Add screenshots of the changes if applicable. -->
2025-10-20 08:50:18 -07:00
folke
049387885a chore(build): auto-generate docs 2025-10-20 15:47:16 +00:00
Folke Lemaitre
f39d1144e7
fix(picker.man): make tab/split/vsplit work. Closes #2171 2025-10-20 17:46:10 +02:00
folke
c01215c74f chore(build): auto-generate docs 2025-10-20 15:32:48 +00:00
Folke Lemaitre
abee3c9eff
fix(picker.git): use unmerged icon for unmerged. Fixes #1531 2025-10-20 17:31:43 +02:00
folke
149971d1b3 chore(build): auto-generate docs
Some checks are pending
CI / ci (push) Waiting to run
2025-10-20 14:03:58 +00:00
Aaron Weisberg
a012f394c9
fix(picker.git_diff): use absolute path when adding buffer to avoid duplicates (#1819)
## Description

Uses absolute path for setting the cursor
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

Fixes #1818 
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

---------

Co-authored-by: Aaron Weisberg <aaron.weisberg@quizlet.com>
2025-10-20 16:03:03 +02:00
Folke Lemaitre
259cb01d7d
style: format 2025-10-20 15:58:58 +02:00
folke
0fc3e27203 chore(build): auto-generate docs 2025-10-20 13:55:28 +00:00
Daniel Danner
93f43ca10f
fix(git): set diff.noprefix=false for git diff to ensure correct format (#2174)
## Description

Parsing the output of git diff here depends on its exact format. The
user environment might be set up with diff.noprefix, in which case the
parsing fails, because the `a/` and `b/` prefixes for the paths is
missing. Passing `-c diff.noprefix=false` to the call overrides this.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## 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-10-20 15:54:26 +02:00
folke
f5ff06330e chore(build): auto-generate docs 2025-10-20 13:54:10 +00:00
Zhou Fang
bd6ee23546
feat(picker): add toggle_regex for grep (#1594)
## For people who want to use it NOW!

Use `init` to hack the latest version before this PR merge.
```lua
{
  "folke/snacks.nvim",
  init = function()
    local sources = require("snacks.picker.config.sources")
    sources.grep.toggles = {
      regex = { value = true },
    }
    sources.grep.win = {
      input = {
        keys = {
          ["<a-r>"] = { "toggle_regex", mode = { "n", "i" }, desc = "Toggle Regex" },
        },
      },
    }
  end,
},
```


## Description

This PR adds a new keymap `<a-r>` for toggling the regex in grep picker.

It allows user to get faster when searching some special strings like
`$props()`, or just put a part of line `test to jump faster.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots


https://github.com/user-attachments/assets/2442b21c-898f-4682-a966-5a82abdd23e8

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-20 15:52:54 +02:00
Jakub F. Bortlík
d0a5310417
fix(picker): do not record consecutive duplicate history (#2040)
## Description

Before this fix, identical items are added to history repeatedly. This
PR fixes this by only adding an item to history if it's different from
the last recorded value.

This doesn't completely remove duplicate entries in the history, it only
prevents consecutive identical entries.
2025-10-20 15:40:09 +02:00
Folke Lemaitre
19ff343a16
style: format 2025-10-20 15:29:47 +02:00
folke
40a34549b1 chore(build): auto-generate docs 2025-10-20 13:29:24 +00:00
Tharun T
a4664298ba
fix(gitbrowse): send commit as a opt when calling gitbrowse (#2289)
## Description

- I was trying to go to the commit page from fugitive commit buffers
- but snacks.nvim doesn't support this (fugitive does) and so I wanted a
way to send the commit IDs to the gitbrowse function after parsing it
myself in my dotfiles

### changes
- added `commit` option to `gitbrowse` config to allow passing commit
hashes directly instead of only auto-detecting from cursor word or file
history
- only falls back to auto-detection when `commit` is not explicitly
provided

## 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-10-20 15:28:30 +02:00
folke
c494c13a0a chore(build): auto-generate docs 2025-10-20 13:27:39 +00:00
Tristan Kapous
3ccab9736b
feat(toggle): allow notification customization via function (#2247)
This is a very small change that make it possible to configure the
notification for toggles.

For example, we can display icons instead of the default 'Enabled' /
'Disabled' text, or not use bold.

<img width="454" height="242" alt="image"
src="https://github.com/user-attachments/assets/56f2f4c9-ef04-42df-b498-205416103a7a"
/>

<img width="454" height="242" alt="image"
src="https://github.com/user-attachments/assets/a0b1fb6f-4d34-47aa-b790-a18fc790e1c3"
/>
2025-10-20 15:26:26 +02:00
folke
0c5f9b82ca chore(build): auto-generate docs 2025-10-20 13:24:12 +00:00
Bao
ac6154688b
fix(notifier): keep filtered notifications in history (#2209)
## Description

the documentation for `snacks.notifier.Config` says:


f6c06415a2/lua/snacks/notifier.lua (L120-L122)

But currently all notifications filtered out by either `opts.level` or
`opts.filter` are also omitted from the history, on top of being
suppressed from displaying

Fixes this regression

## Related Issue(s)

* Related to #93, although that was caused by misconfiguration. This one
is an actual bug
* Closes #2208 

## Screenshots

n/a
2025-10-20 15:23:10 +02:00
folke
58993055a4 chore(build): auto-generate docs 2025-10-20 13:23:06 +00:00
starbased
2aacf55082
fix(terminal): set buffer when opening terminal with position='current' (#2162)
## Description

When opening a terminal with position='current', the terminal buffer
wasn't being set in the current window, causing the original buffer
content to remain visible with terminal styling applied.

This fix adds a call to vim.api.nvim_win_set_buf() to properly set the
terminal buffer when using position='current'. Also updates type
annotations to include the 'current' position option and adds tests to
prevent regression.

Credit to the solution to by @Baricus in issue #2148.

## Related Issue(s)

Fixes #2148

Co-authored-by: Baricus <31926270+Baricus@users.noreply.github.com>
2025-10-20 15:22:02 +02:00
Sander
41e6bf1578
docs(rename): fyler example (#2122) 2025-10-20 15:18:47 +02:00
folke
bed2437e2e chore(build): auto-generate docs 2025-10-20 13:16:30 +00:00
Alexander Frolov
9ebf052fef
fix(gitbrowse): fixed urls for gitlab (#2073)
## Description

GitLab highlighting uses a different scheme for range of lines

fb2f3ce787/app/assets/javascripts/repository/mixins/highlight_mixin.js (L114)

## 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-10-20 15:15:21 +02:00
Aaron Weisberg
fb54927ab0
fix(zen): make zoom and minimizing work in terminal mode (#1912)
## Description

This PR fixes an issue where normal mode commands were being executed in
terminal mode buffers. The change ensures that the command `norm! zz` is
only executed if the buffer type is not "terminal". This prevents errors
when using Zen mode with terminal buffers.

## Related Issue(s)

- Fixes #1911

## Screenshots

<!-- Add screenshots of the changes if applicable. -->
2025-10-20 15:08:41 +02:00
Trevor Hauter
1db5166b43
docs(picker): fix typo in picker docs (#1887)
## Description

Fix typo in snacks-picker docs. I've noticed the docs are
auto-generated, so I split my changes into 2 commits so I can drop the
change to the markdown file if preferred. Just let me know!

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-20 15:07:23 +02:00
folke
351bab1866 chore(build): auto-generate docs 2025-10-20 13:06:59 +00:00
Ori Perry
3f0fe34308
feat(image): allow specifying a page number for inlined pdfs (#1806)
## Description
Allow specifying a page number for pdfs inside of markdown.

This is done by adding "#page=<page-number>" to the file name. This is
same way it is done in obsidian (as discussed in
https://forum.obsidian.md/t/link-to-the-exact-page-of-and-external-pdf-file/2111)

The parsing of the page info should probably be done way before the
conversion, but this was the best I could with my limited time.
I'm pretty new to lua, and this codebase, so this might not be the best
code, but I hope it at least helps :D
## Related Issue(s)

  - Fixes #1805
2025-10-20 15:05:53 +02:00
folke
6276c10b4b chore(build): auto-generate docs 2025-10-20 13:00:31 +00:00
Tod Morrison
441bdcd210
fix(image): correct off by one issue in render fallback (#1560)
Fix off-by-one issue in render_fallback when a tabline is shown (e.g.
with plugins like bufferline.nvim).

## Description

When a tabline is used/shown, the positioning in render_fallback is off
by one. This change checks whether a tabline would be shown and uses the
correct math for that case and, otherwise, works as before.

## Related Issue(s)

  - Fixes #1557
2025-10-20 14:59:33 +02:00
Moonsteroid
f89fff1bf5
docs(rename): oil.nvim snippet example (#1503)
## Description

Quick fix In the `rename` plugin docs, the example code snippet for
`oil.nvim` needs to take the first item from the action list :)
2025-10-20 14:58:24 +02:00
Matthias Putz
2daa1b28b2
fix(image): markdown inline link query for shortened urls (#1481)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
  
This fixes the `image.src` capture for markdown shortcut links, which
(imho) are links like `![[attachments/test.jpg]]`.

The current query captures also the `[...]`.

If we talk about a different type of links for this query, it would be
interesting to know which ones :).

## 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-10-20 14:56:50 +02:00
folke
e1e30a1411 chore(build): auto-generate docs 2025-10-20 12:55:15 +00:00
Jason Cheatham
231ffae08d
feat(debug): allow debug evaluation of block selections (#1331)
## Description

This PR adds basic support for visual block selections to
`Snacks.debug.run()`. This is useful when code doesn't start at the
beginning of a line, such as in comment blocks.

## 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. -->
<img width="271" alt="Screenshot 2025-02-19 at 23 02 35"
src="https://github.com/user-attachments/assets/5a440b32-6846-4345-b105-42e64796ac65"
/>
2025-10-20 14:53:55 +02:00
folke
ccca140c2b chore(build): auto-generate docs 2025-10-20 12:48:58 +00:00
Folke Lemaitre
fe88a07d53
feat(dashboard): optional filter for projects. Closes #798 2025-10-20 14:48:06 +02:00