File addin-syntax.patch of Package monodevelop
Index: src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Extension/TemplateCodon.cs
===================================================================
--- src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Extension/TemplateCodon.cs (revision 130903)
+++ src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Extension/TemplateCodon.cs (revision 130904)
@@ -46,7 +46,7 @@
resource = file = null;
}
- public XmlTextReader Open ()
+ public XmlReader Open ()
{
Stream stream;
if (!string.IsNullOrEmpty (file)) {
@@ -59,9 +59,9 @@
throw new InvalidOperationException ("Template file or resource not provided");
}
- using (stream) {
- return new XmlTextReader (stream);
- }
+ XmlReaderSettings settings = new XmlReaderSettings ();
+ settings.CloseInput = true;
+ return XmlTextReader.Create (stream, settings);
}
}
}
Index: src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/SyntaxModeService.cs
===================================================================
--- src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/SyntaxModeService.cs (revision 130903)
+++ src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/SyntaxModeService.cs (revision 130904)
@@ -88,7 +88,7 @@
{
if (!styleLookup.ContainsKey (name))
throw new System.ArgumentException ("Style " + name + " not found", "name");
- XmlTextReader reader = styleLookup [name].Open ();
+ XmlReader reader = styleLookup [name].Open ();
try {
styles [name] = Style.LoadFrom (reader);
} finally {
@@ -100,7 +100,7 @@
{
if (!syntaxModeLookup.ContainsKey (mimeType))
throw new System.ArgumentException ("Syntax mode for mime:" + mimeType + " not found", "mimeType");
- XmlTextReader reader = syntaxModeLookup [mimeType].Open ();
+ XmlReader reader = syntaxModeLookup [mimeType].Open ();
try {
SyntaxMode mode = SyntaxMode.Read (reader);
foreach (string mime in mode.MimeType.Split (';')) {
@@ -463,7 +463,7 @@
queueSignal.Set ();
}
- static string Scan (XmlTextReader reader, string attribute)
+ static string Scan (XmlReader reader, string attribute)
{
while (reader.Read () && !reader.IsStartElement ())
;
@@ -524,25 +524,29 @@
if (!resource.EndsWith (".xml"))
continue;
if (resource.EndsWith ("SyntaxMode.xml")) {
- XmlTextReader reader = new XmlTextReader (assembly.GetManifestResourceStream (resource));
- string mimeTypes = Scan (reader, SyntaxMode.MimeTypesAttribute);
- ResourceXmlProvider provider = new ResourceXmlProvider (assembly, resource);
- foreach (string mimeType in mimeTypes.Split (';')) {
- syntaxModeLookup [mimeType] = provider;
+ using (Stream stream = assembly.GetManifestResourceStream (resource)) {
+ XmlTextReader reader = new XmlTextReader (stream);
+ string mimeTypes = Scan (reader, SyntaxMode.MimeTypesAttribute);
+ ResourceXmlProvider provider = new ResourceXmlProvider (assembly, resource);
+ foreach (string mimeType in mimeTypes.Split (';')) {
+ syntaxModeLookup [mimeType] = provider;
+ }
+ reader.Close ();
}
- reader.Close ();
} else if (resource.EndsWith ("Style.xml")) {
- XmlTextReader reader = new XmlTextReader (assembly.GetManifestResourceStream (resource));
- string styleName = Scan (reader, Style.NameAttribute);
- styleLookup [styleName] = new ResourceXmlProvider (assembly, resource);
- reader.Close ();
+ using (Stream stream = assembly.GetManifestResourceStream (resource)) {
+ XmlTextReader reader = new XmlTextReader (stream);
+ string styleName = Scan (reader, Style.NameAttribute);
+ styleLookup [styleName] = new ResourceXmlProvider (assembly, resource);
+ reader.Close ();
+ }
}
}
}
public static void AddSyntaxMode (IXmlProvider provider)
{
- using (XmlTextReader reader = provider.Open ()) {
+ using (XmlReader reader = provider.Open ()) {
string mimeTypes = Scan (reader, SyntaxMode.MimeTypesAttribute);
foreach (string mimeType in mimeTypes.Split (';')) {
syntaxModeLookup [mimeType] = provider;
@@ -552,7 +556,7 @@
public static void RemoveSyntaxMode (IXmlProvider provider)
{
- using (XmlTextReader reader = provider.Open ()) {
+ using (XmlReader reader = provider.Open ()) {
string mimeTypes = Scan (reader, SyntaxMode.MimeTypesAttribute);
foreach (string mimeType in mimeTypes.Split (';')) {
syntaxModeLookup.Remove (mimeType);
@@ -562,14 +566,14 @@
public static void AddStyle (IXmlProvider provider)
{
- using (XmlTextReader reader = provider.Open ()) {
+ using (XmlReader reader = provider.Open ()) {
string styleName = Scan (reader, Style.NameAttribute);
styleLookup [styleName] = provider;
}
}
public static void RemoveStyle (IXmlProvider provider)
{
- using (XmlTextReader reader = provider.Open ()) {
+ using (XmlReader reader = provider.Open ()) {
string styleName = Scan (reader, Style.NameAttribute);
styleLookup.Remove (styleName);
}
Index: src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/IXmlProvider.cs
===================================================================
--- src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/IXmlProvider.cs (revision 130903)
+++ src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/IXmlProvider.cs (revision 130904)
@@ -32,7 +32,7 @@
{
public interface IXmlProvider
{
- XmlTextReader Open ();
+ XmlReader Open ();
}
public class ResourceXmlProvider : IXmlProvider
@@ -58,9 +58,11 @@
this.manifestResourceName = manifestResourceName;
}
- public XmlTextReader Open ()
+ public XmlReader Open ()
{
- return new XmlTextReader (this.assembly.GetManifestResourceStream (this.ManifestResourceName));
+ XmlReaderSettings settings = new XmlReaderSettings ();
+ settings.CloseInput = true;
+ return XmlTextReader.Create (this.assembly.GetManifestResourceStream (this.ManifestResourceName), settings);
}
}
@@ -79,7 +81,7 @@
this.url = url;
}
- public XmlTextReader Open ()
+ public XmlReader Open ()
{
return new XmlTextReader (url);
}