-
Notifications
You must be signed in to change notification settings - Fork 120
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
Increasing the pause length to be compatible with slower systems #137
Conversation
I don't currently use Atom (too sluggish) but 0.3 seconds is definitely a noticeable delay. I think you're right that it might be better to default to a safe value, especially considering how slow Atom is. However it might be better to make it user configurable. I would recommend replacing the hard-coded |
Adding a setting to the settings file is the way to go, yeah. Default it to 10. |
Adding a higher value helps but there's not really a "truly safe" setting within my experience creating Atom.py. It's one of three fundamental issues that can only be solved through the creation of a Atom plug-in that bridges communication between Caster and Atom.
I've done quite a bit of research into the feasibility of creating a bridge plug-in and it is definitely possible. Although as a programmer it's beyond my skill and I got burned out trying. I had a full plate learning python utilizing voice to text. With the addition of learning JavaScript/coffee script to create an Atom plug-in it was too much. If anyone was were willing to attempt roughing out a Atom Castor bridge plug I definitely could contribute. |
@zone22 I completely agree with your points, and that IDE plugins would be far more powerful / stable than purely Dragonfly-based methods. (Extending Dragonfly's Context object to interact with some kind of RPC interface would be awesome.) But as you've discovered, creating them is nontrivial. (I haven't even created one for my preferred IDE, Eclipse. I'm just too busy.) The settings route is a partial solution which though imperfect, is good enough for some cases. |
Closing because I opened a new pull request to implement the suggestion of @chilimangoes and @synkarius. Btw I love the plugin idea I just don't know how to make one either! |
@@ -13,7 +13,8 @@ | |||
from caster.lib import control | |||
|
|||
|
|||
DIRECTION_STANDARD={"sauce [E]": "up", "dunce [E]": "down", "lease [E]": "left", "Ross [E]": "right", "back": "left" } | |||
#DIRECTION_STANDARD={"sauce [E]": "up", "dunce [E]": "down", "lease [E]": "left", "Ross [E]": "right", "back": "left" } | |||
DIRECTION_STANDARD={"up": "up", "down": "down", "left": "left", "right": "right", "back": "left" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incidentally, these change more than the "curse" command. They affect the direction key commands, ctrl/shift + direction keys, etc. See /lib/ccr/core/nav.py.
Anyway, if you don't like any of the specs for the commands, beyond just changing them in your local copy of Caster, there is an update-proof mechanism for changing specs or actions in a given command without modifying anything which is tracked by git.
You are able to create "filter functions" in the user/ folder (which git ignores). When Caster boots and when you speak the commands to switch programming languages (or otherwise modify the active command set), Caster looks to see if any of these filter functions are present, and if so, modifies the command set however you specify before reactivating it. See user/filters/examples/scen4.py for some examples. Let me know if you have any questions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops sorry you can ignore that change since I was intending to keep it on local. I accidentally submitted this one from the develop branch instead of creating a feature branch. On the plus side, I didn't know about filter functions and they sound useful, so I'll definitely check them out!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They're a newer feature, not in the docs yet.
I noticed with Atom that any rule using the command palette would open the about webpage showing release notes, which is the first item in the list. When I increased the pause it had enough time to add and filter the text before hitting enter. I tried various increments like 10, 20, and finally 30 was the safest number that worked every time. I guess my computer is slower than yours? I hate to make everyone's rules slower but it seems like it's better if it works out of the box on most computers, especially for new users who don't know how to adjust these settings. If you can think of a better solution feel to suggest one. I could also just keep this in my fork if you prefer.