boolean (@Nullable Character shortcutChar, @NotNull Editor editor, @NotNull PsiFile file, int offset) { CustomTemplateCallback callback = new CustomTemplateCallback(editor, file); TemplateActionContext templateActionContext = TemplateActionContext.expanding(file, editor); for (CustomLiveTemplate customLiveTemplate : TemplateManagerImpl.listApplicableCustomTemplates(templateActionContext)) { ProgressManager.checkCanceled(); if (customLiveTemplate instanceof CustomLiveTemplateBase) { if ((shortcutChar == null || customLiveTemplate.getShortcut() == shortcutChar.charValue()) && ((CustomLiveTemplateBase)customLiveTemplate).hasCompletionItem(callback, offset)) { return customLiveTemplate.computeTemplateKey(callback) != null; } } } return false; }