Open
Description
The problem
Our current override csvs are missing a couple pieces of functionality:
- Context-specific definitions / overrides, eg only active when in Python file
- Extra information on members, such as we would want for Add arguments to cursorless_vscode_command #453, and potentially for snippets, though for snippets we might want the information VSCode-side
The solution
We'd like to switch to a syntax like the following:
language: python
-
hello world: bar
whatever: false {}
whatever:
false
{}
export {}
import
empty map: {}
empty quotes: ""
-: setSelection
Notice the following:
- Spoken form, then colon, then value
- Can have a json object at the end
- These are actually defining captures, not lists, because lists can't have any info other than a string. There will also be a list, but it won't have the extra info
- If no colon, spoken form equals value
- above the
-
is just a talon context - the filename will be
foo.bar.capture
, wherefoo
will be the name of the list and the capture. Might tweak the extension (.list
?.cursorless-list
?) - can break into multiple lines, as long as they're indented
- starting spoken form with a
-
removes it
Alternatives considered
yaml
scope:
language: python
list:
hello world: bar
toml
[scope]
language = "python"
[list.my_list]
hello world = "bar"
toml with talon context header
language: python
-
[my_list]
hello world = "bar"
[my_list.whatever now]
value =