if (shortcutChar == templateSettings.getDefaultShortcutChar()) {
for (final CustomLiveTemplate customLiveTemplate : CustomLiveTemplate.EP_NAME.getExtensions()) {
final CustomTemplateCallback callback = new CustomTemplateCallback(editor, file);
+ callback.fixInitialEditorState();
String key = customLiveTemplate.computeTemplateKey(callback);
if (key != null) {
int offset = callback.getEditor().getCaretModel().getOffset();
callback.getEditor().getDocument().deleteString(offset - key.length(), offset);
- callback.fixInitialEditorState();
customLiveTemplate.execute(key, callback, new TemplateInvokationListener() {
public void finished(boolean inSeparateEvent) {
callback.finish();
int startOffset = parentStart > lineStart ? parentStart : lineStart;
String key = computeKey(editor, startOffset);
List<MyToken> tokens = parse(key, callback);
- if (tokens != null) {
- if (check(tokens)) {
- return key;
+ if (tokens != null && check(tokens)) {
+ if (tokens.size() == 2) {
+ MyToken token = tokens.get(0);
+ if (token instanceof MyTemplateToken) {
+ if (key.equals(((MyTemplateToken)token).myKey) && callback.isLiveTemplateApplicable(key)) {
+ // do not activate only live template
+ return null;
+ }
+ }
}
+ return key;
}
if (element != null) {
element = element.getParent();