[Editor] Add Ctrl+Enter shortcut to executing executable scripts
This commit is contained in:
@@ -14,6 +14,7 @@ import org.fxmisc.richtext.model.StyleSpans
|
||||
import java.time.Duration
|
||||
import java.util.*
|
||||
import java.util.concurrent.Executors
|
||||
import kotlin.math.max
|
||||
|
||||
|
||||
class CodeEditor(
|
||||
@@ -71,7 +72,7 @@ class CodeEditor(
|
||||
private fun initAutoIndents() {
|
||||
editor.addEventHandler(KeyEvent.KEY_PRESSED) { event ->
|
||||
if (event.code === KeyCode.ENTER) {
|
||||
WHITESPACE.find(editor.getParagraph(editor.currentParagraph - 1).segments[0])?.apply {
|
||||
WHITESPACE.find(editor.getParagraph(max(editor.currentParagraph - 1, 0)).segments[0])?.apply {
|
||||
editor.insertText(editor.caretPosition, value)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.bartlomiejpluta.base.editor.code.view.editor
|
||||
|
||||
import com.bartlomiejpluta.base.editor.main.component.EditorFragment
|
||||
import com.bartlomiejpluta.base.editor.main.component.EditorTab.Companion.EXECUTE_SHORTCUT
|
||||
import com.bartlomiejpluta.base.editor.main.component.EditorTab.Companion.REDO_SHORTCUT
|
||||
import com.bartlomiejpluta.base.editor.main.component.EditorTab.Companion.SAVE_SHORTCUT
|
||||
import com.bartlomiejpluta.base.editor.main.component.EditorTab.Companion.UNDO_SHORTCUT
|
||||
@@ -17,6 +18,11 @@ class CodeEditorFragment : EditorFragment() {
|
||||
|
||||
override fun handleShortcut(event: KeyEvent) {
|
||||
when {
|
||||
EXECUTE_SHORTCUT.match(event) -> {
|
||||
editorView.execute()
|
||||
event.consume()
|
||||
}
|
||||
|
||||
SAVE_SHORTCUT.match(event) -> {
|
||||
editorView.save()
|
||||
event.consume()
|
||||
|
||||
@@ -15,6 +15,7 @@ class EditorTab<T : EditorFragment>(val fragment: T, graphic: Node) : Tab() {
|
||||
fun handleShortcut(event: KeyEvent) = fragment.handleShortcut(event)
|
||||
|
||||
companion object {
|
||||
val EXECUTE_SHORTCUT = keyCombination("Ctrl+Enter")!!
|
||||
val SAVE_SHORTCUT = keyCombination("Ctrl+S")!!
|
||||
val UNDO_SHORTCUT = keyCombination("Ctrl+Z")!!
|
||||
val REDO_SHORTCUT = keyCombination("Ctrl+Y")!!
|
||||
|
||||
Reference in New Issue
Block a user