JSON: implement rainbow highlighter

This commit is contained in:
Anton Lobov
2018-11-09 14:19:11 +01:00
parent ec88df0239
commit ee215ea4bf
2 changed files with 31 additions and 0 deletions
@@ -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"/>