Skip to content

Latest commit

 

History

History
26 lines (16 loc) · 2.62 KB

README.md

File metadata and controls

26 lines (16 loc) · 2.62 KB

talon-jetbrains

Warning This plugin is under development and isn't yet suited for the general public -- it should be used only by people working on the Cursorless Everywhere project for now.

This is a new plugin for supporting JetBrains editors with Talon, using newer technologies. It also implements Cursorless support using the VS Code sidecar.

Interesting code locations

  • listeners/: this is where we wire up listeners for the various change events in the IDE (opening/closing projects/files, switching tabs, document insertions/deletions, cursor changes, scrolling, etc.) so we can react to them
  • StateWriter: this is where we write out statefiles for the editor in response to listener changes. These state files can be watched by Talon, or the Cursorless sidecar to reload the sidecar.

Cursorless:

  • CursorlessContainer: this is what renders the hats inside of the editor when using the Cursorless sidecar.
  • VSCodeClient: allows sending messages to the embedded Unix domain socket server inside of the Cursorless sidecar. This is used to control the sidecar/VS Code instance without having to focus it, as the traditional command client/server has to do.
  • CursorlessClient: Uses the VSCodeClient to actually run Cursorless commands in JetBrains.

Interfacing from Talon

  • ControlSocket: this exposes a Unix domain socket for Talon to control instances of JetBrains, rather than the embedded HTTP server of the old plugin. (Note: this will probably be replaced with an implementation of the more common command client/server)