-
-
Notifications
You must be signed in to change notification settings - Fork 88
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Why?
We want to apply cursorless grammar / decorations to non-textual entities such as a file browser, email client, cursorless cheatsheet interface, etc
How?
We'll do a POC of a cursorless file browser. We proceed in the following milestones:
Milestone 1
- Build a third-party extension that renders a file tree for a particular directory in a webview
- The extension calls a cursorless api function, passing a list of tokens to be decorated
- Cursorless does the following:
- adds these tokens to its list of all editor tokens, adding some field pointing back to the token given by third-party
- returns a list of decoration info back to third-party including svgs and character offsets so that extension can do rendering
- Extension renders the hats in the appropriate place in its webview
Milestone 2
- Relies on Switch targets to object-oriented #210
- When cursorless receives a command from talon, it can detect that the mark was from third party and call function on third-party to get the target. It should probably leverage new pipelines at this point, so we'll want to hold off on this impl for now
Milestone 3
- Relies on state sharing (eg Expose shape enablement #287)
- When cursorless processes a scope type that is third-party, it will call a function on third-party to process modifier
Questions
- How do we handle focus? The webview may or may not be focused
- Somehow, extension should be able to register new scope types both extension and talon-side. Probably want state sharing (like Expose shape enablement #287) for this one
Philosophical points / future directions
We view text files as a special case, and can refactor our language / text support to rely on the same general purpose API
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request