Skip to content

Community wrapper snippets #1998

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

Merged
merged 23 commits into from
Apr 21, 2024
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
217b584
Add the Cursorless side of community wrapper snippets
AndreasArvidsson Nov 4, 2023
0dc4382
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Nov 4, 2023
70cb29b
Added comment
AndreasArvidsson Nov 4, 2023
e016bf3
Merge branch 'community_wrapper_snippets' of github.com:cursorless-de…
AndreasArvidsson Nov 4, 2023
ebf98df
Update name
AndreasArvidsson Nov 4, 2023
d5a5561
Update action signature
AndreasArvidsson Nov 12, 2023
a8e6c73
Update
AndreasArvidsson Nov 14, 2023
d0e90c2
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Nov 14, 2023
0eecf7c
Update to new format
AndreasArvidsson Nov 16, 2023
33fd601
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Nov 16, 2023
61826a3
cleanup
AndreasArvidsson Nov 16, 2023
d1a1595
Merge branch 'community_wrapper_snippets' of github.com:cursorless-de…
AndreasArvidsson Nov 16, 2023
f1bd67a
Merge branch 'main' into community_wrapper_snippets
AndreasArvidsson Nov 16, 2023
8af103f
update
AndreasArvidsson Nov 16, 2023
12f30e7
fix
pokey Dec 18, 2023
b8fe0d9
Snake case variable name
AndreasArvidsson Dec 18, 2023
8cb5993
Merge branches 'community_wrapper_snippets' and 'community_wrapper_sn…
AndreasArvidsson Dec 18, 2023
ac0d196
Merge branch 'main' into community_wrapper_snippets
pokey Jan 26, 2024
b6ad426
Add tests
pokey Jan 30, 2024
c525d33
Merge branch 'main' into community_wrapper_snippets
pokey Apr 15, 2024
c507571
Improve docs
pokey Apr 16, 2024
6067772
Merge branch 'main' into community_wrapper_snippets
pokey Apr 16, 2024
77fe5f1
Merge branch 'main' into community_wrapper_snippets
pokey Apr 20, 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
9 changes: 0 additions & 9 deletions cursorless-talon/src/cursorless.talon
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,6 @@ tag: user.cursorless
<user.cursorless_wrapper_paired_delimiter> {user.cursorless_wrap_action} <user.cursorless_target>:
user.private_cursorless_wrap_with_paired_delimiter(cursorless_wrap_action, cursorless_target, cursorless_wrapper_paired_delimiter)

{user.cursorless_insert_snippet_action} <user.cursorless_insertion_snippet>:
user.private_cursorless_insert_snippet(cursorless_insertion_snippet)

{user.cursorless_insert_snippet_action} {user.cursorless_insertion_snippet_single_phrase} <user.text> [{user.cursorless_phrase_terminator}]:
user.private_cursorless_insert_snippet_with_phrase(cursorless_insertion_snippet_single_phrase, text)

{user.cursorless_wrapper_snippet} {user.cursorless_wrap_action} <user.cursorless_target>:
user.private_cursorless_wrap_with_snippet(cursorless_wrap_action, cursorless_target, cursorless_wrapper_snippet)

{user.cursorless_show_scope_visualizer} <user.cursorless_scope_type> [{user.cursorless_visualization_type}]:
user.private_cursorless_show_scope_visualizer(cursorless_scope_type, cursorless_visualization_type or "content")
{user.cursorless_hide_scope_visualizer}:
Expand Down
14 changes: 14 additions & 0 deletions cursorless-talon/src/snippet_cursorless.talon
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
mode: command
mode: user.cursorless_spoken_form_test
tag: user.cursorless
and not tag: user.cursorless_use_community_snippets
-

{user.cursorless_insert_snippet_action} <user.cursorless_insertion_snippet>:
user.private_cursorless_insert_snippet(cursorless_insertion_snippet)

{user.cursorless_insert_snippet_action} {user.cursorless_insertion_snippet_single_phrase} <user.text> [{user.cursorless_phrase_terminator}]:
user.private_cursorless_insert_snippet_with_phrase(cursorless_insertion_snippet_single_phrase, text)

{user.cursorless_wrapper_snippet} {user.cursorless_wrap_action} <user.cursorless_target>:
user.private_cursorless_wrap_with_snippet(cursorless_wrap_action, cursorless_target, cursorless_wrapper_snippet)
36 changes: 36 additions & 0 deletions cursorless-talon/src/snippets.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,19 @@ class InsertionSnippet:
destination: CursorlessDestination


@dataclass
class CommunityInsertionSnippet:
body: str
scopes: list[str] = None


@dataclass
class CommunityWrapperSnippet:
body: str
variableName: str
scope: str = None


mod = Module()

mod.list("cursorless_insert_snippet_action", desc="Cursorless insert snippet action")
Expand All @@ -27,6 +40,11 @@ class InsertionSnippet:
desc="tag for enabling experimental snippet support",
)

mod.tag(
"cursorless_use_community_snippets",
"If active use community snippets instead of Cursorless snippets",
)

mod.list("cursorless_wrapper_snippet", desc="Cursorless wrapper snippet")
mod.list(
"cursorless_insertion_snippet_no_phrase",
Expand Down Expand Up @@ -181,3 +199,21 @@ def cursorless_wrap_with_snippet(
snippet_arg,
target,
)

def private_cursorless_insert_community_snippet(
name: str, destination: CursorlessDestination
):
"""Cursorless: Insert community snippet <name>"""
snippet: CommunityInsertionSnippet = actions.user.get_insertion_snippet(name)
actions.user.cursorless_insert_snippet(
snippet.body, destination, snippet.scopes
)

def private_cursorless_wrap_with_community_snippet(
name: str, target: CursorlessTarget
):
"""Cursorless: Wrap target with community snippet <name>"""
snippet: CommunityWrapperSnippet = actions.user.get_wrapper_snippet(name)
actions.user.cursorless_wrap_with_snippet(
snippet.body, target, snippet.variableName, snippet.scope
)
13 changes: 13 additions & 0 deletions cursorless-talon/src/snippets_community.talon
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
mode: command
mode: user.cursorless_spoken_form_test
tag: user.cursorless
and tag: user.cursorless_use_community_snippets
-

# These snippets are defined in community

{user.cursorless_insert_snippet_action} {user.snippet} <user.cursorless_destination>:
user.private_cursorless_insert_community_snippet(snippet, cursorless_destination)

{user.snippet_wrapper} {user.cursorless_wrap_action} <user.cursorless_target>:
user.private_cursorless_wrap_with_community_snippet(snippet_wrapper, cursorless_target)