diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index 2c078548bed..e2992bda0ae 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -305,6 +305,7 @@
+
diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/JetTemplateContextType.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/JetTemplateContextType.java
index 30dbfea44a1..9a274b3fb1d 100644
--- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/JetTemplateContextType.java
+++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/JetTemplateContextType.java
@@ -43,9 +43,12 @@ public abstract class JetTemplateContextType extends TemplateContextType {
public boolean isInContext(@NotNull PsiFile file, int offset) {
if (PsiUtilBase.getLanguageAtOffset(file, offset).isKindOf(JetLanguage.INSTANCE)) {
PsiElement element = file.findElementAt(offset);
- if (element instanceof PsiWhiteSpace || element instanceof PsiComment) {
+ if (element instanceof PsiWhiteSpace) {
return false;
}
+ else if (PsiTreeUtil.getParentOfType(element, PsiComment.class, false) != null) {
+ return isCommentInContext();
+ }
else if (PsiTreeUtil.getParentOfType(element, JetPackageDirective.class) != null
|| PsiTreeUtil.getParentOfType(element, JetImportDirective.class) != null) {
return false;
@@ -71,6 +74,10 @@ public abstract class JetTemplateContextType extends TemplateContextType {
return false;
}
+ protected boolean isCommentInContext() {
+ return false;
+ }
+
protected abstract boolean isInContext(@NotNull PsiElement element);
public static class Generic extends JetTemplateContextType {
@@ -82,6 +89,11 @@ public abstract class JetTemplateContextType extends TemplateContextType {
protected boolean isInContext(@NotNull PsiElement element) {
return true;
}
+
+ @Override
+ protected boolean isCommentInContext() {
+ return true;
+ }
}
public static class TopLevel extends JetTemplateContextType {
@@ -170,4 +182,20 @@ public abstract class JetTemplateContextType extends TemplateContextType {
&& !(element.getParent() instanceof JetParameter);
}
}
+
+ public static class Comment extends JetTemplateContextType {
+ public Comment() {
+ super("KOTLIN_COMMENT", "Comment", Generic.class);
+ }
+
+ @Override
+ protected boolean isInContext(@NotNull PsiElement element) {
+ return false;
+ }
+
+ @Override
+ protected boolean isCommentInContext() {
+ return true;
+ }
+ }
}