private IHighlightingStrategy LoadDefinition(DictionaryEntry entry) { var syntaxMode = (SyntaxMode) entry.Key; var syntaxModeFileProvider = (ISyntaxModeFileProvider) entry.Value; DefaultHighlightingStrategy highlightingStrategy = null; try { var reader = syntaxModeFileProvider.GetSyntaxModeFile(syntaxMode); if (reader == null) throw new HighlightingDefinitionInvalidException("Could not get syntax mode file for " + syntaxMode.Name); highlightingStrategy = HighlightingDefinitionParser.Parse(syntaxMode, reader); if (highlightingStrategy.Name != syntaxMode.Name) throw new HighlightingDefinitionInvalidException("The name specified in the .xshd '" + highlightingStrategy.Name + "' must be equal the syntax mode name '" + syntaxMode.Name + "'"); } finally { if (highlightingStrategy == null) highlightingStrategy = DefaultHighlighting; HighlightingDefinitions[syntaxMode.Name] = highlightingStrategy; highlightingStrategy.ResolveReferences(); } return highlightingStrategy; }