mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
Merge pull request #3462 from 5atk6/Add_Auto_Complete_Brackets_and_Quotes
Add auto-completion to brackets and quotes
This commit is contained in:
@@ -92,6 +92,14 @@ public abstract class InputHandler extends KeyAdapter
|
||||
|
||||
private static Map<String, ActionListener> actions;
|
||||
|
||||
private static final Map<String, String> bracketsAndQuotesMap = new HashMap<String, String>(){
|
||||
{put("(", ")");}
|
||||
{put("{", "}");}
|
||||
{put("[", "]");}
|
||||
{put("\"", "\"");}
|
||||
{put("\'", "\'");}
|
||||
};
|
||||
|
||||
static
|
||||
{
|
||||
actions = new HashMap<String, ActionListener>();
|
||||
@@ -1157,13 +1165,34 @@ public abstract class InputHandler extends KeyAdapter
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(int i = 0; i < repeatCount; i++)
|
||||
sb.append(str);
|
||||
textArea.overwriteSetSelectedText(sb.toString());
|
||||
if (hasBracketsAndQuotes(str)) {
|
||||
matchBracketsAndQuotes(str, evt, textArea, sb);
|
||||
} else {
|
||||
textArea.overwriteSetSelectedText(sb.toString());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
textArea.getToolkit().beep();
|
||||
}
|
||||
}
|
||||
|
||||
public void matchBracketsAndQuotes(String str, ActionEvent evt,
|
||||
JEditTextArea textArea, StringBuilder sb)
|
||||
{
|
||||
sb.append(bracketsAndQuotesMap.get(str));
|
||||
textArea.overwriteSetSelectedText(sb.toString());
|
||||
InputHandler.PREV_CHAR.actionPerformed(evt);
|
||||
}
|
||||
|
||||
public boolean hasBracketsAndQuotes(String str){
|
||||
for (String bracketsAndQuotes : bracketsAndQuotesMap.keySet())
|
||||
{
|
||||
if (str.equals(bracketsAndQuotes))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user