This is a Sublime Text plugin that lets VoiceCode control Sublime Text
This integration is needed because many VoiceCode voice commands are more sophisticated than simply pressing keys or clicking the mouse. For example, a command that selects the next curly brace, or a command that extends the current selection(s) forward until the next comma, etc.
First make sure the commandline utility for Sublime Text is installed and working https://www.sublimetext.com/docs/3/osx_command_line.html
If you want to add new commands that are not already included in this package, just add something similar to the following in a user extension file for Sublime Text.
import sublime, sublime_plugin
class SelectPreviousWordCommand(sublime_plugin.TextCommand):
def run(self, edit):
pos = self.view.sel()[0].begin()
all_previous = [r for r in self.view.find_all('\w+') if r.begin() < pos]
if all_previous:
region = all_previous[-1] # return nearest
if region:
self.view.sel().clear()
self.view.sel().add(region)
Then, in your VoiceCode user commands, you can call this Sublime Text command as follows:
@sublime().do('select_previous_word')
or if you need to pass options/arguments to a Sublime command, add them as the second parameter like:
@sublime().do('some_command', {foo: "bar", baz: 3.2})
Sublime has a lot of builtin commands. To trigger them from VoiceCode simply do something like:
@sublime().do('goto_line', {line: 10})
Checkout this page for more info about Sublime commands.