Register syntax highlighters directly in XML when possible (work in progress)

GitOrigin-RevId: 3480dde4157a0132d7e294ce8e4a68706ed724b4
This commit is contained in:
Dmitry Jemerov
2019-08-22 01:50:10 +03:00
committed by intellij-monorepo-bot
parent 038948feb0
commit a79ec1f885
10 changed files with 7 additions and 74 deletions
@@ -2,7 +2,7 @@
<extensionPoints>
<extensionPoint qualifiedName="org.jetbrains.webServerPathHandler" interface="org.jetbrains.builtInWebServer.WebServerPathHandler"/>
<extensionPoint qualifiedName="org.jetbrains.webServerFileHandler" interface="org.jetbrains.builtInWebServer.WebServerFileHandler"/>
<extensionPoint qualifiedName="org.jetbrains.webServerRootsProvider" interface="org.jetbrains.builtInWebServer.WebServerRootsProvider"/>
<extensionPoint qualifiedName="org.jetbrains.webServerRootsProvider" interface="org.jetbrains.builtInWebServer.WebServerRootsProvider" dynamic="true"/>
<extensionPoint name="httpRequestHandler" interface="org.jetbrains.ide.HttpRequestHandler"/>
<extensionPoint qualifiedName="org.jetbrains.binaryRequestHandler" interface="org.jetbrains.ide.BinaryRequestHandler"/>
@@ -38,7 +38,7 @@ import com.intellij.lang.properties.refactoring.PropertiesRefactoringSettings;
import com.intellij.lang.properties.structureView.PropertiesSeparatorManager;
import com.intellij.lang.properties.xml.XmlPropertiesIconProvider;
import com.intellij.lang.properties.xml.XmlPropertiesIndex;
import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory;
import com.intellij.openapi.fileTypes.LanguageSyntaxHighlighters;
import com.intellij.psi.ElementManipulators;
import com.intellij.psi.impl.cache.impl.id.IdIndexers;
import com.intellij.psi.impl.cache.impl.idCache.PropertiesIdIndexer;
@@ -56,8 +56,8 @@ public class PropertiesCoreEnvironment {
public static class ApplicationEnvironment {
public ApplicationEnvironment(CoreApplicationEnvironment appEnvironment) {
appEnvironment.registerFileType(PropertiesFileType.INSTANCE, "properties");
appEnvironment.addExplicitExtension(SyntaxHighlighterFactory.LANGUAGE_FACTORY, PropertiesLanguage.INSTANCE,
new PropertiesSyntaxHighlighterFactory());
appEnvironment.addExplicitExtension(LanguageSyntaxHighlighters.INSTANCE, PropertiesLanguage.INSTANCE,
new PropertiesHighlighter());
appEnvironment.addExplicitExtension(LanguageParserDefinitions.INSTANCE, PropertiesLanguage.INSTANCE, new PropertiesParserDefinition());
appEnvironment.addExtension(FileBasedIndexExtension.EXTENSION_POINT_NAME, new XmlPropertiesIndex());
appEnvironment.addExtension(StubIndexExtension.EP_NAME, new PropertyKeyIndex());
@@ -1,32 +0,0 @@
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.properties;
import com.intellij.lang.properties.PropertiesHighlighter;
import com.intellij.openapi.fileTypes.SingleLazyInstanceSyntaxHighlighterFactory;
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
import org.jetbrains.annotations.NotNull;
/**
* @author Anna Bulenkova
*/
public class PropertiesSyntaxHighlighterFactory extends SingleLazyInstanceSyntaxHighlighterFactory {
@NotNull
@Override
protected SyntaxHighlighter createHighlighter() {
return new PropertiesHighlighter();
}
}
+1
View File
@@ -13,6 +13,7 @@ Adds support for working with shell script files
</li></ul>]]></description>
<extensions defaultExtensionNs="com.intellij">
<fileType language="Shell Script" extensions="sh;bash;zsh" fieldName="INSTANCE" name="Shell Script" implementationClass="com.intellij.sh.ShFileType"/>
<lang.syntaxHighlighter language="Shell Script" implementationClass="com.intellij.sh.highlighter.ShSyntaxHighlighter"/>
<lang.parserDefinition language="Shell Script" implementationClass="com.intellij.sh.parser.ShParserDefinition"/>
<lang.commenter language="Shell Script" implementationClass="com.intellij.sh.ShCommenter"/>
<lang.quoteHandler language="Shell Script" implementationClass="com.intellij.sh.ShQuoteHandler"/>
@@ -2,14 +2,11 @@
package com.intellij.sh;
import com.intellij.lang.Language;
import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory;
import com.intellij.sh.highlighter.ShHighlighterFactory;
public class ShLanguage extends Language {
public static final Language INSTANCE = new ShLanguage();
public ShLanguage() {
super("Shell Script", "application/x-bsh", "application/x-sh", "text/x-script.sh");
SyntaxHighlighterFactory.LANGUAGE_FACTORY.addExplicitExtension(this, new ShHighlighterFactory());
}
}
@@ -1,14 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.sh.highlighter;
import com.intellij.openapi.fileTypes.SingleLazyInstanceSyntaxHighlighterFactory;
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
import org.jetbrains.annotations.NotNull;
public class ShHighlighterFactory extends SingleLazyInstanceSyntaxHighlighterFactory {
@Override
@NotNull
protected SyntaxHighlighter createHighlighter() {
return new ShSyntaxHighlighter();
}
}
@@ -8,6 +8,7 @@
<framework.detector implementation="com.jetbrains.python.buildout.BuildoutFrameworkDetector"/>
<lang.parserDefinition language="BuildoutCfg" implementationClass="com.jetbrains.python.buildout.config.BuildoutCfgParserDefinition"/>
<lang.syntaxHighlighter language="BuildoutCfg" implementationClass="com.jetbrains.python.buildout.config.BuildoutCfgSyntaxHighlighter"/>
<fileType name="BuildoutCfg"
language="BuildoutCfg"
fileNamesCaseInsensitive="buildout.cfg"
@@ -2,9 +2,6 @@
package com.jetbrains.python.buildout.config;
import com.intellij.lang.Language;
import com.intellij.openapi.fileTypes.SingleLazyInstanceSyntaxHighlighterFactory;
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory;
import org.jetbrains.annotations.NotNull;
/**
@@ -15,13 +12,6 @@ public class BuildoutCfgLanguage extends Language {
private BuildoutCfgLanguage() {
super("BuildoutCfg");
SyntaxHighlighterFactory.LANGUAGE_FACTORY.addExplicitExtension(this, new SingleLazyInstanceSyntaxHighlighterFactory() {
@Override
@NotNull
protected SyntaxHighlighter createHighlighter() {
return new BuildoutCfgSyntaxHighlighter();
}
});
}
@NotNull
+1 -1
View File
@@ -17,7 +17,7 @@
<lang.foldingBuilder language="RELAX-NG" implementationClass="org.intellij.plugins.relaxNG.compact.folding.RncFoldingBuilder" />
<lang.formatter language="RELAX-NG" implementationClass="org.intellij.plugins.relaxNG.compact.formatting.RncFormattingModelBuilder" />
<lang.namesValidator language="RELAX-NG" implementationClass="org.intellij.plugins.relaxNG.compact.RngCompactLanguage$MyNamesValidator" />
<lang.syntaxHighlighterFactory language="RELAX-NG" implementationClass="org.intellij.plugins.relaxNG.compact.RngCompactLanguage$MySyntaxHighlighterFactory" />
<lang.syntaxHighlighter language="RELAX-NG" implementationClass="org.intellij.plugins.relaxNG.compact.RncHighlighter" />
<lang.elementManipulator forClass="org.intellij.plugins.relaxNG.compact.psi.RncFileReference" implementationClass="org.intellij.plugins.relaxNG.RncFileReferenceManipulator" />
@@ -22,8 +22,6 @@ import com.intellij.lang.Language;
import com.intellij.lang.PairedBraceMatcher;
import com.intellij.lang.documentation.DocumentationProvider;
import com.intellij.lang.refactoring.NamesValidator;
import com.intellij.openapi.fileTypes.SingleLazyInstanceSyntaxHighlighterFactory;
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiComment;
import com.intellij.psi.PsiElement;
@@ -143,12 +141,4 @@ public class RngCompactLanguage extends Language {
return null;
}
}
public static class MySyntaxHighlighterFactory extends SingleLazyInstanceSyntaxHighlighterFactory {
@Override
@NotNull
protected SyntaxHighlighter createHighlighter() {
return new RncHighlighter();
}
}
}