mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
JSON: implement rainbow highlighter
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
// Copyright 2000-2018 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.json.highlighting;
|
||||
|
||||
import com.intellij.codeInsight.daemon.RainbowVisitor;
|
||||
import com.intellij.codeInsight.daemon.impl.HighlightVisitor;
|
||||
import com.intellij.json.psi.JsonFile;
|
||||
import com.intellij.json.psi.JsonProperty;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class JsonRainbowVisitor extends RainbowVisitor {
|
||||
@Override
|
||||
public boolean suitableForFile(@NotNull PsiFile file) {
|
||||
return file instanceof JsonFile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(@NotNull PsiElement element) {
|
||||
if (element instanceof JsonProperty) {
|
||||
addInfo(getInfo(element.getContainingFile(), element, ((JsonProperty)element).getName(), JsonSyntaxHighlighterFactory.JSON_PROPERTY_KEY));
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HighlightVisitor clone() {
|
||||
return new JsonRainbowVisitor();
|
||||
}
|
||||
}
|
||||
@@ -108,6 +108,7 @@
|
||||
<lang.lineWrapStrategy language="JSON" implementationClass="com.intellij.json.formatter.JsonLineWrapPositionStrategy"/>
|
||||
<gotoDeclarationHandler implementation="com.jetbrains.jsonSchema.impl.JsonSchemaGotoDeclarationHandler"/>
|
||||
<copyPastePostProcessor implementation="com.intellij.json.editor.JsonCopyPastePostProcessor"/>
|
||||
<highlightVisitor implementation="com.intellij.json.highlighting.JsonRainbowVisitor"/>
|
||||
</extensions>
|
||||
<extensions defaultExtensionNs="JavaScript">
|
||||
<JsonSchema.ProviderFactory implementation="com.jetbrains.jsonSchema.extension.JsonSchemaUserDefinedProviderFactory"/>
|
||||
|
||||
Reference in New Issue
Block a user