// <file> // <copyright see="prj:///doc/copyright.txt"/> // <license see="prj:///doc/license.txt"/> // <owner name="Mike Krüger" email="mike@icsharpcode.net"/> // <version>$Revision$</version> // </file> using System; using System.Collections.Generic; using System.IO; using System.Reflection; using System.Xml; namespace ICSharpCode.TextEditor.Document { public class ResourceSyntaxModeProvider : ISyntaxModeFileProvider { List<SyntaxMode> syntaxModes = null; public ICollection<SyntaxMode> SyntaxModes { get { return syntaxModes; } } public ResourceSyntaxModeProvider() { Assembly assembly = typeof(SyntaxMode).Assembly; Stream syntaxModeStream = assembly.GetManifestResourceStream("ICSharpCode.TextEditor.Resources.SyntaxModes.xml"); if (syntaxModeStream != null) { syntaxModes = SyntaxMode.GetSyntaxModes(syntaxModeStream); } else { syntaxModes = new List<SyntaxMode>(); } } public XmlTextReader GetSyntaxModeFile(SyntaxMode syntaxMode) { Assembly assembly = typeof(SyntaxMode).Assembly; return new XmlTextReader(assembly.GetManifestResourceStream("ICSharpCode.TextEditor.Resources." + syntaxMode.FileName)); } public void UpdateSyntaxModeList() { // resources don't change during runtime } } }