From 957b201fc1238f4b19ec2daaecdc67a0526a215c Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Fri, 19 May 2017 15:28:49 +0100 Subject: [PATCH] Add commenting and track-changes keyboard shortcuts. --- .../web/app/views/project/editor/editor.pug | 2 ++ .../ide/editor/directives/aceEditor.coffee | 26 +++++++++++++++++-- .../controllers/ReviewPanelController.coffee | 11 ++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index b94eedf3ed..96b3fd2f6d 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -51,6 +51,8 @@ div.full-size( file-name="editor.open_doc_name", on-ctrl-enter="recompileViaKey", on-ctrl-j="toggleReviewPanel", + on-ctrl-shift-c="addNewCommentFromKbdShortcut", + on-ctrl-shift-a="toggleTrackChangesFromKbdShortcut", syntax-validation="settings.syntaxValidation", review-panel="reviewPanel", events-bridge="reviewPanelEventsBridge" diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor.coffee index 8ba351d775..7290771022 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor.coffee @@ -50,8 +50,10 @@ define [ annotations: "=" navigateHighlights: "=" fileName: "=" - onCtrlEnter: "=" - onCtrlJ: "=" + onCtrlEnter: "=" # Compile + onCtrlJ: "=" # Toggle the review panel + onCtrlShiftC: "=" # Add a new comment + onCtrlShiftA: "=" # Toggle track-changes on/off syntaxValidation: "=" reviewPanel: "=" eventsBridge: "=" @@ -172,6 +174,26 @@ define [ callback() readOnly: true + scope.$watch "onCtrlShiftC", (callback) -> + if callback? + editor.commands.addCommand + name: "add-new-comment", + bindKey: win: "Ctrl-Shift-C", mac: "Command-Shift-C" + exec: (editor) => + selection = editor.getSelection() + if !selection.isEmpty() + callback() + readOnly: true + + scope.$watch "onCtrlShiftA", (callback) -> + if callback? + editor.commands.addCommand + name: "toggle-track-changes", + bindKey: win: "Ctrl-Shift-A", mac: "Command-Shift-A" + exec: (editor) => + callback() + readOnly: true + # Make '/' work for search in vim mode. editor.showCommandLine = (arg) => if arg == "/" diff --git a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee index 46eb75aba0..e906460112 100644 --- a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee +++ b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee @@ -329,6 +329,11 @@ define [ $scope.$broadcast "comment:start_adding" $scope.toggleReviewPanel() + $scope.addNewCommentFromKbdShortcut = () -> + $scope.$broadcast "comment:start_adding" + if !$scope.ui.reviewPanelOpen + $scope.toggleReviewPanel() + $scope.startNewComment = () -> $scope.$broadcast "comment:select_line" $timeout () -> @@ -479,6 +484,12 @@ define [ event_tracking.sendMB "rp-trackchanges-toggle", { value } else $scope.openTrackChangesUpgradeModal() + + $scope.toggleTrackChangesFromKbdShortcut = () -> + if $scope.editor.wantTrackChanges + $scope.toggleTrackChanges false + else + $scope.toggleTrackChanges true ide.socket.on "toggle-track-changes", (value) -> $scope.$apply () ->