Commit graph

40 commits

Author SHA1 Message Date
Folke Lemaitre
5315e267ff
feat(scope): allow disabling scopes with vim.g.snacks_scope = false or vim.b.snacks_scope = false. Closes #1463 2025-03-01 09:56:24 +01:00
Folke Lemaitre
9f0aa20489
feat(util): small ts parse wrapper that parses async when available 2025-03-01 07:53:55 +01:00
Folke Lemaitre
e2cb9df7d0
feat(util): util method to check if ts lang is available on any Neovim version. See #1422 2025-02-25 15:25:48 +01:00
Folke Lemaitre
4ce197bff9
fix(scope): use rawequal to check if scope impl is treesitter. Closes #1413 2025-02-25 10:48:04 +01:00
Folke Lemaitre
842605f072
fix(compat): properly detect async treesitter parsing 2025-02-24 10:28:22 +01:00
Folke Lemaitre
e0f882e6d6
perf(scope): use async treesitter parsing when available 2025-02-23 09:21:02 +01:00
Stefan Krüger
aba21ddc71
feat(scope): allow injected languages to be parsed by treesitter (#823)
## Description

Adding a config flag to allow injected languages to be parsed by
treesitter. This is crucial for languages like vue, which contain
typescript or javascript in a script tag. When `treesitter.get_node` is
not called with ignore_injections = false, the script tag is treated as
a single block, which is not helpful, as it contains most code for
languages like vue.

## Related Issue(s)

 - Fixes #430 

## Screenshots

 - See #430

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-02-06 08:04:50 +01:00
Folke Lemaitre
985ada3c14
fix(scope): parse treesitter injections. Closes #430 2025-01-20 13:04:22 +01:00
Folke Lemaitre
4c55f1c2da
fix(scope): make sure to parse the ts tree. Fixes #521 2025-01-16 08:37:19 +01:00
Folke Lemaitre
1244305bed
fix(scope): don't expand to invalid range. Fixes #339 2024-12-18 06:59:20 +01:00
Folke Lemaitre
58ae580c2c
fix(scope): allow treesitter scopes when treesitter highlighting is disabled. See #231 2024-12-16 18:03:24 +01:00
Folke Lemaitre
6a36f32eaa
fix(scope): use virtcol for calculating scopes at the cursor 2024-12-15 19:24:57 +01:00
Folke Lemaitre
8ec6e6adc5
feat(scope): disable treesitter blocks by default 2024-12-15 12:32:02 +01:00
Folke Lemaitre
e63fa7bf05
fix(scope): properly caluclate start indent when cursor=true for indent scopes. See #5068 2024-12-15 12:22:17 +01:00
Folke Lemaitre
54bc6bab2d
feat(scope): added opts.cursor to take cursor column into account for scope detection. (defaults to true). Closes #282 2024-12-15 09:55:42 +01:00
Folke Lemaitre
a9536973a9
feat(scope): text objects now use treesitter scopes by default. See #231 2024-12-14 21:50:19 +01:00
Folke Lemaitre
b7355c16fb
fix(scope): better treesitter scope edge detection 2024-12-14 21:50:19 +01:00
Folke Lemaitre
8a8b1c976f
feat(scope): Scope:inner for indent based and treesitter scopes 2024-12-14 21:50:19 +01:00
Folke Lemaitre
94e0849c3a
feat(scope): added __tostring for debugging 2024-12-14 21:50:19 +01:00
Folke Lemaitre
be2779e942
fix(scope): add indent to __eq 2024-12-14 21:50:19 +01:00
Folke Lemaitre
ac6a74823b
fix(scope): possible loop? See #278 2024-12-13 15:44:11 +01:00
Folke Lemaitre
e8dd394c01
fix(scope): change from/to selection to make more sense 2024-12-13 13:23:52 +01:00
Folke Lemaitre
851dc7854b
docs: docgen 2024-12-12 08:44:47 +01:00
Folke Lemaitre
2457d913dc
fix(indent): when at edge of two blocks, prefer the one below. See #231 2024-12-12 06:42:35 +01:00
Folke Lemaitre
bc7f96bdee
fix(indent): gradually increase scope when identical to visual selection for text objects 2024-12-11 23:58:55 +01:00
Folke Lemaitre
5f217bca6a
fix(indent): set max_size=1 for textobjects and jumps by default. See #231 2024-12-11 23:58:55 +01:00
Folke Lemaitre
897f801924
fix(indent): expand scopes to inlude end_pos based on the end_pos scope. See #231 2024-12-11 23:58:55 +01:00
Folke Lemaitre
33fbb309f8
fix(compat): fixes for Neovim < 0.10 2024-12-11 23:20:28 +01:00
Folke Lemaitre
0324125ca1
fix(scope): typo for textobject 2024-12-11 22:37:13 +01:00
Folke Lemaitre
ec191b3fe9
docs: docgen 2024-12-11 22:20:26 +01:00
Folke Lemaitre
b72560fa58
docs: docgen 2024-12-11 22:18:44 +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
6ca848766c ci: docgen 2024-12-10 13:55:51 +01:00
Folke Lemaitre
140204fde5 build: added metadata to plugins 2024-12-10 13:55:51 +01:00
Folke Lemaitre
6b02a09e5e fix(scope): better edge detection for treesitter scopes 2024-12-10 13:55:51 +01:00
Folke Lemaitre
38ed01b5a2 feat(scope): fill the range for treesitter scopes 2024-12-10 13:55:51 +01:00
Folke Lemaitre
4aa378a35e fix(scope): return nil when buffer is empty for indent scope 2024-12-10 13:55:51 +01:00
Folke Lemaitre
e2e6c86d21 fix(scope): take edges into account for min_size 2024-12-10 13:55:51 +01:00
Folke Lemaitre
5352198b5a fix(indent): use correct config options 2024-12-10 13:55:51 +01:00
Folke Lemaitre
63a279c4e2 feat(scope): added scope plugin 2024-12-10 13:55:51 +01:00