diff --git a/browser/components/CodeEditor.js b/browser/components/CodeEditor.js index 1323c514..b5e06a66 100644 --- a/browser/components/CodeEditor.js +++ b/browser/components/CodeEditor.js @@ -59,6 +59,7 @@ export default class CodeEditor extends React.Component { tabSize: this.props.indentSize, indentWithTabs: this.props.indentType !== 'space', keyMap: this.props.keyMap, + scrollPastEnd: this.props.scrollPastEnd, inputStyle: 'textarea', dragDrop: false, extraKeys: { @@ -153,6 +154,10 @@ export default class CodeEditor extends React.Component { this.editor.setOption('indentWithTabs', this.props.indentType !== 'space') } + if (prevProps.scrollPastEnd !== this.props.scrollPastEnd) { + this.editor.setOption('scrollPastEnd', this.props.scrollPastEnd) + } + if (needRefresh) { this.editor.refresh() } diff --git a/browser/components/MarkdownEditor.js b/browser/components/MarkdownEditor.js index d4fa6e89..e329d281 100644 --- a/browser/components/MarkdownEditor.js +++ b/browser/components/MarkdownEditor.js @@ -242,6 +242,7 @@ class MarkdownEditor extends React.Component { fontSize={editorFontSize} indentType={config.editor.indentType} indentSize={editorIndentSize} + scrollPastEnd={config.editor.scrollPastEnd} storageKey={storageKey} onChange={(e) => this.handleChange(e)} onBlur={(e) => this.handleBlur(e)} @@ -259,6 +260,7 @@ class MarkdownEditor extends React.Component { codeBlockFontFamily={config.editor.fontFamily} lineNumber={config.preview.lineNumber} indentSize={editorIndentSize} + scrollPastEnd={config.editor.scrollPastEnd} ref='preview' onContextMenu={(e) => this.handleContextMenu(e)} tabIndex='0' diff --git a/browser/finder/NoteDetail.js b/browser/finder/NoteDetail.js index 9d2f8da4..4c59ea30 100644 --- a/browser/finder/NoteDetail.js +++ b/browser/finder/NoteDetail.js @@ -157,6 +157,7 @@ class NoteDetail extends React.Component { indentType={config.editor.indentType} indentSize={editorIndentSize} keyMap={config.editor.keyMap} + scrollPastEnd={config.editor.scrollPastEnd} readOnly ref={'code-' + index} /> diff --git a/browser/main/Detail/SnippetNoteDetail.js b/browser/main/Detail/SnippetNoteDetail.js index 6b18a5a0..bec6573b 100644 --- a/browser/main/Detail/SnippetNoteDetail.js +++ b/browser/main/Detail/SnippetNoteDetail.js @@ -565,6 +565,7 @@ class SnippetNoteDetail extends React.Component { indentType={config.editor.indentType} indentSize={editorIndentSize} keyMap={config.editor.keyMap} + scrollPastEnd={config.editor.scrollPastEnd} onChange={(e) => this.handleCodeChange(index)(e)} ref={'code-' + index} /> diff --git a/browser/main/lib/ConfigManager.js b/browser/main/lib/ConfigManager.js index c49594b9..fc9b4ee9 100644 --- a/browser/main/lib/ConfigManager.js +++ b/browser/main/lib/ConfigManager.js @@ -34,7 +34,8 @@ export const DEFAULT_CONFIG = { fontFamily: win ? 'Segoe UI' : 'Monaco, Consolas', indentType: 'space', indentSize: '2', - switchPreview: 'BLUR' // Available value: RIGHTCLICK, BLUR + switchPreview: 'BLUR', // Available value: RIGHTCLICK, BLUR + scrollPastEnd: false }, preview: { fontSize: '14', diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index 66f58ade..42afd8f4 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -73,7 +73,8 @@ class UiTab extends React.Component { indentType: this.refs.editorIndentType.value, indentSize: this.refs.editorIndentSize.value, switchPreview: this.refs.editorSwitchPreview.value, - keyMap: this.refs.editorKeyMap.value + keyMap: this.refs.editorKeyMap.value, + scrollPastEnd: this.refs.scrollPastEnd.checked }, preview: { fontSize: this.refs.previewFontSize.value, @@ -279,6 +280,17 @@ class UiTab extends React.Component { +