From 93d0e0aa2df5f315065ea2bfbf77cb3fc3fc59ee Mon Sep 17 00:00:00 2001 From: azivner Date: Mon, 22 Jan 2018 22:14:03 -0500 Subject: [PATCH] fixes for indentation and keyboard shortcuts --- public/javascripts/note_editor.js | 29 +++++++++++++++++++++-------- public/javascripts/note_tree.js | 5 +++-- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/public/javascripts/note_editor.js b/public/javascripts/note_editor.js index 6cb7ce710..af7ca8fb6 100644 --- a/public/javascripts/note_editor.js +++ b/public/javascripts/note_editor.js @@ -171,6 +171,20 @@ const noteEditor = (function() { return editor; } + function focus() { + const note = getCurrentNote(); + + if (note.detail.type === 'text') { + noteDetailEl.focus(); + } + else if (note.detail.type === 'code') { + codeEditor.focus(); + } + else { + throwError('Unrecognized type: ' + note.detail.type); + } + } + $(document).ready(() => { noteTitleEl.on('input', () => { noteChanged(); @@ -192,19 +206,17 @@ const noteEditor = (function() { console.error(error); }); + CodeMirror.keyMap.default["Shift-Tab"] = "indentLess"; + CodeMirror.keyMap.default["Tab"] = "indentMore"; + codeEditor = CodeMirror($("#note-detail-code")[0], { value: "", - viewportMargin: Infinity + viewportMargin: Infinity, + indentUnit: 4, }); codeEditor.on('change', noteChanged); - codeEditor.setOption("extraKeys", { - 'Ctrl-.': function(cm) { - noteTree.scrollToCurrentNote(); - } - }); - // so that tab jumps from note title (which has tabindex 1) noteDetailEl.attr("tabindex", 2); }); @@ -222,6 +234,7 @@ const noteEditor = (function() { getCurrentNote, getCurrentNoteId, newNoteCreated, - getEditor + getEditor, + focus }; })(); \ No newline at end of file diff --git a/public/javascripts/note_tree.js b/public/javascripts/note_tree.js index 85fbf08bf..736ca0597 100644 --- a/public/javascripts/note_tree.js +++ b/public/javascripts/note_tree.js @@ -4,7 +4,6 @@ const noteTree = (function() { const treeEl = $("#tree"); const parentListEl = $("#parent-list"); const parentListListEl = $("#parent-list-list"); - const noteDetailEl = $("#note-detail"); let startNotePath = null; let notesTreeMap = {}; @@ -504,7 +503,9 @@ const noteTree = (function() { return false; }, "return": node => { - noteDetailEl.focus(); + noteEditor.focus(); + + return false; }, "backspace": node => { if (!isTopLevelNode(node)) {