fix for textarea not working after reloading extension
This commit is contained in:
parent
ebc81bd0d1
commit
faa142ea3f
1 changed files with 75 additions and 62 deletions
|
@ -9,80 +9,93 @@ import java.awt.event.InputEvent
|
|||
import java.awt.event.KeyEvent
|
||||
import javax.swing.AbstractAction
|
||||
import javax.swing.KeyStroke.getKeyStroke
|
||||
import javax.swing.UIManager
|
||||
import javax.swing.event.DocumentEvent
|
||||
import javax.swing.event.DocumentListener
|
||||
import javax.swing.text.JTextComponent
|
||||
import kotlin.math.max
|
||||
|
||||
class Editor(private val editorTyped: () -> Unit, private val transformerSave: () -> Unit) {
|
||||
val textArea = RSyntaxTextArea().apply {
|
||||
syntaxEditingStyle = SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT
|
||||
isCodeFoldingEnabled = true
|
||||
tabSize = 4
|
||||
isBracketMatchingEnabled = true
|
||||
currentLineHighlightColor = Color.LIGHT_GRAY
|
||||
caretColor = Color.BLACK
|
||||
isAutoIndentEnabled = true
|
||||
isEditable = true
|
||||
isEnabled = true
|
||||
val textArea: RSyntaxTextArea
|
||||
|
||||
document.addDocumentListener(object : DocumentListener {
|
||||
override fun insertUpdate(e: DocumentEvent) {
|
||||
editorTyped()
|
||||
init {
|
||||
JTextComponent.removeKeymap("RTextAreaKeymap")
|
||||
|
||||
textArea = RSyntaxTextArea().apply {
|
||||
syntaxEditingStyle = SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT
|
||||
isCodeFoldingEnabled = true
|
||||
tabSize = 4
|
||||
isBracketMatchingEnabled = true
|
||||
currentLineHighlightColor = Color.LIGHT_GRAY
|
||||
caretColor = Color.BLACK
|
||||
isAutoIndentEnabled = true
|
||||
isEditable = true
|
||||
isEnabled = true
|
||||
|
||||
document.addDocumentListener(object : DocumentListener {
|
||||
override fun insertUpdate(e: DocumentEvent) {
|
||||
editorTyped()
|
||||
}
|
||||
|
||||
override fun removeUpdate(e: DocumentEvent) {
|
||||
editorTyped()
|
||||
}
|
||||
|
||||
override fun changedUpdate(e: DocumentEvent) {
|
||||
editorTyped()
|
||||
}
|
||||
})
|
||||
|
||||
inputMap.apply {
|
||||
put(getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK), "Save")
|
||||
put(getKeyStroke(KeyEvent.VK_PLUS, InputEvent.CTRL_DOWN_MASK), "IncreaseFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_EQUALS, InputEvent.CTRL_DOWN_MASK), "IncreaseFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_ADD, InputEvent.CTRL_DOWN_MASK), "IncreaseFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_MINUS, InputEvent.CTRL_DOWN_MASK), "DecreaseFontSize")
|
||||
put(
|
||||
getKeyStroke(
|
||||
KeyEvent.VK_MINUS,
|
||||
InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK
|
||||
), "DecreaseFontSize"
|
||||
)
|
||||
put(getKeyStroke(KeyEvent.VK_SUBTRACT, InputEvent.CTRL_DOWN_MASK), "DecreaseFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_0, InputEvent.CTRL_DOWN_MASK), "ResetFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_NUMPAD0, InputEvent.CTRL_DOWN_MASK), "ResetFontSize")
|
||||
}
|
||||
|
||||
override fun removeUpdate(e: DocumentEvent) {
|
||||
editorTyped()
|
||||
actionMap.apply {
|
||||
put("Save", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
transformerSave()
|
||||
}
|
||||
})
|
||||
put("IncreaseFontSize", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
font = Font(font.name, font.style, font.size + 1)
|
||||
}
|
||||
})
|
||||
put("DecreaseFontSize", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
font = Font(font.name, font.style, max(1, font.size - 1))
|
||||
}
|
||||
})
|
||||
put("ResetFontSize", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
font = Font(font.name, font.style, 12)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun changedUpdate(e: DocumentEvent) {
|
||||
editorTyped()
|
||||
}
|
||||
})
|
||||
|
||||
inputMap.apply {
|
||||
put(getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK), "Save")
|
||||
put(getKeyStroke(KeyEvent.VK_PLUS, InputEvent.CTRL_DOWN_MASK), "IncreaseFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_EQUALS, InputEvent.CTRL_DOWN_MASK), "IncreaseFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_ADD, InputEvent.CTRL_DOWN_MASK), "IncreaseFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_MINUS, InputEvent.CTRL_DOWN_MASK), "DecreaseFontSize")
|
||||
put(
|
||||
getKeyStroke(
|
||||
KeyEvent.VK_MINUS,
|
||||
InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK
|
||||
), "DecreaseFontSize"
|
||||
)
|
||||
put(getKeyStroke(KeyEvent.VK_SUBTRACT, InputEvent.CTRL_DOWN_MASK), "DecreaseFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_0, InputEvent.CTRL_DOWN_MASK), "ResetFontSize")
|
||||
put(getKeyStroke(KeyEvent.VK_NUMPAD0, InputEvent.CTRL_DOWN_MASK), "ResetFontSize")
|
||||
}
|
||||
|
||||
actionMap.apply {
|
||||
put("Save", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
transformerSave()
|
||||
addMouseWheelListener { e ->
|
||||
if (e.isControlDown) {
|
||||
font = Font(font.name, font.style, max(1, font.size - e.wheelRotation))
|
||||
}
|
||||
})
|
||||
put("IncreaseFontSize", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
font = Font(font.name, font.style, font.size + 1)
|
||||
}
|
||||
})
|
||||
put("DecreaseFontSize", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
font = Font(font.name, font.style, max(1, font.size - 1))
|
||||
}
|
||||
})
|
||||
put("ResetFontSize", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
font = Font(font.name, font.style, 12)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
addMouseWheelListener { e ->
|
||||
if (e.isControlDown) {
|
||||
font = Font(font.name, font.style, max(1, font.size - e.wheelRotation))
|
||||
}
|
||||
}
|
||||
|
||||
UIManager.put("RSyntaxTextAreaUI.actionMap", null)
|
||||
UIManager.put("RSyntaxTextAreaUI.inputMap", null)
|
||||
UIManager.put("RTextAreaUI.actionMap", null)
|
||||
UIManager.put("RTextAreaUI.inputMap", null)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue