Skip to content

Update dependencies#140

Merged
georghinkel merged 6 commits intomainfrom
update-dependencies
Apr 26, 2026
Merged

Update dependencies#140
georghinkel merged 6 commits intomainfrom
update-dependencies

Conversation

@georghinkel
Copy link
Copy Markdown
Contributor

@georghinkel georghinkel commented Apr 24, 2026

Summary by MergeMonkey

  • Docs Updates:
    • Updated changelog files to reflect dependency updates
  • New Features:
    • Added observable ValuesCollection with INotifyCollectionChanged to ModelCollection for reactive UI updates
    • Enhanced code generator to support configurable identifier names and improved error handling for missing identifiers
  • Resolved Issues:
    • Fixed parser position calculation for text edits in UpdateFromParseTree
    • Fixed grammar rule naming from RulePrefixIDRule to RulePrefixLanguageIdRule for consistency
    • Fixed Values property getter to return observable values collection instead of items.Values
  • Housekeeping:
    • Updated test frameworks across all test projects (MSTest 3.8.2 → 4.2.1, NUnit 4.4.0 → 4.5.1)
    • Migrated from deprecated [ExpectedException] attribute to Assert.Throws<>() pattern across all test files
    • Updated NuGet packages: StreamJsonRpc, System.Text.Json, System.CodeDom, Avalonia, Extended.Wpf.Toolkit, and many test SDKs
    • Updated System.ValueTuple from 4.5.0 to 4.6.2 across multiple projects

@mergemonkeyhq
Copy link
Copy Markdown

mergemonkeyhq Bot commented Apr 24, 2026

Risk AssessmentNEEDS-TESTING · ~25 min review

Focus areas: Parser position calculation fixes · Observable ValuesCollection integration · Test framework migration correctness · Code generator identifier resolution

Assessment: Dependency updates with test framework migration and new observable collection feature.

Walkthrough

This PR updates NuGet dependencies across the entire solution while also making necessary code changes for test framework compatibility. The MSTest migration from v3 to v4 required replacing all [ExpectedException] attributes with Assert.Throws<>() calls. Additionally, new functionality was added including an observable ValuesCollection in ModelCollection and improvements to the AnyText code generator. Parser logic was also fixed to handle text edit calculations correctly during incremental updates.

Changes

Files Summary
Test Framework Migration
Expressions/Tests/Expressions.Linq.Tests/ExceptionTests.cs
Expressions/Tests/Expressions.Test/ExceptionTests.cs
Collections/Collections.Test/ReadOnlyTest.cs
Transformations/Transformations.Tests/UnitTests/TransformationRuleTest.cs
Transformations/Transformations.Tests/UnitTests/TransformationRuleT2Test.cs
Transformations/Transformations.Tests/UnitTests/Relational/ComputationSourceTest.cs
Transformations/Transformations.Tests/UnitTests/TransformationEngineTest.cs
Transformations/Transformations.Tests/UnitTests/MarkInstantiatingForTest.cs
Transformations/Transformations.Tests/UnitTests/Relational/RelationalTest.cs
Transformations/Transformations.Tests/UnitTests/Misc.cs
Transformations/Transformations.Tests/UnitTests/TraceTest.cs
Transformations/Transformations.Tests/UnitTests/GeneralTransformationRuleTest.cs
Transformations/Transformations.Tests/UnitTests/MultipleDependencyTest.cs
Transformations/Transformations.Tests/UnitTests/SingleDependencyTest.cs
Transformations/Transformations.Tests/UnitTests/TransformationContextTest.cs
Transformations/Transformations.Tests/UnitTests/TransformationTest.cs
Tools/Utilities.Tests/ClosureTest.cs
Tools/Utilities.Tests/TreeTest.cs
Optimizations/Tests/Optimizations.Tests/RepeatAverageTests.cs
Models/Tests/Models.Tests.MSTest/ModelTest.cs
Models/Tests/Models.Tests.NUnit/ModelTest.cs
Migrated from deprecated [ExpectedException] attribute to Assert.Throws<>() pattern for MSTest v4 compatibility
Dependency Version Updates
Analysis/Tests/Connectivity.Tests/Connectivity.Tests.csproj
AnyText/AnyText.Lsp/AnyText.Lsp.csproj
AnyText/Tests/AnyText.Tests/AnyText.Tests.csproj
Collections/Collections.Test/Collections.Test.csproj
Expressions/Expressions.Chunk/Expressions.Chunk.csproj
Expressions/Expressions.Utilities/Expressions.Utilities.csproj
Expressions/Tests/Expressions.Chunk.Test/Expressions.Chunk.Test.csproj
Expressions/Tests/Expressions.Configuration.Test/Expressions.Configuration.Test.csproj
Expressions/Tests/Expressions.Linq.Tests/Expressions.Linq.Test.csproj
Expressions/Tests/Expressions.Test/Expressions.Test.csproj
Expressions/Tests/Expressions.Utilities.Tests/Expressions.Utilities.Tests.csproj
Expressions/Tests/Models.Expressions.Tests/Expressions.Models.Tests.csproj
Glsp/Glsp/Glsp.csproj
Glsp/Tests/GlspTests/GlspTests.csproj
Glsp/NMF-GLSP-Core.nuspec
IntegrationTests/ComponentBasedSoftwareArchitectures/ComponentBasedSoftwareArchitectures.csproj
IntegrationTests/IncrementalizationTests/IncrementalizationTests.csproj
Interop/EcoreInterop.Tests/EcoreInterop.Tests.csproj
Models/Models.Tests/Models.Tests.csproj
Models/Tests/Models.Tests.Dynamic/Models.Tests.Dynamic.csproj
Models/Tests/Models.Tests.Json/Models.Tests.Json.csproj
Models/Tests/Models.Tests.MSTest/Models.Tests.MSTest.csproj
Models/Tests/Models.Tests.NUnit/Models.Tests.NUnit.csproj
Optimizations/Tests/Optimizations.Tests/Optimizations.Tests.csproj
Services/Tests/ModelServicesTests/ModelServicesTests.csproj
Synchronizations/Synchronizations.Models.Tests/Synchronizations.Models.Tests.csproj
Synchronizations/Synchronizations.Tests/Synchronizations.Tests.csproj
Transformations/Tests/CodeGenerationTests/CodeGenerationTests.csproj
Transformations/Transformations.Tests/Transformations.Tests.csproj
Tools/Tests/Tests.csproj
Tools/Utilities.Tests/Utilities.Tests.csproj
Updated NuGet package versions including Microsoft.NET.Test.Sdk, MSTest, NUnit, StreamJsonRpc, System.ValueTuple, and coverlet.collector
Parser Position Calculation Fixes
AnyText/AnyText.Core/Parser.cs
Added NextTokenPosition method to find next non-whitespace token, fixed text edit length calculation to handle mid-update scenarios correctly, fixed end column calculation to not add start column offset when on same line
Grammar Rule Naming Update
AnyText/AnyText/Grammars/AnyTextGrammar.cs
AnyText/AnyText/AnyText.anytext
Renamed RulePrefixIDRule to RulePrefixLanguageIdRule for accuracy, updated grammar definition to use LanguageId instead of ID for fragment prefix
Observable Model Collection
Models/Models/Repository/ModelCollection.cs
Added ValuesCollection inner class implementing ICollection and INotifyCollectionChanged, fixed Values getter to return observable values collection instead of items.Values, syncs collection on model add
Code Generator Improvements
AnyText/AnyText.Generator/Transformation/AnytextCodeGenerator.cs
Enhanced GetIdAssignment to use configurable identifier names setting, added fallback to data rules, added error handling for missing identifier rules
Property View Model Retrieval
UserInterfaces/Controls/PropertyView.Shared.cs
Changed model retrieval to use WithUpdates() on Values collection directly instead of calling Distinct() then WithUpdates() for proper observable behavior
Package Reference Updates
Glsp/NMetaGlspEditor/NMetaGlspEditor.Server/NMetaGlspEditor.Server.csproj
Models/Serialization.Json/Serialization.Json.csproj
Models/NMF-Tests.NUnit.nuspec
Services/PropertyService/PropertyService.csproj
Tools/Ecore2Code/Ecore2Code.csproj
Transformations/CodeGen/CodeGen.csproj
UserInterfaces/Controls.Avalonia/Controls.Avalonia.csproj
UserInterfaces/Controls/Controls.csproj
UserInterfaces/Editor.Avalonia/Editor.Avalonia.csproj
UserInterfaces/Editor/Editor.csproj
Updated package versions: Microsoft.AspNetCore.Mvc.Core, Swashbuckle.AspNetCore, System.Text.Json, System.CodeDom, System.ComponentModel.Composition, Avalonia packages, Extended.Wpf.Toolkit, bodong.Avalonia.PropertyGrid
Nuspec Dependency Updates
AnyText/NMF-Anytext-LSP.nuspec
Expressions/NMF-Expressions-Chunk.nuspec
Expressions/NMF-Expressions-Utilities.nuspec
Services/NMF-ModelServices.nuspec
Services/NMF-PropertyService.nuspec
Transformations/NMF-CodeGen.nuspec
UserInterfaces/NMF-Controls-Avalonia.nuspec
UserInterfaces/NMF-Controls.nuspec
Updated dependency versions in nuspec files to match updated package versions
History/Changelog Updates
AnyText/AnyText.history
Expressions/Expressions-Chunk.history
Expressions/Expressions-Utilities.history
Glsp/GLSP.history
Models/Models.history
Models/ModelsTests.history
Services/Services.history
Tools/Ecore2Code.history
Transformations/CodeGen.history
Transformations/Transformations.history
UserInterfaces/Controls.history
Updated changelog files to document dependency updates and new features

Sequence Diagram

sequenceDiagram
    participant User
    participant TestRunner
    participant ModelCollection
    participant Parser
    participant CodeGenerator
    
    User->>TestRunner: Run tests
    TestRunner->>TestRunner: Execute Assert.Throws‹›() pattern
    
    User->>ModelCollection: Access Models
    ModelCollection->>ModelCollection: ValuesCollection notifies on Add
    ModelCollection->>ModelCollection: Values getter returns values not items.Values
    
    User->>Parser: UpdateFromParseTree
    Parser->>Parser: NextTokenPosition calculates correct edit range
    
    User->>CodeGenerator: Generate code
    CodeGenerator->>CodeGenerator: GetIdAssignment with configurable names
Loading

Dig Deeper With Commands

  • /review <file-path> <function-optional>
  • /chat <file-path> "<question>"
  • /roast <file-path>

Runs only when explicitly triggered.

@georghinkel georghinkel added dependencies Pull requests that update a dependency file area/anytext area/repository bug labels Apr 24, 2026
Comment thread Models/Models/Repository/ModelCollection.cs
@mergemonkeyhq
Copy link
Copy Markdown

mergemonkeyhq Bot commented Apr 24, 2026

Actionable Comments Posted: 1

🧾 Coverage Summary
✔️ Covered (66 files)
- Analysis/Tests/Connectivity.Tests/Connectivity.Tests.csproj
- AnyText/AnyText.Core/Parser.cs
- AnyText/AnyText.Generator/Transformation/AnytextCodeGenerator.cs
- AnyText/AnyText.Lsp/AnyText.Lsp.csproj
- AnyText/AnyText.history
- AnyText/AnyText/AnyText.anytext
- AnyText/AnyText/Grammars/AnyTextGrammar.cs
- AnyText/NMF-Anytext-LSP.nuspec
- AnyText/Tests/AnyText.Tests/AnyText.Tests.csproj
- Collections/Collections.Test/Collections.Test.csproj
- Expressions/Expressions-Chunk.history
- Expressions/Expressions-Utilities.history
- Expressions/Expressions.Chunk/Expressions.Chunk.csproj
- Expressions/Expressions.Utilities/Expressions.Utilities.csproj
- Expressions/NMF-Expressions-Chunk.nuspec
- Expressions/NMF-Expressions-Utilities.nuspec
- Expressions/Tests/Expressions.Chunk.Test/Expressions.Chunk.Test.csproj
- Expressions/Tests/Expressions.Configuration.Test/Expressions.Configuration.Test.csproj
- Expressions/Tests/Expressions.Linq.Tests/Expressions.Linq.Test.csproj
- Expressions/Tests/Expressions.Test/Expressions.Test.csproj
- Expressions/Tests/Expressions.Utilities.Tests/Expressions.Utilities.Tests.csproj
- Expressions/Tests/Models.Expressions.Tests/Expressions.Models.Tests.csproj
- Glsp/GLSP.history
- Glsp/Glsp/Glsp.csproj
- Glsp/NMF-GLSP-Core.nuspec
- Glsp/NMetaGlspEditor/NMetaGlspEditor.Server/NMetaGlspEditor.Server.csproj
- Glsp/Tests/GlspTests/GlspTests.csproj
- IntegrationTests/ComponentBasedSoftwareArchitectures/ComponentBasedSoftwareArchitectures.csproj
- IntegrationTests/IncrementalizationTests/IncrementalizationTests.csproj
- Interop/EcoreInterop.Tests/EcoreInterop.Tests.csproj
- Models/Models.Tests/Models.Tests.csproj
- Models/Models.history
- Models/Models/Repository/ModelCollection.cs
- Models/ModelsTests.history
- Models/Serialization.Json/Serialization.Json.csproj
- Models/Tests/Models.Tests.Dynamic/Models.Tests.Dynamic.csproj
- Models/Tests/Models.Tests.Json/Models.Tests.Json.csproj
- Models/Tests/Models.Tests.MSTest/Models.Tests.MSTest.csproj
- Models/Tests/Models.Tests.NUnit/Models.Tests.NUnit.csproj
- Optimizations/Tests/Optimizations.Tests/Optimizations.Tests.csproj
- Services/NMF-ModelServices.nuspec
- Services/NMF-PropertyService.nuspec
- Services/PropertyService/PropertyService.csproj
- Services/Services.history
- Services/Tests/ModelServicesTests/ModelServicesTests.csproj
- Synchronizations/Synchronizations.Models.Tests/Synchronizations.Models.Tests.csproj
- Synchronizations/Synchronizations.Tests/Synchronizations.Tests.csproj
- Tools/AnytextGen/Properties/launchSettings.json
- Tools/Ecore2Code.history
- Tools/Ecore2Code/Ecore2Code.csproj
- Tools/Tests/Tests.csproj
- Tools/Utilities.Tests/Utilities.Tests.csproj
- Transformations/CodeGen.history
- Transformations/CodeGen/CodeGen.csproj
- Transformations/NMF-CodeGen.nuspec
- Transformations/Tests/CodeGenerationTests/CodeGenerationTests.csproj
- Transformations/Transformations.Tests/Transformations.Tests.csproj
- Transformations/Transformations.history
- UserInterfaces/Controls.Avalonia/Controls.Avalonia.csproj
- UserInterfaces/Controls.history
- UserInterfaces/Controls/Controls.csproj
- UserInterfaces/Controls/PropertyView.Shared.cs
- UserInterfaces/Editor.Avalonia/Editor.Avalonia.csproj
- UserInterfaces/Editor/Editor.csproj
- UserInterfaces/NMF-Controls-Avalonia.nuspec
- UserInterfaces/NMF-Controls.nuspec

return GetEnumerator();
}

private class ValuesCollection : ICollection<Model>, INotifyCollectionChanged
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New observable ValuesCollection is not connected to ModelCollection.Values

The PR adds a ValuesCollection that raises CollectionChanged, but ModelCollection.Values still returns items.Values directly. That means the new reactive path described in the PR never gets used, so consumers switching to Values.WithUpdates() will not receive the intended notifications.

Return an instance of the new ValuesCollection from Values, initialize its backing store, and route add/remove operations through it so CollectionChanged can actually fire.

@mergemonkeyhq
Copy link
Copy Markdown

mergemonkeyhq Bot commented Apr 24, 2026

Actionable Comments Posted: 1

🧾 Coverage Summary
✔️ Covered (90 files)
- Analysis/Tests/Connectivity.Tests/Connectivity.Tests.csproj
- AnyText/AnyText.Core/Parser.cs
- AnyText/AnyText.Generator/Transformation/AnytextCodeGenerator.cs
- AnyText/AnyText.Lsp/AnyText.Lsp.csproj
- AnyText/AnyText.history
- AnyText/AnyText/AnyText.anytext
- AnyText/AnyText/Grammars/AnyTextGrammar.cs
- AnyText/NMF-Anytext-LSP.nuspec
- AnyText/Tests/AnyText.Tests/AnyText.Tests.csproj
- Collections/Collections.Test/Collections.Test.csproj
- Collections/Collections.Test/ReadOnlyTest.cs
- Expressions/Expressions-Chunk.history
- Expressions/Expressions-Utilities.history
- Expressions/Expressions.Chunk/Expressions.Chunk.csproj
- Expressions/Expressions.Utilities/Expressions.Utilities.csproj
- Expressions/NMF-Expressions-Chunk.nuspec
- Expressions/NMF-Expressions-Utilities.nuspec
- Expressions/Tests/Expressions.Chunk.Test/Expressions.Chunk.Test.csproj
- Expressions/Tests/Expressions.Configuration.Test/Expressions.Configuration.Test.csproj
- Expressions/Tests/Expressions.Linq.Tests/ExceptionTests.cs
- Expressions/Tests/Expressions.Linq.Tests/Expressions.Linq.Test.csproj
- Expressions/Tests/Expressions.Test/ExceptionTests.cs
- Expressions/Tests/Expressions.Test/Expressions.Test.csproj
- Expressions/Tests/Expressions.Utilities.Tests/Expressions.Utilities.Tests.csproj
- Expressions/Tests/Models.Expressions.Tests/Expressions.Models.Tests.csproj
- Expressions/Tests/Models.Expressions.Tests/ModelNotifySystemTests.cs
- Glsp/GLSP.history
- Glsp/Glsp/Glsp.csproj
- Glsp/NMF-GLSP-Core.nuspec
- Glsp/NMetaGlspEditor/NMetaGlspEditor.Server/NMetaGlspEditor.Server.csproj
- Glsp/Tests/GlspTests/GlspTests.csproj
- IntegrationTests/ComponentBasedSoftwareArchitectures/ComponentBasedSoftwareArchitectures.csproj
- IntegrationTests/IncrementalizationTests/IncrementalizationTests.csproj
- Interop/EcoreInterop.Tests/EcoreInterop.Tests.csproj
- Models/Models.Tests/Models.Tests.csproj
- Models/Models.history
- Models/Models/Repository/ModelCollection.cs
- Models/ModelsTests.history
- Models/NMF-Tests.NUnit.nuspec
- Models/Serialization.Json/Serialization.Json.csproj
- Models/Tests/Models.Tests.Dynamic/Models.Tests.Dynamic.csproj
- Models/Tests/Models.Tests.Json/Models.Tests.Json.csproj
- Models/Tests/Models.Tests.MSTest/ModelTest.cs
- Models/Tests/Models.Tests.MSTest/Models.Tests.MSTest.csproj
- Models/Tests/Models.Tests.NUnit/ModelTest.cs
- Models/Tests/Models.Tests.NUnit/Models.Tests.NUnit.csproj
- Optimizations/Tests/Optimizations.Tests/Optimizations.Tests.csproj
- Optimizations/Tests/Optimizations.Tests/RepeatAverageTests.cs
- Services/NMF-ModelServices.nuspec
- Services/NMF-PropertyService.nuspec
- Services/PropertyService/PropertyService.csproj
- Services/Services.history
- Services/Tests/ModelServicesTests/ModelServicesTests.csproj
- Synchronizations/Synchronizations.Models.Tests/Synchronizations.Models.Tests.csproj
- Synchronizations/Synchronizations.Tests/Synchronizations.Tests.csproj
- Tools/AnytextGen/Properties/launchSettings.json
- Tools/Ecore2Code.history
- Tools/Ecore2Code/Ecore2Code.csproj
- Tools/Tests/Tests.csproj
- Tools/Utilities.Tests/ClosureTest.cs
- Tools/Utilities.Tests/ExtensionsTest.cs
- Tools/Utilities.Tests/TreeTest.cs
- Tools/Utilities.Tests/Utilities.Tests.csproj
- Transformations/CodeGen.history
- Transformations/CodeGen/CodeGen.csproj
- Transformations/NMF-CodeGen.nuspec
- Transformations/Tests/CodeGenerationTests/CodeGenerationTests.csproj
- Transformations/Transformations.Tests/Transformations.Tests.csproj
- Transformations/Transformations.Tests/UnitTests/GeneralTransformationRuleTest.cs
- Transformations/Transformations.Tests/UnitTests/MarkInstantiatingForTest.cs
- Transformations/Transformations.Tests/UnitTests/Misc.cs
- Transformations/Transformations.Tests/UnitTests/MultipleDependencyTest.cs
- Transformations/Transformations.Tests/UnitTests/Relational/ComputationSourceTest.cs
- Transformations/Transformations.Tests/UnitTests/Relational/RelationalTest.cs
- Transformations/Transformations.Tests/UnitTests/SingleDependencyTest.cs
- Transformations/Transformations.Tests/UnitTests/TraceTest.cs
- Transformations/Transformations.Tests/UnitTests/TransformationContextTest.cs
- Transformations/Transformations.Tests/UnitTests/TransformationEngineTest.cs
- Transformations/Transformations.Tests/UnitTests/TransformationRuleT2Test.cs
- Transformations/Transformations.Tests/UnitTests/TransformationRuleTest.cs
- Transformations/Transformations.Tests/UnitTests/TransformationTest.cs
- Transformations/Transformations.history
- UserInterfaces/Controls.Avalonia/Controls.Avalonia.csproj
- UserInterfaces/Controls.history
- UserInterfaces/Controls/Controls.csproj
- UserInterfaces/Controls/PropertyView.Shared.cs
- UserInterfaces/Editor.Avalonia/Editor.Avalonia.csproj
- UserInterfaces/Editor/Editor.csproj
- UserInterfaces/NMF-Controls-Avalonia.nuspec
- UserInterfaces/NMF-Controls.nuspec

@georghinkel georghinkel self-assigned this Apr 26, 2026
@georghinkel georghinkel force-pushed the update-dependencies branch from 0d187c3 to e4aa0c5 Compare April 26, 2026 05:45
@georghinkel georghinkel merged commit 9fea1e0 into main Apr 26, 2026
1 check passed
@georghinkel georghinkel deleted the update-dependencies branch April 26, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/anytext area/repository bug dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant