mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Register syntax highlighters directly in XML when possible (work in progress)
GitOrigin-RevId: 3480dde4157a0132d7e294ce8e4a68706ed724b4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
038948feb0
commit
a79ec1f885
@@ -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"/>
|
||||
|
||||
+3
-3
@@ -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());
|
||||
|
||||
-32
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user