From 8b03bad6e4f167c81e78a8fdbe0cd48289665599 Mon Sep 17 00:00:00 2001 From: Dennis Ushakov Date: Thu, 27 Nov 2014 17:32:01 +0300 Subject: [PATCH] add annotators only once per language --- .../plugincomponents/SettingsProviderComponent.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/editorconfig/src/org/editorconfig/plugincomponents/SettingsProviderComponent.java b/plugins/editorconfig/src/org/editorconfig/plugincomponents/SettingsProviderComponent.java index feeebb8de1c0..f588b81f349b 100644 --- a/plugins/editorconfig/src/org/editorconfig/plugincomponents/SettingsProviderComponent.java +++ b/plugins/editorconfig/src/org/editorconfig/plugincomponents/SettingsProviderComponent.java @@ -1,5 +1,6 @@ package org.editorconfig.plugincomponents; +import com.intellij.lang.Language; import com.intellij.lang.LanguageAnnotators; import com.intellij.openapi.components.ApplicationComponent; import com.intellij.openapi.components.ServiceManager; @@ -35,10 +36,15 @@ public class SettingsProviderComponent implements ApplicationComponent { } public void registerAnnotator(FileTypeManager manager) { + final Set languages = new HashSet(); final EditorConfigAnnotator annotator = new EditorConfigAnnotator(); for (FileType type : manager.getRegisteredFileTypes()) { if (type instanceof LanguageFileType) { - LanguageAnnotators.INSTANCE.addExplicitExtension(((LanguageFileType)type).getLanguage(), annotator); + final Language language = ((LanguageFileType)type).getLanguage(); + final String id = language.getID(); + if (languages.contains(id)) continue; + LanguageAnnotators.INSTANCE.addExplicitExtension(language, annotator); + languages.add(id); } } }