Intellij idea Intellij插件-如何为项目视图文件背景着色?

Intellij idea Intellij插件-如何为项目视图文件背景着色?,intellij-idea,intellij-plugin,Intellij Idea,Intellij Plugin,如图所示。颜色通知是彩色的。这是通过创建一个作用域并将该文件添加到该作用域中来实现的 但是,我想根据需要标记文件。例如,我将单击该颜色通知并将该文件标记为绿色或黄色 我只需要知道如何访问此项目视图并以编程方式更改背景色。 我知道intellij插件的创建者并不多,但我还是会试试运气 根据我的调查,有FileColorManager、ProjectView、UIManager等,但我找不到哪一个负责这些颜色处理更改…只是猜测而已。您是否尝试过实现com.intellij.ide.projectVi

如图所示。颜色通知是彩色的。这是通过创建一个作用域并将该文件添加到该作用域中来实现的

但是,我想根据需要标记文件。例如,我将单击该颜色通知并将该文件标记为绿色或黄色

我只需要知道如何访问此项目视图并以编程方式更改背景色。

我知道intellij插件的创建者并不多,但我还是会试试运气


根据我的调查,有FileColorManager、ProjectView、UIManager等,但我找不到哪一个负责这些颜色处理更改…

只是猜测而已。您是否尝试过实现
com.intellij.ide.projectView.projectViewNodeCorator
扩展点?这似乎可以让您装饰项目视图中的节点

正如我们发现的那样,设置背景色并不容易。但您可以在要高亮显示的每个节点的末尾添加一个字符串(如复选标记)。以下是一个例子:

public class ProvectViewColorer implements ProjectViewNodeDecorator {

  @Override
  public void decorate(ProjectViewNode node, PresentationData data) {
    final VirtualFile virtualFile = node.getVirtualFile();
    if (virtualFile != null && virtualFile.getFileType().equals(MathematicaFileType.INSTANCE)) {
      data.setLocationString("✓");
    }
  }

  @Override
  public void decorate(PackageDependenciesNode node, ColoredTreeCellRenderer cellRenderer) {

  }
}