mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-22 16:54:20 +01:00
Fix issue #3502: behavior of Cmd+[ and Cmd+] on Mac OS X.
This commit is contained in:
parent
fa4876b7b1
commit
05be1480d4
@ -45,8 +45,8 @@ public class SketchTextAreaDefaultInputMap extends RSyntaxTextAreaDefaultInputMa
|
|||||||
|
|
||||||
remove(KeyStroke.getKeyStroke(KeyEvent.VK_J, defaultModifier));
|
remove(KeyStroke.getKeyStroke(KeyEvent.VK_J, defaultModifier));
|
||||||
|
|
||||||
put(KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, defaultModifier), DefaultEditorKit.insertTabAction);
|
put(KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, defaultModifier), RSyntaxTextAreaEditorKit.rstaDecreaseIndentAction);
|
||||||
put(KeyStroke.getKeyStroke(KeyEvent.VK_CLOSE_BRACKET, defaultModifier), RSyntaxTextAreaEditorKit.rstaDecreaseIndentAction);
|
put(KeyStroke.getKeyStroke(KeyEvent.VK_CLOSE_BRACKET, defaultModifier), SketchTextAreaEditorKit.rtaIncreaseIndentAction);
|
||||||
|
|
||||||
put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, defaultModifier | shift), DefaultEditorKit.selectionBeginAction);
|
put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, defaultModifier | shift), DefaultEditorKit.selectionBeginAction);
|
||||||
put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, defaultModifier | shift), DefaultEditorKit.selectionEndAction);
|
put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, defaultModifier | shift), DefaultEditorKit.selectionEndAction);
|
||||||
|
@ -13,10 +13,12 @@ public class SketchTextAreaEditorKit extends RSyntaxTextAreaEditorKit {
|
|||||||
|
|
||||||
public static final String rtaDeleteNextWordAction = "RTA.DeleteNextWordAction";
|
public static final String rtaDeleteNextWordAction = "RTA.DeleteNextWordAction";
|
||||||
public static final String rtaDeleteLineToCursorAction = "RTA.DeleteLineToCursorAction";
|
public static final String rtaDeleteLineToCursorAction = "RTA.DeleteLineToCursorAction";
|
||||||
|
public static final String rtaIncreaseIndentAction = "RTA.IncreaseIndentAction";
|
||||||
|
|
||||||
private static final Action[] defaultActions = {
|
private static final Action[] defaultActions = {
|
||||||
new DeleteNextWordAction(),
|
new DeleteNextWordAction(),
|
||||||
new DeleteLineToCursorAction(),
|
new DeleteLineToCursorAction(),
|
||||||
|
new IncreaseIndentAction(),
|
||||||
new SelectWholeLineAction(),
|
new SelectWholeLineAction(),
|
||||||
new ToggleCommentAction()
|
new ToggleCommentAction()
|
||||||
};
|
};
|
||||||
@ -103,6 +105,39 @@ public class SketchTextAreaEditorKit extends RSyntaxTextAreaEditorKit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increases the indent of the selected or current line(s).
|
||||||
|
*/
|
||||||
|
public static class IncreaseIndentAction extends RSyntaxTextAreaEditorKit.InsertTabAction {
|
||||||
|
|
||||||
|
public IncreaseIndentAction() {
|
||||||
|
super(rtaIncreaseIndentAction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformedImpl(ActionEvent e, RTextArea textArea) {
|
||||||
|
int caretPosition = textArea.getCaretPosition();
|
||||||
|
boolean noSelec = textArea.getSelectedText() == null;
|
||||||
|
|
||||||
|
// if no selection, focus on first char.
|
||||||
|
if (noSelec) {
|
||||||
|
try {
|
||||||
|
int line = textArea.getCaretLineNumber();
|
||||||
|
int startOffset = textArea.getLineStartOffset(line);
|
||||||
|
textArea.setCaretPosition(startOffset);
|
||||||
|
} catch (BadLocationException ex) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert Tab or Spaces..
|
||||||
|
super.actionPerformedImpl(e, textArea);
|
||||||
|
|
||||||
|
if (noSelec) {
|
||||||
|
textArea.setCaretPosition(caretPosition + (textArea.getTabsEmulated() ? textArea.getTabSize() : 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Selects the line around the caret.
|
* Selects the line around the caret.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user