From ee215ea4bfc9636d3f0235b082e5359a0aa679af Mon Sep 17 00:00:00 2001 From: Anton Lobov Date: Fri, 9 Nov 2018 13:47:30 +0100 Subject: [PATCH] JSON: implement rainbow highlighter --- .../json/highlighting/JsonRainbowVisitor.java | 30 +++++++++++++++++++ .../src/META-INF/JsonPlugin.xml | 1 + 2 files changed, 31 insertions(+) create mode 100644 json/src/com/intellij/json/highlighting/JsonRainbowVisitor.java diff --git a/json/src/com/intellij/json/highlighting/JsonRainbowVisitor.java b/json/src/com/intellij/json/highlighting/JsonRainbowVisitor.java new file mode 100644 index 000000000000..bebe022d6af1 --- /dev/null +++ b/json/src/com/intellij/json/highlighting/JsonRainbowVisitor.java @@ -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(); + } +} diff --git a/platform/platform-resources/src/META-INF/JsonPlugin.xml b/platform/platform-resources/src/META-INF/JsonPlugin.xml index aec0bb12d234..bde5fdaf60a7 100644 --- a/platform/platform-resources/src/META-INF/JsonPlugin.xml +++ b/platform/platform-resources/src/META-INF/JsonPlugin.xml @@ -108,6 +108,7 @@ +