PY-13986 View -> Open In Browser unavailable for Django projects
[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.psi.templateLanguages.TemplateLanguage;
5 import org.jetbrains.annotations.NonNls;
6 import org.jetbrains.annotations.NotNull;
7 import org.jetbrains.annotations.Nullable;
8
9 /**
10  * TODO: Make this class implemeent {@link com.intellij.lang.html.HtmlCompatibleLanguage} to prevent copy/paste by fixing dependencies
11  * Python template language
12  *
13  * @author Ilya.Kazakevich
14  */
15 public abstract class PythonTemplateLanguage extends Language implements TemplateLanguage {
16
17
18   protected PythonTemplateLanguage(@Nullable final Language baseLanguage,
19                                    @NotNull @NonNls final String ID,
20                                    @NotNull @NonNls final String... mimeTypes) {
21     super(baseLanguage, ID, mimeTypes);
22   }
23
24   protected PythonTemplateLanguage(@NotNull @NonNls final String id) {
25     super(id);
26   }
27
28   /**
29    * @return template language readable name
30    */
31   @NotNull
32   public abstract String getTemplateLanguageName();
33
34   /**
35    * Checks if text contains some chars that make us think this text uses appropriate template language and we should set
36    * this language as our project language
37    *
38    * @param text text with chars to check
39    * @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
40    */
41   public abstract boolean isFileLeadsToLanguageSelection(@NotNull String text);
42 }