Skip to content

Commit

Permalink
fix: document generation errors
Browse files Browse the repository at this point in the history
  • Loading branch information
ronimizy committed Nov 22, 2023
1 parent ec7cdc0 commit 8a36746
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 1 deletion.
19 changes: 19 additions & 0 deletions src/SourceKit/Extensions/UsingDirectiveSyntaxExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory;

namespace SourceKit.Extensions;

public static class UsingDirectiveSyntaxExtensions
{
public static UsingDirectiveSyntax AddUsingKeywordLeadingTrivia(
this UsingDirectiveSyntax syntax,
SyntaxTrivia trivia)
{
var triviaList = TriviaList(syntax.UsingKeyword.LeadingTrivia.Append(trivia));
var token = Token(triviaList, SyntaxKind.UsingKeyword, syntax.UsingKeyword.TrailingTrivia);

return syntax.WithUsingKeyword(token);
}
}
1 change: 1 addition & 0 deletions src/SourceKit/SourceKit.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
<PropertyGroup>
<Version>1.1.$(PatchVersion)</Version>
<PackageReleaseNotes>
Added UsingDirectiveSyntaxExtensions
</PackageReleaseNotes>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using FluentChaining;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using SourceKit.Extensions;
using SourceKit.Generators.Builder.Commands;
using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory;

namespace SourceKit.Generators.Builder.Builders.UsingBuilders;

public class PragmaBuilder : ILink<UsingBuildingCommand, UsingDirectiveSyntax>
{
public UsingDirectiveSyntax Process(
UsingBuildingCommand request,
SynchronousContext context,
LinkDelegate<UsingBuildingCommand, SynchronousContext, UsingDirectiveSyntax> next)
{
var xmlDocPragma = PragmaWarningDirectiveTrivia(
Token(SyntaxKind.DisableKeyword),
true)
.AddErrorCodes(IdentifierName("CS1591"));

request = request with
{
Syntax = request.Syntax.AddUsingKeywordLeadingTrivia(Trivia(xmlDocPragma)),
};

return next(request, context);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public BuilderSourceGenerator()
(
start => start
.Then<AutoGeneratedCommentBuilder>()
.Then<PragmaBuilder>()
.FinishWith((r, _) => r.Syntax)
)
.AddChain<BuilderTypeBuildingCommand, TypeDeclarationSyntax>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<PropertyGroup>
<Version>1.1.$(PatchVersion)</Version>
<PackageReleaseNotes>
Fixed global namespace generation
Added pragma warning diable for CS1591
</PackageReleaseNotes>
</PropertyGroup>

Expand Down
2 changes: 2 additions & 0 deletions tests/SourceKit.Tests/Generators/BuilderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ await SourceFile.LoadAsync("SourceKit.Sample/Generators/ArrayQuery.cs"),
// This code was generated by a SourceKit.Builder code generator.
// https://github.com/itmo-is-dev/SourceKit
// </auto-generated>
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;
Expand Down Expand Up @@ -158,6 +159,7 @@ public SomeQuery Build()
// This code was generated by a SourceKit.Builder code generator.
// https://github.com/itmo-is-dev/SourceKit
// </auto-generated>
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;
Expand Down

0 comments on commit 8a36746

Please sign in to comment.