Skip to content

Commit

Permalink
v1.19 (#9)
Browse files Browse the repository at this point in the history
  • Loading branch information
elringus authored Feb 12, 2024
1 parent 5ad0a6c commit 2e8e9cb
Show file tree
Hide file tree
Showing 84 changed files with 4,249 additions and 7,286 deletions.
19 changes: 10 additions & 9 deletions backend/Naninovel.Language.Bindings/Language.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
using System.Diagnostics.CodeAnalysis;
using DotNetJS;
using Bootsharp;
using Bootsharp.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.JSInterop;
using Naninovel.Bindings;
using Naninovel.Language;
using static Naninovel.Bindings.Utilities;

[assembly: ExcludeFromCodeCoverage]
[assembly: JSNamespace(NamespacePattern, NamespaceReplacement)]
[assembly: JSImport(new[] { typeof(IDiagnosticPublisher) })]
[assembly: JSExport(new[] {
[assembly: JSImport(typeof(IDiagnosticPublisher))]
[assembly: JSExport(
typeof(ISettingsHandler),
typeof(IMetadataHandler),
typeof(IDocumentHandler),
Expand All @@ -18,14 +18,14 @@
typeof(IFoldingHandler),
typeof(ISymbolHandler),
typeof(ITokenHandler),
typeof(IHoverHandler)
}, invokePattern: "(.+)", invokeReplacement: "Naninovel.Bindings.Utilities.Try(() => $1)")]
typeof(IHoverHandler),
InvokePattern = "(.+)", InvokeReplacement = "Naninovel.Bindings.Utilities.Try(() => $1)")]

namespace Naninovel.Language;

public static class Language
public static partial class Language
{
[JSInvokable, RequiresUnreferencedCode("DI")]
[JSInvokable]
public static void BootServer () => new ServiceCollection()
// core services
.AddSingleton<ILogger, JSLogger>()
Expand All @@ -43,13 +43,14 @@ public static class Language
.AddSingleton<ISymbolHandler, SymbolHandler>()
.AddSingleton<ITokenHandler, TokenHandler>()
.AddSingleton<IHoverHandler, HoverHandler>()
.AddJS()
// observers
.AddObserving<ISettingsObserver>()
.AddObserving<IMetadataObserver>()
.AddObserving<IDocumentObserver>()
// initialization
.AddBootsharp()
.BuildServiceProvider()
.RegisterObservers()
.RunBootsharp()
.GetAll();
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<PackageId>Naninovel.Language.Bindings</PackageId>
<Version>$([System.DateTime]::Now.ToString("yyyy.MM.dd.HHmm"))</Version>
Expand All @@ -12,8 +12,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="DotNetJS" Version="0.23.4"/>
<PackageReference Include="Naninovel.Common.Bindings" Version="2023.8.1.2130"/>
<PackageReference Include="Bootsharp.Common" Version="0.1.0-rc.159"/>
<PackageReference Include="Bootsharp.DependencyInjection" Version="0.1.0-rc.159"/>
<PackageReference Include="Naninovel.Common.Bindings" Version="2023.10.17.1938"/>
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 0 additions & 2 deletions backend/Naninovel.Language.Test/Common.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;
using System.Linq;
using Moq;
using Naninovel.Metadata;

Expand Down
21 changes: 9 additions & 12 deletions backend/Naninovel.Language.Test/CompletionTest.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using Moq;
using Naninovel.Metadata;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down Expand Up @@ -152,7 +149,7 @@ public void WhenOverCommandContentParametersAreReturned ()
[Fact]
public void WhenAfterCommandWithNamelessParameterValuesAreReturned ()
{
var param = new Parameter { Id = "foo", Nameless = true, ValueType = ValueType.Boolean };
var param = new Parameter { Id = "foo", Nameless = true, ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "cmd", Parameters = new[] { param } } };
Assert.Equal("true", Complete("@cmd ", 5)[0].Label);
}
Expand All @@ -174,23 +171,23 @@ public void WhenParamMetaNotFoundItIsNotCompleted ()
[Fact]
public void WhenOverNamelessParameterValuesAreReturned ()
{
var param = new Parameter { Id = "foo", Nameless = true, ValueType = ValueType.Boolean };
var param = new Parameter { Id = "foo", Nameless = true, ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "cmd", Parameters = new[] { param } } };
Assert.Equal("true", Complete("@cmd x", 6)[0].Label);
}

[Fact]
public void WhenOverNamelessParameterWithTextIdValuesAreReturned ()
{
var param = new Parameter { Id = "foo", Nameless = true, ValueType = ValueType.Boolean };
var param = new Parameter { Id = "foo", Nameless = true, ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "cmd", Parameters = new[] { param } } };
Assert.Equal("true", Complete("@cmd x|x|", 6)[0].Label);
}

[Fact]
public void WhenOverParameterAssignmentValuesAreReturned ()
{
var param = new Parameter { Id = "id", ValueType = ValueType.Boolean };
var param = new Parameter { Id = "id", ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "cmd", Parameters = new[] { param } } };
Assert.Equal("true", Complete("@cmd id:", 8)[0].Label);
}
Expand Down Expand Up @@ -224,7 +221,7 @@ public void ParametersWithoutContextAreNotCompleted ()
[Fact]
public void WhenOverParameterValueContentValuesAreReturned ()
{
var param = new Parameter { Id = "id", ValueType = ValueType.Boolean };
var param = new Parameter { Id = "id", ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "cmd", Parameters = new[] { param } } };
Assert.Equal("true", Complete("@cmd id:x", 9)[0].Label);
}
Expand Down Expand Up @@ -375,7 +372,7 @@ public void WhenActorIdIsNotSpecifiedButHasDefaultValueAppearancesAreReturned ()
[Fact]
public void WhenOverBooleanContextTrueAndFalseAreReturned ()
{
var param = new Parameter { Id = "id", ValueType = ValueType.Boolean };
var param = new Parameter { Id = "id", ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "cmd", Parameters = new[] { param } } };
var items = Complete("@cmd id:x", 9);
Assert.Equal(2, items.Count);
Expand Down Expand Up @@ -508,7 +505,7 @@ public void WhenOverResourceContextWithoutSubtypeEmptyIsReturned ()
[Fact]
public void WhenInsideCommandExpressionVariablesAndFunctionsAreReturned ()
{
var param = new Parameter { Id = "@", Nameless = true, ValueType = ValueType.Boolean };
var param = new Parameter { Id = "@", Nameless = true, ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "cmd", Parameters = new[] { param } } };
meta.Variables = new[] { "foo" };
meta.Functions = new[] { "bar" };
Expand All @@ -521,7 +518,7 @@ public void WhenInsideCommandExpressionVariablesAndFunctionsAreReturned ()
[Fact]
public void WhenOverCommandExpressionContextValuesAreReturned ()
{
var param = new Parameter { Id = "@", Nameless = true, ValueType = ValueType.Boolean };
var param = new Parameter { Id = "@", Nameless = true, ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "cmd", Parameters = new[] { param } } };
meta.Variables = new[] { "foo" };
Assert.Equal("true", Complete("@cmd {x}", 8)[0].Label);
Expand All @@ -548,7 +545,7 @@ public void WhenOverGenericExpressionResultIsEmpty ()
[Fact]
public void IdAndAliasAreNotCaseSensitive ()
{
var param = new Parameter { Id = "Identifier", Alias = "id", ValueType = ValueType.Boolean };
var param = new Parameter { Id = "Identifier", Alias = "id", ValueType = Metadata.ValueType.Boolean };
meta.Commands = new[] { new Command { Id = "Command", Alias = "cmd", Parameters = new[] { param } } };
Assert.Equal("true", Complete("@CMD ID:", 8)[0].Label);
Assert.Equal("true", Complete("@command identifier:", 20)[0].Label);
Expand Down
1 change: 0 additions & 1 deletion backend/Naninovel.Language.Test/DefinitionTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Moq;
using Naninovel.Metadata;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
6 changes: 1 addition & 5 deletions backend/Naninovel.Language.Test/Diagnostic/DiagnoserTest.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Collections.Immutable;
using Moq;
using Naninovel.Metadata;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using Moq;
using Xunit;
using Moq;
using static Naninovel.Language.DiagnosticContext;

namespace Naninovel.Language.Test;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using Xunit;

namespace Naninovel.Language.Test;
namespace Naninovel.Language.Test;

public class MultipleDiagnosersTest : DiagnoserTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using System.Collections.Generic;
using System.Collections.Immutable;
using Xunit;
using System.Collections.Immutable;
using static Naninovel.Language.QualifiedEndpoint;

namespace Naninovel.Language.Test;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
using Naninovel.Metadata;
using Xunit;
using static Naninovel.Metadata.ValueContainerType;
using static Naninovel.Metadata.ValueType;

namespace Naninovel.Language.Test;

Expand Down Expand Up @@ -48,10 +45,10 @@ public void WhenNamelessParameterMetaNotFoundErrorIsDiagnosed ()
public void WhenInvalidValueErrorIsDiagnosed ()
{
var parameters = new[] {
new Parameter { Id = "sb", ValueType = Boolean, ValueContainerType = Single },
new Parameter { Id = "nd", ValueType = Decimal, ValueContainerType = Named },
new Parameter { Id = "il", ValueType = Integer, ValueContainerType = List },
new Parameter { Id = "nbl", ValueType = Boolean, ValueContainerType = NamedList }
new Parameter { Id = "sb", ValueType = Metadata.ValueType.Boolean, ValueContainerType = ValueContainerType.Single },
new Parameter { Id = "nd", ValueType = Metadata.ValueType.Decimal, ValueContainerType = ValueContainerType.Named },
new Parameter { Id = "il", ValueType = Metadata.ValueType.Integer, ValueContainerType = ValueContainerType.List },
new Parameter { Id = "nbl", ValueType = Metadata.ValueType.Boolean, ValueContainerType = ValueContainerType.NamedList }
};
Meta.Commands = new[] { new Command { Id = "c", Parameters = parameters } };
var diags = Diagnose("@c sb:- nd:x.- il:,1.0 nbl:x.,x,.,.-");
Expand All @@ -69,7 +66,7 @@ public void WhenInvalidValueErrorIsDiagnosed ()
[Fact]
public void WhenValueContainExpressionTypeValidityIsNotChecked ()
{
var parameters = new[] { new Parameter { Id = "p", ValueType = Boolean } };
var parameters = new[] { new Parameter { Id = "p", ValueType = Metadata.ValueType.Boolean } };
Meta.Commands = new[] { new Command { Id = "c", Parameters = parameters } };
Assert.Empty(Diagnose("@c p:{x}"));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Naninovel.Parsing;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
10 changes: 3 additions & 7 deletions backend/Naninovel.Language.Test/Document/DocumentChangerTest.cs
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
using Moq;
using Naninovel.Parsing;
using Naninovel.TestUtilities;
using Xunit;
using static Naninovel.Language.Test.Common;

namespace Naninovel.Language.Test;

public class DocumentChangerTest
{
private readonly DocumentRegistry registry;

public DocumentChangerTest ()
{
registry = new(new Mock<IObserverRegistry<IDocumentObserver>>().Object, new NotifierMock<IDocumentObserver>());
}
private readonly DocumentRegistry registry = new(
new Mock<IObserverRegistry<IDocumentObserver>>().Object,
new NotifierMock<IDocumentObserver>());

[Fact]
public void CanInsertNewCharacter ()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using System;
using Naninovel.Parsing;
using Xunit;
using Naninovel.Parsing;
using static Naninovel.Language.Test.Common;

namespace Naninovel.Language.Test;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Moq;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
using System.Collections.Generic;
using Moq;
using Moq;
using Naninovel.TestUtilities;
using Xunit;
using static Naninovel.Language.Test.Common;

namespace Naninovel.Language.Test;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Moq;
using Naninovel.TestUtilities;
using Xunit;
using static Naninovel.Language.Test.Common;

namespace Naninovel.Language.Test;
Expand Down
1 change: 0 additions & 1 deletion backend/Naninovel.Language.Test/EndpointTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Moq;
using Naninovel.Metadata;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
2 changes: 0 additions & 2 deletions backend/Naninovel.Language.Test/FoldingTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using System.Collections.Generic;
using Moq;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
1 change: 0 additions & 1 deletion backend/Naninovel.Language.Test/HoverTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Moq;
using Naninovel.Metadata;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
1 change: 0 additions & 1 deletion backend/Naninovel.Language.Test/MetadataTest.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using Moq;
using Naninovel.Metadata;
using Naninovel.TestUtilities;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
17 changes: 11 additions & 6 deletions backend/Naninovel.Language.Test/Naninovel.Language.Test.csproj
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3"/>
<PackageReference Include="Moq" Version="4.18.4"/>
<PackageReference Include="naninovel.common.testutilities" Version="2023.8.1.2130"/>
<PackageReference Include="xunit" Version="2.5.0"/>
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.0">
<Using Include="Xunit"/>
</ItemGroup>

<ItemGroup>
<PackageReference Include="Naninovel.Common.TestUtilities" Version="2023.10.17.1938"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0-preview-23503-02"/>
<PackageReference Include="Moq" Version="4.20.69"/>
<PackageReference Include="xunit" Version="2.5.3"/>
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
Expand Down
1 change: 0 additions & 1 deletion backend/Naninovel.Language.Test/SettingsTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Moq;
using Naninovel.TestUtilities;
using Xunit;

namespace Naninovel.Language.Test;

Expand Down
Loading

0 comments on commit 2e8e9cb

Please sign in to comment.