Added class context type for live templates.
This commit is contained in:
@@ -91,6 +91,7 @@
|
|||||||
<liveTemplateContext implementation="org.jetbrains.jet.plugin.liveTemplates.JetTemplateContextType$Generic"/>
|
<liveTemplateContext implementation="org.jetbrains.jet.plugin.liveTemplates.JetTemplateContextType$Generic"/>
|
||||||
<liveTemplateContext implementation="org.jetbrains.jet.plugin.liveTemplates.JetTemplateContextType$Namespace"/>
|
<liveTemplateContext implementation="org.jetbrains.jet.plugin.liveTemplates.JetTemplateContextType$Namespace"/>
|
||||||
<liveTemplateContext implementation="org.jetbrains.jet.plugin.liveTemplates.JetTemplateContextType$Statement"/>
|
<liveTemplateContext implementation="org.jetbrains.jet.plugin.liveTemplates.JetTemplateContextType$Statement"/>
|
||||||
|
<liveTemplateContext implementation="org.jetbrains.jet.plugin.liveTemplates.JetTemplateContextType$Class"/>
|
||||||
<defaultLiveTemplatesProvider implementation="org.jetbrains.jet.plugin.liveTemplates.JetLiveTemplatesProvider"/>
|
<defaultLiveTemplatesProvider implementation="org.jetbrains.jet.plugin.liveTemplates.JetLiveTemplatesProvider"/>
|
||||||
<liveTemplateMacro implementation="org.jetbrains.jet.plugin.liveTemplates.macro.JetVariableOfTypeMacro"/>
|
<liveTemplateMacro implementation="org.jetbrains.jet.plugin.liveTemplates.macro.JetVariableOfTypeMacro"/>
|
||||||
<liveTemplateMacro implementation="org.jetbrains.jet.plugin.liveTemplates.macro.JetFunctionParametersMacro"/>
|
<liveTemplateMacro implementation="org.jetbrains.jet.plugin.liveTemplates.macro.JetFunctionParametersMacro"/>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import org.jetbrains.jet.plugin.JetLanguage;
|
|||||||
* @since 1/27/12
|
* @since 1/27/12
|
||||||
*/
|
*/
|
||||||
public abstract class JetTemplateContextType extends TemplateContextType {
|
public abstract class JetTemplateContextType extends TemplateContextType {
|
||||||
protected JetTemplateContextType(@NotNull @NonNls String id, @NotNull String presentableName, @Nullable Class<? extends TemplateContextType> baseContextType) {
|
protected JetTemplateContextType(@NotNull @NonNls String id, @NotNull String presentableName, @Nullable java.lang.Class<? extends TemplateContextType> baseContextType) {
|
||||||
super(id, presentableName, baseContextType);
|
super(id, presentableName, baseContextType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,6 +74,32 @@ public abstract class JetTemplateContextType extends TemplateContextType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Class extends JetTemplateContextType {
|
||||||
|
public Class() {
|
||||||
|
super("KOTLIN_CLASS", "Class", Generic.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean isInContext(@NotNull PsiElement element) {
|
||||||
|
PsiElement e = element;
|
||||||
|
while (e != null && !(e instanceof JetClassOrObject)) {
|
||||||
|
if (e instanceof JetModifierList) {
|
||||||
|
// skip property/function/class or object which is owner of modifier list
|
||||||
|
e = e.getParent();
|
||||||
|
if (e != null) {
|
||||||
|
e = e.getParent();
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (e instanceof JetProperty || e instanceof JetNamedFunction) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
e = e.getParent();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class Statement extends JetTemplateContextType {
|
public static class Statement extends JetTemplateContextType {
|
||||||
public Statement() {
|
public Statement() {
|
||||||
super("KOTLIN_STATEMENT", "Statement", Generic.class);
|
super("KOTLIN_STATEMENT", "Statement", Generic.class);
|
||||||
|
|||||||
Reference in New Issue
Block a user