Browse Source

[Documentation] Added support for relative redirection targets.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
33efe343d6
  1. 11
      ICSharpCode.NRefactory/Documentation/XmlDocumentationProvider.cs

11
ICSharpCode.NRefactory/Documentation/XmlDocumentationProvider.cs

@ -121,7 +121,7 @@ namespace ICSharpCode.NRefactory.Documentation @@ -121,7 +121,7 @@ namespace ICSharpCode.NRefactory.Documentation
this.fileName = fileName;
ReadXmlDoc(xmlReader);
} else {
string redirectionTarget = GetRedirectionTarget(xmlReader.GetAttribute("redirect"));
string redirectionTarget = GetRedirectionTarget(fileName, xmlReader.GetAttribute("redirect"));
if (redirectionTarget != null) {
Debug.WriteLine("XmlDoc " + fileName + " is redirecting to " + redirectionTarget);
using (FileStream redirectedFs = new FileStream(redirectionTarget, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Delete)) {
@ -138,7 +138,7 @@ namespace ICSharpCode.NRefactory.Documentation @@ -138,7 +138,7 @@ namespace ICSharpCode.NRefactory.Documentation
}
}
static string GetRedirectionTarget(string target)
static string GetRedirectionTarget(string xmlFileName, string target)
{
string programFilesDir = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86);
programFilesDir = AppendDirectorySeparator(programFilesDir);
@ -146,8 +146,11 @@ namespace ICSharpCode.NRefactory.Documentation @@ -146,8 +146,11 @@ namespace ICSharpCode.NRefactory.Documentation
string corSysDir = System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory();
corSysDir = AppendDirectorySeparator(corSysDir);
return LookupLocalizedXmlDoc(target.Replace("%PROGRAMFILESDIR%", programFilesDir)
.Replace("%CORSYSDIR%", corSysDir));
var fileName = target.Replace ("%PROGRAMFILESDIR%", programFilesDir)
.Replace ("%CORSYSDIR%", corSysDir);
if (!Path.IsPathRooted (fileName))
fileName = Path.Combine (Path.GetDirectoryName (xmlFileName), fileName);
return LookupLocalizedXmlDoc(fileName);
}
static string AppendDirectorySeparator(string dir)

Loading…
Cancel
Save