diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6ae116b..a1d4957 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -50,23 +50,23 @@ jobs:
run: dotnet publish --configuration release --self-contained true -p:AssemblyVersion=${{ steps.get-version.outputs.version }} -p:Version=${{ steps.get-version.outputs.version }} -p:PublishTrimmed=true -p:PublishSingleFile=true -p:TrimmerDefaultAction=copyused -p:SuppressTrimAnalysisWarnings=true -r ${{ matrix.rid }} ./src/BicepDocs.Cli/BicepDocs.Cli.csproj
- name: Rename binary
if: matrix.rid != 'win-x64'
- run: mv ./src/BicepDocs.Cli/bin/release/net6.0/${{ matrix.rid }}/publish/bicepdocs ./src/BicepDocs.Cli/bin/release/net6.0/${{ matrix.rid }}/publish/bicepdocs-${{ matrix.rid }}
+ run: mv ./src/BicepDocs.Cli/bin/release/net7.0/${{ matrix.rid }}/publish/bicepdocs ./src/BicepDocs.Cli/bin/release/net7.0/${{ matrix.rid }}/publish/bicepdocs-${{ matrix.rid }}
- name: Rename binary (win)
if: matrix.rid == 'win-x64'
- run: mv ./src/BicepDocs.Cli/bin/release/net6.0/${{ matrix.rid }}/publish/bicepdocs.exe ./src/BicepDocs.Cli/bin/release/net6.0/${{ matrix.rid }}/publish/bicepdocs-${{ matrix.rid }}.exe
+ run: mv ./src/BicepDocs.Cli/bin/release/net7.0/${{ matrix.rid }}/publish/bicepdocs.exe ./src/BicepDocs.Cli/bin/release/net7.0/${{ matrix.rid }}/publish/bicepdocs-${{ matrix.rid }}.exe
- name: Upload BicepDocs
if: matrix.rid != 'win-x64'
uses: actions/upload-artifact@v3
with:
name: bicepdocs-${{ matrix.rid }}
- path: ./src/BicepDocs.Cli/bin/release/net6.0/${{ matrix.rid }}/publish/bicepdocs-${{ matrix.rid }}
+ path: ./src/BicepDocs.Cli/bin/release/net7.0/${{ matrix.rid }}/publish/bicepdocs-${{ matrix.rid }}
if-no-files-found: error
- name: Upload BicepDocs
if: matrix.rid == 'win-x64'
uses: actions/upload-artifact@v3
with:
name: bicepdocs-${{ matrix.rid }}
- path: ./src/BicepDocs.Cli/bin/release/net6.0/${{ matrix.rid }}/publish/bicepdocs-${{ matrix.rid }}.exe
+ path: ./src/BicepDocs.Cli/bin/release/net7.0/${{ matrix.rid }}/publish/bicepdocs-${{ matrix.rid }}.exe
if-no-files-found: error
release:
name: Create Release
diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml
index 3941cf5..e62cb4a 100644
--- a/.github/workflows/pr-validation.yml
+++ b/.github/workflows/pr-validation.yml
@@ -37,11 +37,11 @@ jobs:
- name: Run tests
run: dotnet test --configuration release src/BicepDocs.sln
- name: Build binary
- run: dotnet publish --configuration release --self-contained true -p:PublishTrimmed=true -p:PublishSingleFile=true -p:TrimmerDefaultAction=copyused -p:SuppressTrimAnalysisWarnings=true -r ${{ matrix.rid }} ./src/BicepDocs.Cli/BicepDocs.Cli.csproj
+ run: dotnet publish --configuration release --self-contained true -p:PublishTrimmed=true -p:PublishSingleFile=true -p:SuppressTrimAnalysisWarnings=true -r ${{ matrix.rid }} ./src/BicepDocs.Cli/BicepDocs.Cli.csproj
- name: Test samples
if: matrix.rid != 'win-x64'
run: |
- mv ./src/BicepDocs.Cli/bin/release/net6.0/${{ matrix.rid }}/publish/bicepdocs .
+ mv ./src/BicepDocs.Cli/bin/release/net7.0/${{ matrix.rid }}/publish/bicepdocs .
./bicepdocs generate filesystem \
--folderPath docs/formatters/examples/inputs \
--out ./docs/formatters/examples/generated-output/markdown \
@@ -50,5 +50,5 @@ jobs:
- name: Test samples (win)
if: matrix.rid == 'win-x64'
run: |
- mv .\src\BicepDocs.Cli\bin\release\net6.0\${{ matrix.rid }}\publish\bicepdocs.exe .
+ mv .\src\BicepDocs.Cli\bin\release\net7.0\${{ matrix.rid }}\publish\bicepdocs.exe .
.\bicepdocs.exe generate filesystem --folderPath docs\formatters\examples\inputs --out .\docs\formatters\examples\generated-output\markdown --config docs\example-config.yml --formatter markdown
\ No newline at end of file
diff --git a/src/BicepDocs.Cli/BicepDocs.Cli.csproj b/src/BicepDocs.Cli/BicepDocs.Cli.csproj
index 52405d8..89dd451 100644
--- a/src/BicepDocs.Cli/BicepDocs.Cli.csproj
+++ b/src/BicepDocs.Cli/BicepDocs.Cli.csproj
@@ -5,7 +5,7 @@
LandingZones.Tools.BicepDocs.Cli
LandingZones.Tools.BicepDocs.Cli.Program
Exe
- net6.0
+ net7.0
enable
enable
Joachim Dalen
@@ -15,10 +15,11 @@
git
bicep documentation azure arm
true
+ partial
-
+
diff --git a/src/BicepDocs.Core.UnitTests/BicepDocs.Core.UnitTests.csproj b/src/BicepDocs.Core.UnitTests/BicepDocs.Core.UnitTests.csproj
index b8aa68f..e8418a8 100644
--- a/src/BicepDocs.Core.UnitTests/BicepDocs.Core.UnitTests.csproj
+++ b/src/BicepDocs.Core.UnitTests/BicepDocs.Core.UnitTests.csproj
@@ -3,14 +3,14 @@
LandingZones.Tools.BicepDocs.Core.UnitTests
LandingZones.Tools.BicepDocs.Core.UnitTests
- net6.0
+ net7.0
enable
enable
false
-
+
diff --git a/src/BicepDocs.Core.UnitTests/ResourceLinkBuilderTests.cs b/src/BicepDocs.Core.UnitTests/ResourceLinkBuilderTests.cs
index 5dbfcf0..ab70a55 100644
--- a/src/BicepDocs.Core.UnitTests/ResourceLinkBuilderTests.cs
+++ b/src/BicepDocs.Core.UnitTests/ResourceLinkBuilderTests.cs
@@ -1,4 +1,3 @@
-using System.Collections.Immutable;
using Bicep.Core.Resources;
namespace LandingZones.Tools.BicepDocs.Core.UnitTests;
@@ -10,14 +9,13 @@ public class ResourceLinkBuilderTests
[TestMethod]
[DataRow(
- "Microsoft.Web", "microsoft.web,sites", "2018-11-01",
+ "Microsoft.Web", "microsoft.web/sites", "2018-11-01",
"microsoft.web/2018-11-01/sites",
DisplayName = "Parses one level resource"
)]
public void TestMethod1(string provider, string resource, string apiVersion, string expected)
{
- var resourceParts = resource.Split(",").ToImmutableArray();
- var resourceRef = new ResourceTypeReference(resourceParts, apiVersion);
+ var resourceRef = new ResourceTypeReference(resource, apiVersion);
var generatedLink = ResourceLinkBuilder.GetResourceUrl(resourceRef);
Assert.AreEqual($"{Base}{expected}", generatedLink);
}
diff --git a/src/BicepDocs.Core/BicepDocs.Core.csproj b/src/BicepDocs.Core/BicepDocs.Core.csproj
index 335a963..556379d 100644
--- a/src/BicepDocs.Core/BicepDocs.Core.csproj
+++ b/src/BicepDocs.Core/BicepDocs.Core.csproj
@@ -3,13 +3,13 @@
LandingZones.Tools.BicepDocs.Core
LandingZones.Tools.BicepDocs.Core
- net6.0
+ net7.0
enable
enable
-
+
diff --git a/src/BicepDocs.Core/Installer.cs b/src/BicepDocs.Core/Installer.cs
index c298d36..86a8a05 100644
--- a/src/BicepDocs.Core/Installer.cs
+++ b/src/BicepDocs.Core/Installer.cs
@@ -1,3 +1,4 @@
+using System.Collections.Immutable;
using System.IO.Abstractions;
using System.IO.Abstractions.TestingHelpers;
using Bicep.Core;
@@ -10,33 +11,39 @@
using Bicep.Core.Registry;
using Bicep.Core.Registry.Auth;
using Bicep.Core.Semantics.Namespaces;
+using Bicep.Core.TypeSystem;
using Bicep.Core.TypeSystem.Az;
+using Bicep.Core.Utils;
using Bicep.Decompiler;
using LandingZones.Tools.BicepDocs.Core.Abstractions;
using LandingZones.Tools.BicepDocs.Core.Services;
using Microsoft.Extensions.DependencyInjection;
-using BicepConfigurationManager = Bicep.Core.Configuration.ConfigurationManager;
+
namespace LandingZones.Tools.BicepDocs.Core;
+public class EmptyModuleRegistryProvider : IArtifactRegistryProvider
+{
+ public ImmutableArray Registries(Uri _) => ImmutableArray.Empty;
+}
+
public static class Installer
{
public static IServiceCollection AddBicepCore(this IServiceCollection services) => services
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped()
- .AddScoped();
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton();
public static IServiceCollection AddBicepDecompiler(this IServiceCollection services) => services
.AddScoped();
diff --git a/src/BicepDocs.Core/Services/BicepFormatter.cs b/src/BicepDocs.Core/Services/BicepFormatter.cs
index cb40168..35cf9ab 100644
--- a/src/BicepDocs.Core/Services/BicepFormatter.cs
+++ b/src/BicepDocs.Core/Services/BicepFormatter.cs
@@ -11,6 +11,6 @@ public static string FormatBicepCode(string input)
var parser = new Parser(input);
var programSyntax = parser.Program();
var options = new PrettyPrintOptions(NewlineOption.Auto, IndentKindOption.Space, 2, false);
- return PrettyPrinter.PrintProgram(programSyntax, options);
+ return PrettyPrinter.PrintProgram(programSyntax, options, parser.LexingErrorLookup, parser.ParsingErrorLookup);
}
}
\ No newline at end of file
diff --git a/src/BicepDocs.Destination.FileSystem.UnitTests/BicepDocs.Destination.FileSystem.UnitTests.csproj b/src/BicepDocs.Destination.FileSystem.UnitTests/BicepDocs.Destination.FileSystem.UnitTests.csproj
index 3926d56..e26f1c6 100644
--- a/src/BicepDocs.Destination.FileSystem.UnitTests/BicepDocs.Destination.FileSystem.UnitTests.csproj
+++ b/src/BicepDocs.Destination.FileSystem.UnitTests/BicepDocs.Destination.FileSystem.UnitTests.csproj
@@ -3,7 +3,7 @@
LandingZones.Tools.BicepDocs.Destination.FileSystem.UnitTests
LandingZones.Tools.BicepDocs.Destination.FileSystem.UnitTests
- net6.0
+ net7.0
enable
enable
false
diff --git a/src/BicepDocs.Destination.FileSystem/BicepDocs.Destination.FileSystem.csproj b/src/BicepDocs.Destination.FileSystem/BicepDocs.Destination.FileSystem.csproj
index fea473f..353fbcd 100644
--- a/src/BicepDocs.Destination.FileSystem/BicepDocs.Destination.FileSystem.csproj
+++ b/src/BicepDocs.Destination.FileSystem/BicepDocs.Destination.FileSystem.csproj
@@ -3,7 +3,7 @@
LandingZones.Tools.BicepDocs.Destination.FileSystem
LandingZones.Tools.BicepDocs.Destination.FileSystem
- net6.0
+ net7.0
enable
enable
diff --git a/src/BicepDocs.Formatter.Docusaurus.UnitTests/BicepDocs.Formatter.Docusaurus.UnitTests.csproj b/src/BicepDocs.Formatter.Docusaurus.UnitTests/BicepDocs.Formatter.Docusaurus.UnitTests.csproj
index 6ce1e4b..8269689 100644
--- a/src/BicepDocs.Formatter.Docusaurus.UnitTests/BicepDocs.Formatter.Docusaurus.UnitTests.csproj
+++ b/src/BicepDocs.Formatter.Docusaurus.UnitTests/BicepDocs.Formatter.Docusaurus.UnitTests.csproj
@@ -3,7 +3,7 @@
LandingZones.Tools.BicepDocs.Formatter.Docusaurus.UnitTests
LandingZones.Tools.BicepDocs.Formatter.Docusaurus.UnitTests
- net6.0
+ net7.0
enable
enable
diff --git a/src/BicepDocs.Formatter.Docusaurus/BicepDocs.Formatter.Docusaurus.csproj b/src/BicepDocs.Formatter.Docusaurus/BicepDocs.Formatter.Docusaurus.csproj
index f4cd771..9f33d8f 100644
--- a/src/BicepDocs.Formatter.Docusaurus/BicepDocs.Formatter.Docusaurus.csproj
+++ b/src/BicepDocs.Formatter.Docusaurus/BicepDocs.Formatter.Docusaurus.csproj
@@ -3,7 +3,7 @@
LandingZones.Tools.BicepDocs.Formatter.Docusaurus
LandingZones.Tools.BicepDocs.Formatter.Docusaurus
- net6.0
+ net7.0
enable
enable
diff --git a/src/BicepDocs.Formatter.Markdown.UnitTests/BicepDocs.Formatter.Markdown.UnitTests.csproj b/src/BicepDocs.Formatter.Markdown.UnitTests/BicepDocs.Formatter.Markdown.UnitTests.csproj
index 4dc527a..30ded57 100644
--- a/src/BicepDocs.Formatter.Markdown.UnitTests/BicepDocs.Formatter.Markdown.UnitTests.csproj
+++ b/src/BicepDocs.Formatter.Markdown.UnitTests/BicepDocs.Formatter.Markdown.UnitTests.csproj
@@ -3,7 +3,7 @@
LandingZones.Tools.BicepDocs.Formatter.Markdown.UnitTests
LandingZones.Tools.BicepDocs.Formatter.Markdown.UnitTests
- net6.0
+ net7.0
enable
enable
false
diff --git a/src/BicepDocs.Formatter.Markdown.UnitTests/Generators/ResourceGeneratorTests.cs b/src/BicepDocs.Formatter.Markdown.UnitTests/Generators/ResourceGeneratorTests.cs
index 9ff9782..0759a64 100644
--- a/src/BicepDocs.Formatter.Markdown.UnitTests/Generators/ResourceGeneratorTests.cs
+++ b/src/BicepDocs.Formatter.Markdown.UnitTests/Generators/ResourceGeneratorTests.cs
@@ -19,16 +19,14 @@ public void BuildResources_Input_BuildsCorrectly()
{
var expected = @"## Resources
-- [Microsoft.Web/sites/2022-12-18](https://learn.microsoft.com/en-us/azure/templates/microsoft.web/2022-12-18/sites)".ToPlatformLineEndings() + Environment.NewLine;
+- [Microsoft.Web/sites/2022-12-18](https://learn.microsoft.com/en-us/azure/templates/microsoft.web/2022-12-18/sites)"
+ .ToPlatformLineEndings() + Environment.NewLine;
var resources = new List
{
new("Microsoft.Web/sites/2022-12-18", "Microsoft.Web", "sites")
{
- DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference(new List
- {
- "microsoft.web",
- "sites"
- }.ToImmutableArray(), "2022-12-18"))
+ DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference("microsoft.web/sites",
+ "2022-12-18"))
}
}.ToImmutableList();
@@ -47,24 +45,19 @@ public void BuildResources_MultipleOfSame_BuildsSingle()
{
var expected = @"## Resources
-- [Microsoft.Web/sites/2022-12-18](https://learn.microsoft.com/en-us/azure/templates/microsoft.web/2022-12-18/sites)".ToPlatformLineEndings() + Environment.NewLine;
+- [Microsoft.Web/sites/2022-12-18](https://learn.microsoft.com/en-us/azure/templates/microsoft.web/2022-12-18/sites)"
+ .ToPlatformLineEndings() + Environment.NewLine;
var resources = new List
{
new("Microsoft.Web/sites/2022-12-18", "Microsoft.Web", "sites")
{
- DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference(new List
- {
- "microsoft.web",
- "sites"
- }.ToImmutableArray(), "2022-12-18"))
+ DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference("microsoft.web/sites",
+ "2022-12-18"))
},
new("Microsoft.Web/sites/2022-12-18", "Microsoft.Web", "sites")
{
- DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference(new List
- {
- "microsoft.web",
- "sites"
- }.ToImmutableArray(), "2022-12-18"))
+ DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference("microsoft.web/sites",
+ "2022-12-18"))
}
}.ToImmutableList();
@@ -83,7 +76,8 @@ public async Task BuildResources_InputTemplate_BuildsSingle()
{
var expected = @"## Resources
-- [Microsoft.Resources/resourceGroups@2021-01-01](https://learn.microsoft.com/en-us/azure/templates/microsoft.resources/2021-01-01/resourcegroups)".ToPlatformLineEndings() + Environment.NewLine;
+- [Microsoft.Resources/resourceGroups@2021-01-01](https://learn.microsoft.com/en-us/azure/templates/microsoft.resources/2021-01-01/resourcegroups)"
+ .ToPlatformLineEndings() + Environment.NewLine;
const string template = @"resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-01-01' = {
name: resourceGroupName
@@ -160,11 +154,7 @@ public void BuildReferencedResources_Input_BuildsCorrectly()
Name = "siteOne",
Scope = "subscription()",
IsExisting = true,
- DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference(new List
- {
- "microsoft.web",
- "sites"
- }.ToImmutableArray(), "2022-12-18"))
+ DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference("microsoft.web/sites", "2022-12-18"))
}
}.ToImmutableList();
@@ -194,22 +184,14 @@ public void BuildReferencedResources_MultipleOfSame_BuildsAll()
Name = "siteOne",
Scope = "subscription()",
IsExisting = true,
- DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference(new List
- {
- "microsoft.web",
- "sites"
- }.ToImmutableArray(), "2022-12-18"))
+ DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference("microsoft.web/sites", "2022-12-18"))
},
new("Microsoft.Web/sites/2022-12-18", "Microsoft.Web", "sites")
{
Name = "siteTwo",
Scope = "subscription()",
IsExisting = true,
- DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference(new List
- {
- "microsoft.web",
- "sites"
- }.ToImmutableArray(), "2022-12-18"))
+ DocUrl = ResourceLinkBuilder.GetResourceUrl(new ResourceTypeReference("microsoft.web/sites", "2022-12-18"))
}
}.ToImmutableList();
@@ -230,7 +212,8 @@ public async Task BuildReferencedResources_InputTemplate_BuildsSingle()
| Provider | Name | Scope |
| --- | --- | --- |
-| Microsoft.Resources/resourceGroups@2021-01-01 | `resourceGroupName` | - |".ToPlatformLineEndings() + Environment.NewLine;
+| Microsoft.Resources/resourceGroups@2021-01-01 | `resourceGroupName` | - |".ToPlatformLineEndings() +
+ Environment.NewLine;
const string template = @"resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-01-01' existing = {
name: resourceGroupName
@@ -303,4 +286,4 @@ public async Task BuildReferencedResources_NoExistingResources_DoesNotGenerate()
}
#endregion
-}
+}
\ No newline at end of file
diff --git a/src/BicepDocs.Formatter.Markdown/BicepDocs.Formatter.Markdown.csproj b/src/BicepDocs.Formatter.Markdown/BicepDocs.Formatter.Markdown.csproj
index cd08d66..061547e 100644
--- a/src/BicepDocs.Formatter.Markdown/BicepDocs.Formatter.Markdown.csproj
+++ b/src/BicepDocs.Formatter.Markdown/BicepDocs.Formatter.Markdown.csproj
@@ -3,7 +3,7 @@
LandingZones.Tools.BicepDocs.Formatter.Markdown
LandingZones.Tools.BicepDocs.Formatter.Markdown
- net6.0
+ net7.0
enable
enable
@@ -13,7 +13,7 @@
-
+
diff --git a/src/BicepDocs.Source.FileSystem.UnitTests/BicepDocs.Source.FileSystem.UnitTests.csproj b/src/BicepDocs.Source.FileSystem.UnitTests/BicepDocs.Source.FileSystem.UnitTests.csproj
index 971243e..2018803 100644
--- a/src/BicepDocs.Source.FileSystem.UnitTests/BicepDocs.Source.FileSystem.UnitTests.csproj
+++ b/src/BicepDocs.Source.FileSystem.UnitTests/BicepDocs.Source.FileSystem.UnitTests.csproj
@@ -3,7 +3,7 @@
LandingZones.Tools.BicepDocs.Source.FileSystem.UnitTests
LandingZones.Tools.BicepDocs.Source.FileSystem.UnitTests
- net6.0
+ net7.0
enable
enable
false
diff --git a/src/BicepDocs.Source.FileSystem/BicepDocs.Source.FileSystem.csproj b/src/BicepDocs.Source.FileSystem/BicepDocs.Source.FileSystem.csproj
index a5241ce..7b0ca35 100644
--- a/src/BicepDocs.Source.FileSystem/BicepDocs.Source.FileSystem.csproj
+++ b/src/BicepDocs.Source.FileSystem/BicepDocs.Source.FileSystem.csproj
@@ -4,7 +4,7 @@
LandingZones.Tools.BicepDocs.Source.FileSystem
LandingZones.Tools.BicepDocs.Source.FileSystem
- net6.0
+ net7.0
enable
enable