Merge remote-tracking branch 'origin/master' into test2
[idea/community.git] / python / openapi / src / com / jetbrains / python / templateLanguages / PythonTemplateLanguage.java
1 package com.jetbrains.python.templateLanguages;
2
3 import com.intellij.lang.Language;
4 import com.intellij.openapi.module.Module;
5 import com.intellij.psi.templateLanguages.TemplateLanguage;
6 import org.jetbrains.annotations.NonNls;
7 import org.jetbrains.annotations.NotNull;
8 import org.jetbrains.annotations.Nullable;
9
10 /**
11  * Python template language
12  * @author Ilya.Kazakevich
13  */
14 public abstract class PythonTemplateLanguage extends Language implements TemplateLanguage {
15
16
17   protected PythonTemplateLanguage(@Nullable final Language baseLanguage,
18                                 @NotNull @NonNls final String ID,
19                                 @NotNull @NonNls final String... mimeTypes) {
20     super(baseLanguage, ID, mimeTypes);
21   }
22
23   protected PythonTemplateLanguage(@NotNull @NonNls final String id) {
24     super(id);
25   }
26
27   /**
28    * @return template language readable name
29    */
30   @NotNull
31   public abstract String getTemplateLanguageName();
32
33   /**
34    * Checks if text contains some chars that make us think this text uses appropriate template language and we should set
35    * this language as our project language
36    *
37    * @param text text with chars to check
38    * @return text contains some chars that make us think this text uses appropriate template language and we should set this language as our project language
39    */
40   public abstract boolean isFileLeadsToLanguageSelection(@NotNull String text);
41 }