-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Added ESC, Y, A, N, and S as keyboard shortcuts to the Replace and Find ... #5969
Conversation
I replaced the == with === in order to pass the Travis CI test. |
Adding a couple drive-by comments... also @mrplants, we need you to sign the contributor agreement before this can be merged. |
@@ -572,6 +572,30 @@ define(function (require, exports, module) { | |||
modalBar = null; | |||
} | |||
}); | |||
modalBar.getRoot().on("keyup", function (e) { | |||
if (e.keyCode === 27 /*ESC*/ || e.keyCode === 89 /*Y*/ || e.keyCode === 65 /*A*/ || e.keyCode === 78 /*N*/ || e.keyCode === 83 /*S*/) { |
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.
Should use the KeyEvent
constants here
Also, looks like this pull request adds an empty file called "Run"... can you remove that from the diff? |
One last point: I wondered whether the mnemonics Y/N/S/A should be localized since the buttons will have different labels in other locales. But we don't do that for any other shortcuts, and it's already covered by the shortcut localization story -- so IMHO no need to worry about it here. |
@peterflynn Maybe we should just pick the first char out of the string, for example in german |
@SAplayer How do we map the first letter to a KeyEvent value? What if it's Chinese? String parsing would be difficult in that case I assume. |
@peterflynn I made the changes and signed the agreement. Thanks for the help. @SAplayer: So the keyboard commands would be: This way, it can be language-agnostic. Let me know what you think and I'll implement it. |
I realized this wasn't a good idea, too. We had to implement special cases like if two strings began with the same char. @peterflynn Maybe we could add the shortcut key to the modalbar, so german would be |
modalBar.prepareClose(); | ||
modalBar.close(); | ||
} | ||
} |
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.
Using a switch would make this code block cleaner. And you don't really need the first If, if you are then handling each keyCode in it's own if.
Are there any other problems with this Pull Request that I should fix? |
Yes. Please use JSLint when coding for Brackets. If you code in Brackets just enable it to check the code. Right now there is an error with the switch, which should be |
@mrplants We're currently trying to close down Sprint 34, so we're not merging any pull requests until that is done. I'll take a final look probably next week. |
I found a JSLinter and fixed my code. Please advise for any other changes when you review the pull request again. |
@mrplants This is a nice improvement! This code doesn't quite follow the existing flow of code. I can see 2 ways (so far) where this causes bugs:
Look at the code in the |
The Escape and Stop cases are doing the same thing:
So they can be consolidated:
Note that this code will likely change due to my previous comment, but these 2 cases will probably still be the same and can still be consolidated. |
Done with review. Let me know when you push fixes to your branch and I'll review again. |
Note that it's best practice to create a branch for your changes. This way you can update your master branch with brackets repo updates, etc. without affecting your pull request. This also allows you to have multiple pull requests. |
Closing since this is going to be invalidated by the find/replace UI cleanup user story within the next day or two. I'll see if I can work the keyboard handling into that change. If not, @mrplants would you be willing to set up a new pull request based on that newer code after it lands? |
@peterflynn Definitely. I would love to take responsibility for that. Let me know when I should pull and I'll make the necessary changes to add keyboard handling. On a side note, I'm a student and I have an assignment to improve a data structure in an open source project. Do you think that Brackets has this? I'm looking for a project with the following restrictions: The improvement will increase efficiency or speed Any ideas? I realize that the assignment is kind of useless and out of scope, but if you could find something like this for me, I would really appreciate it. |
Submitting fix to bug: #5005. ESC, Y, A, N, and S keyboard shortcuts were added to the Replace and Find function. No deletion of code was necessary. I simply attached a handler to the 'modalBar' object that watched for key events and performed the necessary functions fi the above keyCodes were realized.