Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrated surrounding pair scope handler #2457

Draft
wants to merge 46 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
8079939
Started working on surrounding pair scope handler
AndreasArvidsson Jun 26, 2024
a64f508
Updated Talon side
AndreasArvidsson Jun 26, 2024
9f3a3d7
fix bug
AndreasArvidsson Jun 26, 2024
97ea377
Fixes
AndreasArvidsson Jun 26, 2024
894bd93
Handle no surrounding pair in item stage
AndreasArvidsson Jun 27, 2024
93878a1
Started adding Tree sitter integration
AndreasArvidsson Jun 27, 2024
0dd64b2
Disqualify delimiters
AndreasArvidsson Jun 27, 2024
a404f1b
Added support for single line pairs
AndreasArvidsson Jun 29, 2024
d07aacd
fix
AndreasArvidsson Jun 29, 2024
6c0b527
Clean up
AndreasArvidsson Jun 29, 2024
766f390
Remove left right tests
AndreasArvidsson Jun 29, 2024
e1e6848
Support triple quotes
AndreasArvidsson Jun 30, 2024
6b16abe
Support python strings
AndreasArvidsson Jun 30, 2024
c1fe9e8
Added is preferred over
AndreasArvidsson Jul 1, 2024
a6c6e6b
Update test
AndreasArvidsson Jul 1, 2024
dc659b3
Bug fixes on strongly contains
AndreasArvidsson Jul 1, 2024
aa6a0ce
cleanup
AndreasArvidsson Jul 1, 2024
36453ff
rename
AndreasArvidsson Jul 1, 2024
fdf5788
rename
AndreasArvidsson Jul 1, 2024
850541a
Better deprecation message
AndreasArvidsson Jul 1, 2024
fe918b8
Added comment
AndreasArvidsson Jul 1, 2024
cf4a7e1
Added comment
AndreasArvidsson Jul 1, 2024
b8ed029
clean
AndreasArvidsson Jul 1, 2024
bf98a01
more clean up
AndreasArvidsson Jul 1, 2024
e0e12cc
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Jul 1, 2024
0473a04
Cleanup
AndreasArvidsson Jul 1, 2024
5e9a2e9
Merge branch 'surroundingPairScopeHandler' of github.com:cursorless-d…
AndreasArvidsson Jul 1, 2024
d05d5bc
clean up
AndreasArvidsson Jul 1, 2024
3daad29
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Jul 1, 2024
c017d6c
Added disqualifyDelimiter to php
AndreasArvidsson Jul 1, 2024
7de96a7
Merge branch 'main' into surroundingPairScopeHandler
AndreasArvidsson Jul 1, 2024
766864d
Fix surrounding pair scope info test
AndreasArvidsson Jul 1, 2024
057ce7a
Use text fragment
AndreasArvidsson Jul 2, 2024
3617285
Added scope tests
AndreasArvidsson Jul 3, 2024
0da6b1a
More tests
AndreasArvidsson Jul 3, 2024
a6d3bef
Update tests
AndreasArvidsson Jul 3, 2024
44941da
update tests
AndreasArvidsson Jul 3, 2024
35b3048
Remove support for overlapping pairs
AndreasArvidsson Jul 4, 2024
2e6bdc3
Update ruby quotes delimiters
AndreasArvidsson Jul 4, 2024
bb4f6f3
Update deprecation message
AndreasArvidsson Jul 4, 2024
3dc9350
clean up
AndreasArvidsson Jul 4, 2024
c697752
clean up
AndreasArvidsson Jul 4, 2024
fc17668
Use document as iteration scope
AndreasArvidsson Jul 4, 2024
a0a8cfe
Reverts delimiter map
AndreasArvidsson Jul 4, 2024
45cef0e
Merge branch 'main' into surroundingPairScopeHandler
AndreasArvidsson Jul 12, 2024
9dd9b4a
Added test
AndreasArvidsson Jul 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 22 additions & 3 deletions cursorless-talon/src/modifiers/scopes.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@


@mod.capture(
rule="{user.cursorless_scope_type} | <user.cursorless_glyph_scope_type> | {user.cursorless_custom_regex_scope_type}"
rule="{user.cursorless_scope_type}"
" | <user.cursorless_surrounding_pair_scope_type>"
" | <user.cursorless_glyph_scope_type>"
" | {user.cursorless_custom_regex_scope_type}"
)
def cursorless_scope_type(m) -> dict[str, str]:
"""Cursorless scope type singular"""
Expand All @@ -24,16 +27,27 @@ def cursorless_scope_type(m) -> dict[str, str]:
except AttributeError:
pass

try:
return m.cursorless_surrounding_pair_scope_type
except AttributeError:
pass

try:
return m.cursorless_glyph_scope_type
except AttributeError:
pass

return {"type": "customRegex", "regex": m.cursorless_custom_regex_scope_type}
return {
"type": "customRegex",
"regex": m.cursorless_custom_regex_scope_type,
}


@mod.capture(
rule="{user.cursorless_scope_type_plural} | <user.cursorless_glyph_scope_type_plural> | {user.cursorless_custom_regex_scope_type_plural}"
rule="{user.cursorless_scope_type_plural}"
" | <user.cursorless_surrounding_pair_scope_type>"
" | <user.cursorless_glyph_scope_type_plural>"
" | {user.cursorless_custom_regex_scope_type_plural}"
)
def cursorless_scope_type_plural(m) -> dict[str, str]:
"""Cursorless scope type plural"""
Expand All @@ -42,6 +56,11 @@ def cursorless_scope_type_plural(m) -> dict[str, str]:
except AttributeError:
pass

try:
return m.cursorless_surrounding_pair_scope_type
except AttributeError:
pass

try:
return m.cursorless_glyph_scope_type_plural
except AttributeError:
Expand Down
29 changes: 5 additions & 24 deletions cursorless-talon/src/modifiers/surrounding_pair.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from contextlib import suppress
from typing import Any

from talon import Context, Module
Expand Down Expand Up @@ -30,33 +29,15 @@
"{user.cursorless_surrounding_pair_scope_type}"
)
)
def cursorless_surrounding_pair_scope_type(m) -> str:
def cursorless_surrounding_pair_scope_type(m) -> dict[str, Any]:
"""Surrounding pair scope type"""
try:
return m.cursorless_surrounding_pair_scope_type
except AttributeError:
return m.cursorless_selectable_paired_delimiter


@mod.capture(
rule="[{user.cursorless_delimiter_force_direction}] <user.cursorless_surrounding_pair_scope_type>"
)
def cursorless_surrounding_pair(m) -> dict[str, Any]:
"""Expand to containing surrounding pair"""
try:
surrounding_pair_scope_type = m.cursorless_surrounding_pair_scope_type
delimiter = m.cursorless_surrounding_pair_scope_type
except AttributeError:
surrounding_pair_scope_type = "any"

scope_type = {
"type": "surroundingPair",
"delimiter": surrounding_pair_scope_type,
}

with suppress(AttributeError):
scope_type["forceDirection"] = m.cursorless_delimiter_force_direction
delimiter = m.cursorless_selectable_paired_delimiter

return {
"type": "containingScope",
"scopeType": scope_type,
"type": "surroundingPair",
"delimiter": delimiter,
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
languageId: python
command:
version: 5
spokenForm: change quad
spokenForm: change string
action: {name: clearAndSetSelection}
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: surroundingPair, delimiter: doubleQuotes}
scopeType: {type: surroundingPair, delimiter: string}
usePrePhraseSnapshot: false
initialState:
documentContents: |-
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
languageId: typescript
command:
version: 7
spokenForm: change pair
action:
name: clearAndSetSelection
target:
type: primitive
modifiers:
- type: containingScope
scopeType: {type: surroundingPair, delimiter: any}
usePrePhraseSnapshot: true
initialState:
documentContents: |-
(
// )
)
selections:
- anchor: {line: 0, character: 1}
active: {line: 0, character: 1}
marks: {}
finalState:
documentContents: ""
selections:
- anchor: {line: 0, character: 0}
active: {line: 0, character: 0}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
languageId: plaintext
command:
version: 7
spokenForm: change next pair
action:
name: clearAndSetSelection
target:
type: primitive
modifiers:
- type: relativeScope
scopeType: {type: surroundingPair, delimiter: any}
offset: 1
length: 1
direction: forward
usePrePhraseSnapshot: true
initialState:
documentContents: () ()
selections:
- anchor: {line: 0, character: 3}
active: {line: 0, character: 3}
marks: {}
finalState:
documentContents: "() "
selections:
- anchor: {line: 0, character: 4}
active: {line: 0, character: 4}
23 changes: 23 additions & 0 deletions data/fixtures/recorded/surroundingPair/textual/changePair.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
languageId: plaintext
command:
version: 7
spokenForm: change pair
action:
name: clearAndSetSelection
target:
type: primitive
modifiers:
- type: containingScope
scopeType: {type: surroundingPair, delimiter: any}
usePrePhraseSnapshot: true
initialState:
documentContents: "[]()"
selections:
- anchor: {line: 0, character: 2}
active: {line: 0, character: 2}
marks: {}
finalState:
documentContents: "[]"
selections:
- anchor: {line: 0, character: 2}
active: {line: 0, character: 2}
AndreasArvidsson marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
languageId: plaintext
command:
version: 7
spokenForm: change pair backward
action:
name: clearAndSetSelection
target:
type: primitive
modifiers:
- type: relativeScope
scopeType: {type: surroundingPair, delimiter: any}
offset: 0
length: 1
direction: backward
usePrePhraseSnapshot: true
initialState:
documentContents: "[]()"
selections:
- anchor: {line: 0, character: 2}
active: {line: 0, character: 2}
marks: {}
finalState:
documentContents: ()
selections:
- anchor: {line: 0, character: 0}
active: {line: 0, character: 0}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
languageId: plaintext
command:
version: 7
spokenForm: change previous pair
action:
name: clearAndSetSelection
target:
type: primitive
modifiers:
- type: relativeScope
scopeType: {type: surroundingPair, delimiter: any}
offset: 1
length: 1
direction: backward
usePrePhraseSnapshot: true
initialState:
documentContents: () ()
selections:
- anchor: {line: 0, character: 3}
active: {line: 0, character: 3}
marks: {}
finalState:
documentContents: " ()"
selections:
- anchor: {line: 0, character: 0}
active: {line: 0, character: 0}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
languageId: plaintext
command:
version: 7
spokenForm: change two pairs
action:
name: clearAndSetSelection
target:
type: primitive
modifiers:
- type: relativeScope
scopeType: {type: surroundingPair, delimiter: any}
offset: 0
length: 2
direction: forward
usePrePhraseSnapshot: true
initialState:
documentContents: ()()
selections:
- anchor: {line: 0, character: 0}
active: {line: 0, character: 0}
marks: {}
finalState:
documentContents: ""
selections:
- anchor: {line: 0, character: 0}
active: {line: 0, character: 0}
26 changes: 0 additions & 26 deletions data/fixtures/recorded/surroundingPair/textual/takeLeftQuad.yml

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading