Commit graph

61 commits

Author SHA1 Message Date
Folke Lemaitre
448a55a0e3
fix(compat): correct Neovim 0.11 check 2025-02-20 07:00:42 +01:00
Folke Lemaitre
63277f96c9
refactor(compat): use svim.islist 2025-02-20 07:00:05 +01:00
Folke Lemaitre
bc902f7032
feat(compat): added svim, a compatibility layer for Neovim. Closes #1321 2025-02-20 06:59:44 +01:00
Folke Lemaitre
39bf5131c4
feat(image): enabled pdf previews 2025-02-17 17:17:56 +01:00
Folke Lemaitre
b5b0995e8b
style(image): luals 2025-02-17 16:09:41 +01:00
Folke Lemaitre
001f3002ca
feat(image): markdown inline image preview. opts.image must be enabled and terminal needs support 2025-02-13 18:03:33 +01:00
Folke Lemaitre
7d655fe09d
feat(image): use kitty's unicode placeholder images 2025-02-10 08:49:47 +01:00
Folke Lemaitre
4e4e63048e
feat: added new image snacks plugin for the kitty graphics protocol 2025-02-09 22:35:13 +01:00
Folke Lemaitre
670c67366f
feat(explorer): new explorer module with shortcut to start explorer picker and netrw replacement functionlity 2025-01-31 08:31:49 +01:00
Folke Lemaitre
9986b47707
fix(picker.config): better config merging and tests 2025-01-17 20:36:33 +01:00
Folke Lemaitre
2d4a0b594a
fix(config): dont exclude metatables 2025-01-16 22:16:32 +01:00
Folke Lemaitre
75eb16fd9c
fix(config): better vim.tbl_deep_extend that prevents issues with list-like tables. Fixes #554 2025-01-16 21:42:04 +01:00
Folke Lemaitre
559d6c6bf2
feat(snacks): added snacks.picker (#445)
## Description

More info coming tomorrow.

In short:
- very fast. pretty much realtime filtering/sorting in huge repos (like
1.7 million files)
- extensible
- easy to customize the layout (and lots of presets) with
`snacks.layout`
- simple to create custom pickers
- `vim.ui.select`
- lots of builtin pickers
- uses treesitter highlighting wherever it makes sense
- fast lua fuzzy matcher which supports the [fzf
syntax](https://junegunn.github.io/fzf/search-syntax/) and additionally
supports field filters, like `file:lua$ 'function`

There's no snacks picker command, just use lua.

```lua
-- all pickers
Snacks.picker()

-- run files picker
Snacks.picker.files(opts)
Snacks.picker.pick("files", opts)
Snacks.picker.pick({source = "files", ...})
```

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Todo
- [x] issue with preview loc not always correct when scrolling fast in
list (probably due to `snacks.scroll`)
- [x] `grep` (`live_grep`) is sometimes too fast in large repos and can
impact ui rendering. Not very noticeable, but something I want to look
at.
- [x] docs
- [x] treesitter highlights are broken. Messed something up somewhere

## 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-01-14 22:53:59 +01:00
Valentin Degenne
c11b74c676
feat(styles): exportable styles (#306)
To allow syntax like:

```lua
local mystyle = Snacks.config.style('...')

-- somewhere else
Snacks.win({
  style = mystyle
})
```

and improve code navigation (e.g. jumping using `gd`, as opposed to
searching string, or not being sure of the exact name, ...)
2024-12-15 19:08:04 +01:00
Folke Lemaitre
b41320c6b4
test: added scope tests 2024-12-14 21:50:19 +01:00
Folke Lemaitre
b0f5b74f4a
style: annotations 2024-12-13 23:57:50 +01:00
Folke Lemaitre
2a664b615f
ci: try making config options optional 2024-12-13 15:58:54 +01:00
Folke Lemaitre
8faafb3483
feat(scope): text objects and jumping for scopes. Closes #231 2024-12-11 22:17:59 +01:00
Folke Lemaitre
acf743fcfc
fix(input): health check. Fixes #239 2024-12-10 19:38:40 +01:00
Folke Lemaitre
e9d099322f
fix(init): set input disabled by default. Fixes #227 2024-12-10 14:26:22 +01:00
Folke Lemaitre
614df63acf perf(input): lazy-load vim.ui.input 2024-12-10 13:55:51 +01:00
Folke Lemaitre
70902eee9e feat(input): added input snack 2024-12-10 13:55:51 +01:00
Folke Lemaitre
72eba84180 fix(health): health checks 2024-12-10 13:55:51 +01:00
Folke Lemaitre
01ab0fce21 refactor(init): cleanup code 2024-12-10 13:55:51 +01:00
Folke Lemaitre
519a45bfe5 fix(init): enabled check 2024-12-10 13:55:51 +01:00
Folke Lemaitre
38a5ccc3a6 feat(scroll): added smooth scrolling plugin 2024-12-10 13:55:51 +01:00
Folke Lemaitre
2c4021c466 feat(indent): added indent plugin 2024-12-10 13:55:51 +01:00
Folke Lemaitre
0194f18cfa refactor: auto-gen plugin types 2024-12-10 13:55:51 +01:00
Folke Lemaitre
1cec695fef
feat(snacks): added new scratch snack 2024-12-01 09:08:03 +01:00
Folke Lemaitre
d0794dcf8e
fix(init): use rawget when loading modules to prevent possible recursive loading with invalid module fields 2024-11-29 07:37:49 +01:00
Folke Lemaitre
45fd0efe41
fix(config): check correct var for single config result. Fixes #167 2024-11-27 23:56:56 +01:00
Folke Lemaitre
d730a13b55
feat(config): allow overriding resolved options for a plugin. See #164 2024-11-27 21:43:15 +01:00
Folke Lemaitre
6e3cb7e53c
feat(config): make it easier to use examples in your config 2024-11-27 21:27:56 +01:00
Folke Lemaitre
deb00d0ddc
feat: added dashboard health checks 2024-11-18 19:16:54 +01:00
Folke Lemaitre
d540fa607c
feat(dashboard): added new dashboard snack (#77)
## Description

A new dashboard plugin that comes with sane defaults, and can be fully
customized to your liking.

## Screenshots


![image](https://github.com/user-attachments/assets/944373ea-f443-4c16-bfe0-2dc78101f8f5)


![image](https://github.com/user-attachments/assets/492b075e-168d-4d58-af39-1268c047f374)


![image](https://github.com/user-attachments/assets/53a388c2-ca5a-4efb-94f2-752222f43584)


![image](https://github.com/user-attachments/assets/3c6ee94b-6785-4035-8ed2-2f67f39b5f06)


![image](https://github.com/user-attachments/assets/5b7a7117-e504-4b36-88db-91ccc89d8997)
2024-11-18 16:25:17 +01:00
Folke Lemaitre
797708b038 feat(config)!: plugins are no longer enabled by default. Pass any options, or set enabled = true. 2024-11-14 23:56:37 +01:00
Folke Lemaitre
4f99818b0a
fix: added compatibility with Neovim >= 0.9.4 2024-11-09 15:38:43 +01:00
Folke Lemaitre
6c76f91398
fix(config): deepcopy config where needed 2024-11-06 22:36:37 +01:00
Folke Lemaitre
0d91a4e364
fix(config): fix reading config during setup. Fixes #2 2024-11-06 22:36:37 +01:00
Folke Lemaitre
9341f730d9
refactor(notifier): make notify a mod method instead of class method 2024-11-06 13:38:51 +01:00
Folke Lemaitre
66810971b9
fix(win): better implementation of window styles (previously views) 2024-11-06 10:56:08 +01:00
Folke Lemaitre
b4bd12c0ea
docs: better docs 2024-11-05 23:16:08 +01:00
Folke Lemaitre
44011ddf0d
feat: added notifier 2024-11-05 16:54:58 +01:00
Folke Lemaitre
0209e95f6d
style(toggle): types 2024-11-05 16:54:58 +01:00
Folke Lemaitre
28c3029699
feat: added toggle 2024-11-05 00:20:26 +01:00
Folke Lemaitre
f5bbb446ed
fix(config): merging of possible nil values 2024-11-04 22:22:36 +01:00
Folke Lemaitre
12d6f863f7
feat(win): custom views 2024-11-04 22:17:12 +01:00
Folke Lemaitre
1bdb193139
refactor: float -> win, since it also manages splits 2024-11-04 20:29:25 +01:00
Folke Lemaitre
6cb43f6033
feat: added debug 2024-11-04 18:56:19 +01:00
Folke Lemaitre
f4e0130ec3
feat: added notify 2024-11-04 18:56:19 +01:00