1 2009-04-16 Jonathan Pryor <jpryor@novell.com>
3 * Monodoc/provider.cs: Overview: MonoDevelop loads monodoc.dll into
4 it's own process, and spawns monodoc GUI into a separate process,
5 then sends Node.URL values (obtained from the MonoDevelop process)
6 to load the documentation into the monodoc GUI. Problem:
7 occasionally the requested documentation isn't loaded, but instead
8 some completely unrelated documentation is shown instead. This is
9 because the Node.URL value contains HelpSource-dependent data, e.g.
10 a Node.URL value of "ecma:0#Foo/" will specify the 1st file
11 within...whatever HelpSource is first consulted by monodoc (which
12 can vary between monodoc runs, the phase of the moon, etc.).
13 Solution: Add a Node.PublicUrl property which returns _stable_ URLs
14 which aren't specific to a given HelpSource.
15 - Add Node.PublicUrl property, which delegates to
16 Provider.GetPublicUrl(string), so that a Provider can generate a
17 Provider-independent URL (if possible).
18 - Print PublicUrl from Node.PrintTree().
19 - Add RootTree.GetSupportedFormats(), RootTree.GetProvider()
21 - Make RootTree.GetHelpSource() public.
22 * Monodoc/ecma-provider.cs: Add EcmaDoc.GetCref() method (generates an
23 XML documentation //see/@cref value), override
24 Provider.GetPublicUrl() (which will return cref's if possible).
26 2009-04-15 Jonathan Pryor <jpryor@novell.com>
28 * Monodoc/ecma-provider.cs: EcmaHelpSource.GetText() doesn't need to
29 call GetCachedText() twice.
31 2009-04-15 Jonathan Pryor <jpryor@novell.com>
33 * Monodoc/provider.cs: Correct UseWebdocCache logic.
34 * Monodoc/xhtml-provider.cs: Use GetCachedText().
36 2009-04-15 Jonathan Pryor <jpryor@novell.com>
38 * Monodoc/provider.cs: UseWebdocCache is a better name that
39 IgnoreCache (considering that cache is disabled by default).
41 2009-04-15 Jonathan Pryor <jpryor@novell.com>
43 * Monodoc/provider.cs:
44 - Add HelpSource.IgnoreCache field, so that if the cache is present
45 it will be ignored. (Required by 'mdoc export-html-webdoc' so it
46 gets "fresh" content to generate the cache, and by monodoc GUI as
47 it can't use the cache'd HTML; cache'd HTML is for ASP.NET
49 - Alter the cache directory from e.g. sources/netdocs to
50 sources/cache/netdocs (as defined by
51 XmlDocUtils.GetCacheDirectory()).
52 - Add HelpSource.GetCachedText() method which will return the
53 contents of the cache for an id.
54 * Monodoc/addins-provider.cs, Monodoc/ecma-provider.cs,
55 Monodoc/error-provider.cs, Monodoc/man-provider.cs,
56 Monodoc/simple-provider.cs: Use GetCachedText().
57 * Mono.Documentation/XmlDocUtils.cs: Add GetCacheDirectory(),
58 GetCacheFileName() methods.
60 2009-04-14 Jonathan Pryor <jpryor@novell.com>
62 * Monodoc/provider.cs: Fix NullReferenceException in 'mdoc dump-tree'.
64 2009-04-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
66 * ecma-provider.cs: remove 'using'.
67 * provider.cs: if there's a directory with the base name, read the
68 files from there instead of from the .zip file.
70 2009-03-01 Jonathan Pryor <jpryor@novell.com>
72 * Monodoc/ecma-provider.cs: Viewing type members (plural, e.g. the
73 Fields sub-node) would result in a stack overflow within
74 Resources/mdoc-html-utils.xsl:GetInheritedMembers(), because the
75 document() XSLT function was being used to obtain the base type's
76 documentation. It stack overflowed because the XmlUrlResolver was
77 being used, which when given e.g. file:///DocAttribute.xml, would
78 return file:///DocAttribute.xml (which makes sense), but it was
79 non-terminating. (I find this troubling as it should have been
80 trying to resolve e.g. System.Attribute, not DocAttribute; it must
81 be some XmlTransform-fu that was substituting documents.)
82 The fix is for EcmaUncompiledHelpSource to provide an alternate
83 document XmlResolver, one which always returns null from
84 XmlResolver.ResolveUri(), thus preventing endless recursion.
86 2009-03-01 Jonathan Pryor <jpryor@novell.com>
88 * Mono.Documentation/XmlDocUtils.cs: It's possible for the `loader'
89 delegate to return `null' if no further base types are found, so
90 stop processing if we find a null base type.
91 * Monodoc/provider.cs:
92 - Make GetHelpStream() virtual so that EcmaUncompiledHelpSource can
93 override it, as the default zip-based behavior is inappropriate.
94 - Make GetHelpXmlWithChanges() virtual so that
95 EcmaUncompiledHelpSource can override it, as the default zip-based
96 behavior is inappropriate.
97 - When initializing UncompiledHelpSources, set the
98 HelpSource.RootTree property (avoids an NRE from
99 EcmaHelpSource.GetTextFromUrl() when it reads RootTree.HelpSources).
100 * Monodoc/ecma-provider.cs:
101 - Within the XmlDocUtils.AddExtensionMethods() call, don't always
102 prefix the type with "T:", as sometimes the type will already start
103 with "T:", which is the case with EcmaUncompiledHelpSource ids.
104 - Add EcmaUncompiledHelpSource.GetHelpStream() and
105 EcmaUncompiledHelpSource.GetHelpXmlWithChanges(), which Do The
106 Right Thing for the file-based backend.
108 2009-03-01 Jonathan Pryor <jpryor@novell.com>
110 * Monodoc/ecma-provider.cs: For some reason,
111 EcmaHelpSource.GetNamespaceDocument() wasn't being used anymore,
112 which is what EcmaUncompiledHelpSource overrides to permit loading
113 of local files. Result: an exception when trying to view namespaces
114 of local (non-assembled) directories. Oops. "Fixes" 443508.
116 2009-02-26 Jonathan Pryor <jonpryor@vt.edu>
118 * Monodoc/provider.cs: Revert; Don't check for Tree.Nodes == null, as it
119 happens in numerous places. Instead, take a page out of the "I
120 never should have invented `null'" book, and ensure that Tree.Nodes
121 can never be null. This fixes the "HelpSource has 0 items" issue
122 and several other related ones.
124 2009-02-26 Jonathan Pryor <jonpryor@vt.edu>
126 * Monodoc/provider.cs: It's possible for a HelpSource to have 0
127 elements (which can be done by e.g. running `mdoc assemble' on an
128 empty directory), in which case HelpSource.Tree.Nodes will be null.
129 Make sure that we don't get a NullReferenceException.
130 Patch thanks to Theerud Lawtrakul. Fixes #443699.
132 2009-02-25 Jonathan Pryor <jonpryor@vt.edu>
135 - s/TEST_FILES/MAN_TEST_FILES/g: $(TEST_FILES) is used by the normal
136 build process, so the local definition is lost (and thus ignored).
137 Result: Test/* isn't actually copied. Oops. Changing to
138 MAN_TEST_FILES allows things to be copied.
139 - Fix the filenames within $(MAN_TEST_FILES) so `make dist-local'
143 2009-02-09 Jonathan Pryor <jonpryor@vt.edu>
145 * Makefile: Don't include mono-ecma-css.js as a resource.
146 * Monodoc/ecma-provider.cs: Insert helper.js, not mono-ecma-css.js.
147 * Monodoc/provider.cs: Surround the contents of `helper.js' with a
148 <script/> block so that valid HTMl is generated.
149 * Resources/helper.js: Remove <script/> block, so that `helper.js' is an
150 actual JavaScript file, not an SGML file w/ JavaScript content.
151 * Resources/mono-ecma-css.js: Remove; use Resources/helper.js instead.
153 2009-01-05 Jonathan Pryor <jonpryor@vt.edu>
155 * Makefile: Fix $(the_lib) dependencies so that monodoc.dll is rebuilt
156 when one of Resources/* is modified.
157 * Resources/mdoc-html-utils.xsl: Rework the Requirements block so that
158 it doesn't require //AssemblyInfo or //AssemblyVersion. This allows
159 `mdoc update -fno-assembly-versions ...`-produced XML to still
160 produce HTML with a Requirements section (skipping the Assembly
161 Versions block but generating the Namespace and Assembly blocks).
162 Change the behavior of //since generation so that instead of
163 printing out a note before the method summary, a Since block is added
164 to the Requirements section, and the Since block contains the
165 //since/@version text. All this to make Mike Kestner happier. :-)
167 2008-10-29 Jonathan Pryor <jonpryor@vt.edu>
169 * Monodoc/xhtml-provider.cs: Use HelpSource.Message(), not
172 2008-10-28 Jonathan Pryor <jonpryor@vt.edu>
174 * Monodoc/provider.cs: Add HelpSource.InlineCss and
175 HelpSource.InlineJavaScript virtual properties, so that the help
176 source can provide specific CSS and JavaScript to be included into
177 the generated HTML document. This is used by the ASP.NET front-end,
178 as it needs to insert the CSS & JavaScript separately (as it also
179 inserts its own CSS & JavaScript).
180 * Monodoc/ecma-provider.cs, Monodoc/ecmaspec-provider.cs,
181 Monodoc/error-provider.cs: Override InlineCss & InlineJavaScript, as
184 2008-10-24 Jonathan Pryor <jonpryor@vt.edu>
186 * Monodoc/addins-provider.cs, Monodoc/ecma-provider.cs,
187 Monodoc/ecmaspec-provider.cs, Monodoc/error-provider.cs,
188 Monodoc/man-provider.cs, Monodoc/monohb-provider.cs,
189 Monodoc/provider.cs: Remove Console.WriteLine() spew; helps cleanup
190 `make` output in mcs/docs (from `mdoc assemble`, which indirectly
191 invokes most of the *-provider files). We solve this problem by
192 providing a TraceLevel-based message system, so that messages are
193 only generated if they are less than or equal to the requested
194 output level (thus skipping the more verbose "every file" messages
195 from ecma-provider.cs & error-provider.cs).
196 * provider.cs: Change Node.CompareTo() to use a "natural sorting"
197 algorithm -- this allows the C# Language Specification nodes to
198 continue being displayed in the correct order.
200 2008-10-21 Jonathan Pryor <jonpryor@vt.edu>
202 * Monodoc/provider.cs:
203 - Fix Node.Sort() so that it doesn't NRE if nodes == null.
204 - Fix Node.CompareTo() so that it can sort Nodes that haven't been
206 - Add "libraries" as an alias for "root", so that .source files can
207 refer to the parent "libraries" (which would allow us to change
208 the location of "libraries" in the future, should we want to).
209 - If a /monodoc/source/@path refers to a nonexistant node, then
210 insert the contents under Various instead of ignoring it.
211 - Sort the top-level nodes.
212 - Sort the `parent` node after inserting children under it. This
213 allows multiple different .source files to insert nodes under the
214 same parent node and still have the child nodes sorted as most
215 mortals would expect.
216 - Support a //node/@parent attribute, which allows for creating
217 nodes underneath the specified parent node. This allows multiple
218 different .source files to contribute to the tree and depend upon
219 each other. Thus, instead of having a single monodoc.xml file
220 that needs to know the entire tree in advance, the entire tree can
221 be spread across multiple .source files and filled at runtime.
223 2008-10-18 Jonathan Pryor <jonpryor@vt.edu>
225 * Makefile $(LIBRARY_PACKAGE): Set to `monodoc`, as we historically
226 have had a monodoc package (and thus should preserve it).
228 2008-10-17 Jonathan Pryor <jonpryor@vt.edu>
230 * Makefile: Distribute monodoc.dll.config.in.
232 2008-10-17 Jonathan Pryor <jonpryor@vt.edu>
234 * Makefile: Generate a monodoc.dll.config (installed by gacutil), so
235 that monodoc.dll can find the documentation sources.
237 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
239 * Mono.Documentation/ManifestResourceResolver.cs,
240 Mono.Documentation/XmlDocUtils.cs: Make types public so that they
241 can be used from ../mdoc/mdoc.exe.
243 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
245 * Makefile: Update $(thisdir).
247 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
249 * Assmbly/AssemblyInfo.cs: Change location of mono.snk (since the
250 monodoc directory was moved from mcs/class to mcs/tools).
252 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
254 * Makefile: Improve `make clean` support.
256 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
258 * Makefile: Add EXTRA_DISTFILES; monodoc.dll should depend upon
259 Makefile (in case the /resource: lines change); shorten the .gif
262 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
264 * Test (svn:ignore): Ignore generated files.
265 * Makefile: Add tests for man-provider.
267 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
269 * ChangeLog: Added/Started.
270 * Makefile: Added; build monodoc.dll.