Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/api-doc-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mdoc
AgeCommit message (Collapse)Author
2017-03-30WIP: now matching mismatched generic type namesmdoc-typeparam-alternateJoel Martinez
2017-03-29version bump to 5.0.0.14Joel Martinez
2017-03-29mdoc: no longer skips documenting forwarded types.Joel Martinez
Resolves #53
2017-03-27bumped mdoc version to 5.0.0.13Joel Martinez
2017-03-27mdoc: switched configuration to anycpu.Joel Martinez
Resolves #49. Additionally, enabled optimizations in release mode.
2017-03-27mdoc: Cache processing avoids processing some member typesJoel Martinez
2017-03-27version bump to 5.0.0.11Joel Martinez
2017-03-27mdoc: Now caching all framework member lookups.Joel Martinez
This full resolves #44 as it also uses the correct member formatter for member comparisons
2017-03-27version bump to 5.0.0.10Joel Martinez
2017-03-27mdoc: Support for VB Explicitly Implemented Interface membersJoel Martinez
Since VB.NET can explicitly implement a member without using the same naming convention as you might use in C#, it was causing some issues with mdoc matching xml member nodes to reflected types. In particular, the cases supported with this patch are: - interface type and member name concatenated. e.g. `IListAdd` - same as above, but when the interface doesn’t match the interface where the member is defined. e.g. `ICollection` inherits `IEnumerable`. So `System.Collections.IEnumerable.GetEnumerator` is expressed in some types as `ICollectionGetEnumerator` - same name as the interface member e.g. `Microsoft.VisualBasic.Compability.VB6.BaseControlArray$System.ComponentModel.ISupportInitialize.BeginInit` Related #44
2017-03-17mdoc: Extension method comparison improved.Joel Martinez
This fixes an issue where an extension method in multiple frameworks might have a slightly different signature, due to a different parameter name, resulting in an InvalidOperationException because a duplicate extension was added to the index file. Additionally, this improves robustness of assembly search paths. Related to to #27.
2017-03-15mdoc: FrameworkTypeEntry now uses ILAsm for lookup purposes.Joel Martinez
2017-03-15version bump to 5.0.0.8Joel Martinez
2017-03-15mdoc: Resolves issue in fx mode with overridden members.Joel Martinez
When a type overrides a member in one framework, but does not in another framework processed after the first, the Member node was being removed, even though the entry remained in teh first framework index file. This Resolves #39
2017-03-08mdoc: Support for alternate inheritance chains in frameworks.Joel Martinez
If a framework has a different inheritance chain, another `Base/BaseTypeName` element will be added with a `FrameworkAlternate` attribute. Resolves #16
2017-03-07mdoc: special characters in attributes are now filtered.Joel Martinez
Fixes #32, which was an issue with the ascii null character. It caused the resulting XML to be malformed.
2017-03-07mdoc: Added MemberGroup as valid elementJoel Martinez
A MemberGroup can be intermixed amongst the other Member nodes. It will be sorted to be in front of the other similarly named Members. It must contain a MemberName attribute, and can have: Docs, and AssemblyInfo nodes. Resolves #35
2017-03-03Frameworks Mode for Update Commandpreview-5.0.0.6Joel Martinez
mdoc now supports documenting multiple frameworks. You can use this new functionality by passing the path to a configuration file in the `-frameworks` (or `-fx` for short) parameter. ``` mdoc update -o path/to/documentationXML -frameworks path/to/frameworks.xml ``` This command will result in one XML file per framework in the `path/to/documentationXML/FrameworksIndex` folder. ``` xml <?xml version="1.0" encoding="utf-8"?> <Framework Name="Two"> <Namespace Name="MyFramework.MyOtherNamespace"> <Type Name="MyFramework.MyOtherNamespace.MyOtherClass" Id="T:MyFramework.MyOtherNamespace.MyOtherClass"> <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.#ctor" /> ... </Type> </Namespace> </Framework> ``` Configuration File This is a sample configuration file: ``` xml <?xml version="1.0" encoding="utf-8"?> <Frameworks> <Framework Name="One" Source="One"> <assemblySearchPath>dependencies/One</assemblySearchPath> </Framework> <Framework Name="Two" Source="Two"> <assemblySearchPath>dependencies/Two</assemblySearchPath> </Framework> </Frameworks> ``` Note that the `assemblySearchPath` is meant to house dependent assemblies that mono.cecil must be able to resolve. You can have as many as you need for each framework if you happen to have them separated into multiple folders. Also the `-L` parameter applies globally to every framework. Frameworks Config Bootstrap To simplify the tedium of creating the configuration file, a simple command was added that will use the folder structure to create a basic configuration file: ``` csharp mdoc fx-bootstrap path/to/frameworks ``` This will create a file at `path/to/frameworks/frameworks.xml`, using the folders in `path/to/frameworks` as the names/paths DocId Signatures You can now pass a flag to add a `DocId` signature to every `Type` and `Member` node. ``` mdoc update -o out/path some.dll -use-docid ``` _please note_: framework index files will _always_ use the DocId as their identifiers. Frameworks Index files Grouped by Namespace Framework index files now have types grouped by namespace. Example: ``` xml <?xml version="1.0" encoding="utf-8"?> <Framework Name="Two"> <Namespace Name="MyFramework.MyOtherNamespace"> <Type Name="MyFramework.MyOtherNamespace.MyOtherClass" Id="T:MyFramework.MyOtherNamespace.MyOtherClass"> <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.#ctor" /> ... </Type> </Namespace> </Framework> ``` Bug Fixes and Enhancements - Resolves #13 - Resolves #27 - Resolves #31 - Resolves #33
2017-02-18mdoc: some minor additions to mdoc tests.Joel Martinez
These files were inadvertently left out of PRs that were merged to master
2017-02-18mdoc: adds 'forInternalUseOnly` to XSD. (#25)Joel Martinez
Resolves #12
2017-02-17mdoc: Resolves an issue with generic array extension methods. (#22)Joel Martinez
Closes #6
2017-02-16mdoc: Failing to load an assembly is no longer a fatal error. (#23)Joel Martinez
In some cases, for example when running in "frameworks" mode (ie. https://github.com/mono/api-doc-tools/pull/18), you might have non-managed .dlls in the directory. This change allows mdoc to simply write the fact that it couldn't load the assembly, and continue doing work. Resolves #7 Potentially provides a temporary workaround for #8, #9
2017-02-03New top level solution, makefile targets, and submodule dependencies.Joel Martinez
You can `make prepare all check` to compile and run unit tests. Additionally, you can open `apidoctools.sln` in Visual Studio to develop and debug. _Please Note:_ You will have to `make prepare all CONFIGURATION=Debug` for VS to work, as this compiles external dependencies, and copies them to the `bin/Debug` folder, where VS will be expecting them.
2016-10-08Fix monodoc tests on WindowsNiklas Therning
These tests are sensitive to differences in line endings between Windows and other platforms. This patch changes the diff commands used on Windows to ignore changes in whitespaces at end of lines.
2016-10-08[mdoc] Remove --exclude=.svn from diff argumentsAlexander Köplinger
We don't use svn anymore since a very long time and some diff implementations (e.g. in Alpine) don't support --exclude. Removing the argument is an easy fix.
2016-10-08[mdoc] Update project fileMarek Safar
2016-10-08[bcl] Reflect cecil breaking changesMarek Safar
2016-10-08Merge pull request #2377 from joelmartinez/docs-multiassembly-extension-fixJonathan Pryor
[mdoc] Extension method crash fix, removes -multiassembly
2016-10-08[genproj] Do not use \r on the Unix parts of the build hook, add RabbitMQ hooksMiguel de Icaza
2016-10-08[msbuild projects] Use newlines without a carriage return for Unix targets ↵Miguel de Icaza
to appease MS msbuild
2016-10-08[genproj] Now we can build all executables with msbuild as wellMiguel de Icaza
2016-10-08[build] Change the way how mcs references are passed to compiler to always ↵Marek Safar
use full path. One of csc prerequisites because csc uses -lib as path which is considered after RuntimeEnvironment.GetRuntimeDirectory which makes -lib useless
2016-10-08[build] Use full filename for csc referencesMarek Safar
2016-10-08[corlib] Fix Delegate.Combine() to throw on non-matching typesAlexander Köplinger
This was inadvertently removed in https://github.com/mono/mono/commit/611a43ee0f672adbac3e25dc77731843a3d10cf1 from MulticastDelegate.CombineImpl(). Add the type check back in the Delegate base class, we already do the same in Remove(). Add unit tests to cover the behavior to the corlib test suite. (reverted from commit f29878dc713f4e148fe0a1e703fae8929e6fb6e0) Needed to update some monodoc tests to match that an exception is now thrown again.
2016-10-08[monodoc] Fix literal formatting on systems where decimal separator is not a dotAlexander Köplinger
E.g. on a German language OS the "make check-mdoc-export-html" test fails with this: ``` diff --exclude=.svn -rup Test/en.expected/Mono.DocTest/Widget.xml Test/en.actual/Mono.DocTest/Widget.xml --- Test/en.expected/Mono.DocTest/Widget.xml 2015-11-18 04:42:11.000000000 +0100 +++ Test/en.actual/Mono.DocTest/Widget.xml 2016-02-04 02:38:09.000000000 +0100 @@ -1061,8 +1061,8 @@ </Docs> </Member> <Member MemberName="PI"> - <MemberSignature Language="C#" Value="protected const double PI = 3.14159;" /> - <MemberSignature Language="ILAsm" Value=".field familyorassembly static literal float64 PI = (3.14159)" /> + <MemberSignature Language="C#" Value="protected const double PI = 3,14159;" /> + <MemberSignature Language="ILAsm" Value=".field familyorassembly static literal float64 PI = (3,14159)" /> <MemberType>Field</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -1070,7 +1070,7 @@ <ReturnValue> <ReturnType>System.Double</ReturnType> </ReturnValue> - <MemberValue>3.14159</MemberValue> + <MemberValue>3,14159</MemberValue> <Docs> ``` The fix is to always use InvariantCulture for literal formatting.
2016-10-08Remove ChangeLog files from the repoAlexander Köplinger
They weren't updated in the last 6 years and aren't helpful anymore (e.g. by causing unrelated matches during git grep searches).
2016-10-08Merge pull request #2333 from joelmartinez/docs-classic-fixJonathan Pryor
[mdoc] Added -api-style parameter.
2016-10-08Merge pull request #2282 from joelmartinez/docs-multiassembly-fixMiguel de Icaza
[mdoc] Improved error handling for multiassembly.
2016-10-08[mdoc] Add some diagnosticsMiguel de Icaza
2016-10-08Merge pull request #2152 from joelmartinez/mdoc-preserverJonathan Pryor
[mdoc] Marking `MDocPreserve` Obsolete.
2016-10-08[mdoc] Update expected test results after private members change in mscorlibMarek Safar
2016-10-08[mdoc] `multiassembly` option for duplicated typesJoel Martinez
The new `multiassembly` option lets you run `mdoc update` on assemblies that contain the same types. This can come into play when you have a set of assemblies that run on different platforms, with a slightly differing API surface area on each platform (for example: tvOS, watchOS, iOS); in this case you can maintain all of the documentation in a single set of XML documents. With this option enabled, an `AssemblyInfo` node will be added for every assembly that a type is found in, in addition to every member. While this may seem verbose, it's really the only way to capture the information about what assemblies a given type or member can be found in.
2016-10-08[mdoc] Update expected results due to 3156d1b05d75a2f70f1f2a882dab031a8ceed9f9Marek Safar
2016-10-08Merge pull request #2087 from joelmartinez/mdoc-membername-fixupMiguel de Icaza
[mdoc] Now rewriting incorrect `MemberName`.
2016-10-08[mdoc] Removed extraneous directory creation.Joel Martinez
This was in response to a test failure noticed after this pull request was accepted: https://github.com/mono/mono/pull/2012#commitcomment-13325966 The solution was two-fold, the code removed was unecessary as this directory is created elsewhere right before the file is written (and with the correct name in the case of a unified type). Also a small change was made to the makefile to clean up some files which was causing some targets to be skipped, along with moving some targets to the `check-doc-tools` target.
2016-10-08[mdoc] Follow up fix for member and type removal.Joel Martinez
In supplement of the changes submitted in 09b97cba2e7c2d9c68830d55ff3d99c5f36eb439, there were some additional edge cases that were not originally considered, and so this patch resolves these additional issues. In particular, there was a bug in the `RemoveApiStyle` method that wasn't checking the value of the `apistyle` attribute before removing it. This caused members to be stripped of apistyle inadvertently. There was an issue in the type removal code that caused too many files to be removed. This patch adds additional checks to make sure that a file isn't going to be removed if it contains members in the other style that shoulnd't be removed Finally, there was an issue that arose after the aforementioned changes in the `OrderTypeAttributes` method. It was somewhat counterintuitive, but it wasn't allowing the reordering of attributes with the `.Remove` method (throwing an exception). Not entirely sure why this was happening, but using the `.RemoveNamedItem` method worked around the issue.
2016-10-08[mdoc] Fixes an issue with member and type deletion.Joel Martinez
Specifically, when updating classic and unified assemblies, members that were completely removed from one or both assemblies were not being removed from the XML. This patch updates mdoc's `DeleteMember` method to properly handle deletion in all scenarios (normal, classic, unified). Of course, deletion will still not happen if one of two things is true: - `--delete` is *not* passed into the `mdoc update` call and the member node contains existing documentation. - `--preserve` *is* passed into the `mdoc update` invocation. In both of those cases, the member will not be deleted, and a message stating as such will be written as a warning to the output.
2016-10-08[mdoc] Adds custom formatting for the `ObjCRuntime.Platform` enum.Joel Martinez
This enum, which can be found in Xamarin's iOS and Mac products use a custom encoding scheme which resulted in invalid values being shown when processed with mdoc. This patch adds a special case to watch for this particular enumeration value, and decodes the data correctly. Additionally, the code that formats the values for flags enumerations was refactored. Future extensibility of this feature can now be done by simply implementing a new `FlagsFormatter`, and applying the proper logic in the `MakeAttributesValueString` function.
2016-10-08Update failing testMarek Safar
2016-10-08[mdoc] Fixes an update issue with generic and non-generic members.Joel Martinez
The existing update was not doing a good job of matching members that have both generic and non-generic members. So for example, if you had a method, `Foo<T>`, and added a non-generic version in a future update (`Foo`); you could end up with a situation where one of the members was being duplicated.