Giter Site home page Giter Site logo

cecil.xmldocnames's Introduction

Cecil.XmlDocNames

License NuGet downloads GitHub downloads Release date

Last commit Open issues Closed issues Changelog

Cecil.XmlDocNames translates Mono.Cecil member references to XmlDoc-style ID strings.

It's a small, MIT-licensed, .NET Standard 2.0 library. Its only dependency is Mono.Cecil.

Why this library

With Cecil.XmlDocNames you can process assemblies and related XML documentation files at the same time.

Or you can automatically augment XML documentation, based on code analysis attributes extracted from compiled assemblies.

Or you can generate external annotation files for ReSharper, based on the contents of compiled assemblies... although you don't really have to bother, because that's exactly what our ReSharper.ExportAnnotations library does (using Cecil.XmlDocNames, of course.)

If you find this library useful, please โญ star it. Thank you!

Quick start

It's easy as 1 - 2 - 3:

  1. Reference the NuGet package.
  2. using Cecil.XmlDocNames;
  3. string name = myMemberReference.GetXmlDocName(); where myMemberReference can be an instance of one of the following classes:
    • Mono.Cecil.TypeReference;
    • Mono.Cecil.MethodReference;
    • Mono.Cecil.PropertyReference;
    • Mono.Cecil.FieldReference;
    • Mono.Cecil.EventReference.

Credits

The logo for this library is a modified version of Documentation by IYIKON, from the Noun Project.

The font used in the logo is BloggerSans.otf by Sergiy S. Tkachenko, from Font Library.


Disclaimer: The author of this library is in no way affiliated to JetBrains s.r.o. (the makers of ReSharper) other than being a satisfied cutomer.

cecil.xmldocnames's People

Contributors

dependabot[bot] avatar rdeago avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

cecil.xmldocnames's Issues

Support .NET Framework 4.6

Background and motivation

We need to support .NET Framework 4.6 to close Tenacom/ReSharper.ExportAnnotations#20 but it's a no-go while this library only supports .NET Standard 2.0.

We also need to close that issue to solve some of the problems we're having in #11 so we'd better do it by yesterday.

Proposed enhancement

Support .NET Framework 4.6.

Implementation proposals

Add net46 to target frameworks.

Usage examples

Given a .csproj file containing the following:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net46;netcoreapp3.1</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Cecil.XmlDocNames" Version="{NEXT_VERSION}"/>
  </ItemGroup>

</Project>

where {NEXT_VERSION} is a version where this issue has been closed, it should build correctly for both TFMs.

Risks

The net46 TFM could require us to downgrade the code to C# 7.3, thus losing nullable reference types. In that case, we can use ReSharper to check for nullability issues; how to perform the necessary checks in CI remains to be researched.

Nested classes have extra dot

Nested types have an extra dot between the declaring type and type name itself. For example, I'm getting T:Namespace.DeclaringTypeName..NestedTypeName

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.