-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAppSyntaxModeProvider.cs
57 lines (49 loc) · 1.59 KB
/
AppSyntaxModeProvider.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
using System.Reflection;
using ICSharpCode.TextEditor.Document;
namespace RagnarokNpcEditor
{
public class AppSyntaxModeProvider : ISyntaxModeFileProvider
{
List<SyntaxMode> syntaxModes = null;
public ICollection<SyntaxMode> SyntaxModes
{
get
{
return syntaxModes;
}
}
public AppSyntaxModeProvider()
{
Assembly assembly = Assembly.GetExecutingAssembly();
//enumerate resource names if need
//foreach (string resourceName in assembly.GetManifestResourceNames()){}
//load modes list
Stream syntaxModeStream = assembly.GetManifestResourceStream("RagnarokNpcEditor.Resources.SyntaxModes.xml");
if (syntaxModeStream != null)
{
syntaxModes = SyntaxMode.GetSyntaxModes(syntaxModeStream);
}
else
{
syntaxModes = new List<SyntaxMode>();
}
}
public XmlTextReader GetSyntaxModeFile(SyntaxMode syntaxMode)
{
Assembly assembly = Assembly.GetExecutingAssembly();
// load syntax schema
Stream stream = assembly.GetManifestResourceStream("RagnarokNpcEditor.Resources." + syntaxMode.FileName);
return new XmlTextReader(stream);
}
public void UpdateSyntaxModeList()
{
// resources don't change during runtime
}
}
}