Skip to content

Tags: m31coding/M31.FluentAPI

Tags

v2.1.0

Toggle v2.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: builder from existing instance (#53)

* chore: Employee2 generated code example

* feat: constructor with instance

* chore: expected results with constructor with instance

* feat: FromExistingInterface

* feat: FromExistingInterface

* chore: adapt tests for any step interface

* feat: FromExistingMethodGenerator

* chore: overwrite tests with new generation

* test: CanCreateThreeMemberClassFromExisting

* docs(01_Basics): explain FromExisting

* docs(README.md): add paragraph about `FromExisting`

* docs(01_Basics): clarify FromExisting

* chore: bump nuget version

* docs(README): update doc comments image

v2.0.0

Toggle v2.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: unsafe accessors (#48)

* chore: migration to .NET 8

* test: ThreePrivateMembersClass with UnsafeAccessor

* fix: remove requires reflection

* wip: use unsafe accessor

* fix: publiclyWritable

* wip: unsafe accessor

* fix: ThreePrivateMembersClass test

* test: failing PrivateFluentMethodClass test

* feat: InnerBodyForMethodGenerator

* test: FluentReturnMultiStepPrivateMethodsClass

* test: PrivateConstructorClass

* test: GenericClassPrivateConstructor

* test: ThreeMemberRecordPrimaryConstructor

* test: CanExecuteThreeMemberRecordPrimaryConstructor

* fix: ThreeMemberRecordPrimaryConstructor expected

* test: ThreeMemberRecordPrimaryConstructor

* fix: equality tests

* test: GenericClassPrivateDefaultConstructor

* wip: UsageTests

* test: add GenericClassPrivateConstructor failing usage test

* wip: enabled tests

* chore: upgrade to .NET 10

* chore(M31.FluentApi.Tests): update nuget packages

* test: ParameterAnnotationsPublicConstructorClass / ParameterAnnotationsPrivateConstructorClass

* chore: address warnings

* test: PrivateFluentMethodNullableParameterClass

* refactor: extract CreateParameters method

* test: PrivateFluentMethodParameterModifiersClass

* test: PrivateReadonlyFieldClass (wip)

* test: PrivateReadonlyFieldClass

* test: PrivateUnderscoreFieldClass

* test: PrivateFieldClass

* test: PredicatePrivateFieldClass

* test: InheritedRecord (wip)

* fix: InheritedRecord: CreateStudent.expected.txt

* test: InheritedRecord

* test: InheritedClassPrivateSetters

* test: GetPrivateInitPropertyClass

* test: CollectionNullableArrayClass

* test: ContinueWithAfterCompoundClass

* test: ContinueWithOfOverloadedMethodClass

* test: ContinueWithSelfClass

* test: CommentedMethodsClass

* test: CommentedPropertiesClassAdvanced

* test: FluentNullableNoNullableAnnotationPrivateSetClass

* test: PublicReadonlyFieldClass

* test: PartialClass

* test: TryBreakFluentApiClass1

* test: TryBreakFluentApiClass2

* test: DocumentedStudentClass

* test: Student

* test: ThreeMemberStruct

* usage test: ContinueWithInForkClass

* test: move usage tests

* usage tests: migrated all tests

* fix: declaring class name

* test: GenericOverloadedPrivateMethodClass

* test: write expected

* test: GenericClassWithGenericMethods

* fix: test method names

* test: PrivateConstructorClassWithParams

* fix: remove todo

* fix: exlamation mark in set methods

* chore: add example and story book project

* chore: suppress warnings

* chore: mention UnsafeAccessors

* chore: 2.0.0 and changelog

v1.12.0

Toggle v1.12.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: escape keywords in method parameters (#47)

* fix: escape keywords in method parameters

* fix: KeywordClass

v1.11.0

Toggle v1.11.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: documentation comments (#42)

* test: CommentedClass

* feat: get comments from symbol info

* wip: comments

* wip: comments

* feat: comment equality and hash methods

* Test: DocumentationComments (wip)

* test: DocumentationComments

* test: Comments.Parse and Comment.GetLine

* feat: comment transformer (wip)

* test: CommentsTransformer

* refactor: add FluentCommentsParser class

* feat(CommentsGenerator): HandleMethodSymbolInfo

* test(CommentedMethodClass): wip

* feat: CommentedMethodSignature

* feat: inheritdoc

* test: CommentedPropertiesClass

* test: CommentedDefaultNullablyPropertyClass (wip)

* test: CommentedPropertiesClassAdvanced (wip)

* test: CommentedPropertiesClassAdvanced

* refactor: remove FluentMethod property

* test: CommentedCompoundClass

* feat: FluentApiCommentsProvider (wip)

* feat: FluentApiCommentsProvider (wip)

* fix: warning

* fix(CommentsGenerator): distinct single method names

* test: CommentedLambdaCollectionClass

* fix: CommentedCompoundClass test

* fix: remove todo

* feat: FluentApiCommentsProvider (wip)

* test: improve CommentedCompoundClass test

* feat: MethodsToCommentsTemplate

* chore: minor improvements

* feat: FluentApiCommentsProvider (wip)

* test: FluentApiCommentsProviderTests

* test: FluentApiComments LambdaCollectionClass

* fix: CommentsProvider for compounds

* test: RedundantCommentCompoundClass

* refactor: renaming

* chore: use cancellation token

* fix: use NotSupportedException

* feat(Example): MyPerson (wip)

* refactor: namespaces

* fix: unit test

* chore: format code

* refactor: format code

* fix: unit test

* test: VoidMethodClass

* fix: remove MyPerson test class

* test: IncompletelyCommentedPropertyClass

* feat(ExampleProject): DocumentedStudent

* docs: Documentation comments readme section (wip)

* fix: four slashes instead of three

* test: DocumentedStudentClass

* docs: readme

* test: WronglyCommentCompoundClass (wip)

* fix: WronglyCommentedClass and WronglyCommentedClass2 tests

* fix(SymbolInfoCreator): use regex

* fix: readme

* chore: bump package version

* feat(ExampleProject): DocumentedStudent

* fix(BuilderStepMethods): make constructor internal

v1.10.0

Toggle v1.10.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: Suppress collection methods (#41)

* fix(ExampleProject): suppress function not used warning

* feat: suppress withItem and withZeroItems method generation

* test: CollectionMemberClassWithSuppression

* chore: increase nuget versions to 1.10.0

* docs(readme): update

* docs(readme): fix typo

v1.9.1

Toggle v1.9.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Remove M31.FluentApi.Attributes using from generated code file (#38)

* fix: don't add M31.FluentApi.Attributes using to generated code file

* fix: unit tests

* chore: bump nuget versions

v1.9.0

Toggle v1.9.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: Inheritance (#32)

* Inheritance implementation for Fluent API

* refactor(ClassInfoFactory): minor changes

* test: InheritedClass

* fix(ClassInfoFactory): compare to SpecialType in GetMembers

* test: InheritedClassProtectedMembers and InheritedClassProtectedSetters

* docs: mention inheritance in features

* fix: inheritance tests

* test: inherited record

* improve(ExampleProject): add ExchangeStudent example

* test: add failing test CanExecuteInheritedClassPrivateSetters

* fix: make test InheritedClassPrivateSetters work

* fix: InnerBodyForMethodGenerator

* refactor(ClassInfoFactory): use List instead of HashSet

* fix: commit generated file

* chore: bump nuget version

---------

Co-authored-by: Oleh Formaniuk <oformaniuk@microsoft.com>
Co-authored-by: Kevin Schaal <kevin.schaal@m31coding.com>

v1.8.0

Toggle v1.8.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: Constructor selection (#30)

* feat: use constructor with least amount of parameters

* refactor: rename test

* test: GenericClassPrivateConstructor

* fix(ConstructorGenerator): add BindingFlags.NonPublic

* feat: report diagnostics for missing or ambiguous constructor

* chore: adjust analyzer release tracking

* fix(Analyzers): remove MissingConstructor diagnosis

* test: CanDetectAmbiguousConstructors

* chore: increase nuget versions to 1.8

* chore(ConstructorGenerator): add doc comment

* fix(ClassInfoFactory): comment

* refactor(ClassInfoFactory): improve variable name

v1.7.0

Toggle v1.7.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: Lambda methods by default (#24)

* feat: fluent lambda per default

* feat: lambda parameters for compounds

* fix: lambda method parameter names

* feat(LambdaByDefault): LambdaBuilderInfo for the FluentCollectionAttributeInfo

* fix(FluentApiInfoCreator): remove assumptions from TryGetLambdaBuilderInfoOfCollectionType

* feat: WithItem method with lambda parameter

* test(FluentLambdaCollectionClass): add expected result

* test: CanExecuteFluentLambdaCollectionClass

* feat: WithItems method with lambda parameters

* improve(Readme): feature list and acknowledgements

* chore: make FluentLambda obsolete

* fix(Readme)

* chore: replace FluentLambda with FluentMember in exmaples and tests

* chore(Storybook): NestedFluentApis example instead of FluentLambdaExample

* fix(ArrayCreator): remove semicolon in CreateCollectionFromEnumerable

* fix(ArrayCreator): add using only when needed

* test: FluentLambdaCollectionClass2

* test: FluentLambdaManyCollectionsClass and FluentLambdaManyPrivateCollectionsClass

* improve: property order in FluentLambdaManyPrivateCollectionsClass and FluentLambdaManyCollectionsClass

* fix: execution tests

* improve(CodeGenerationExecutionTests): blocks between different subtests

* test: add failing test TryBreakFluentApiClass3

* refactor(CollectionMethodCreator): cleanup

* fix: make TryBreakFluentApiClass3 test work

* chore: adjust storybook and readme

* chore: increase package version to 1.7.0

* fix: minor change

v1.6.0

Toggle v1.6.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: FluentSkippable (#19)

* feat(FluentSkippable): FluentSkippable attribute

* feat(FluentSkippable): make SkippableMemberClass test work

* refactor(BuilderStepMethodCreator): create static methods from BuilderStepMethods

* refactor(BuilderStepMethodCreator): cleanup

* feat(FluentSkippable): make SkippableFirstMemberClass test work

* test: SkippableSeveralMembersClass

* fix(SkippableSeveralMembersClass): remove blank line

* feat(FluentSkippable): last step cannot be skipped diagnostic

* test: add failing test SkippableLoopClass

* Test(SkippableLoopClass): add expected code

* test(SkippableLoopClass): add desired CreatedStudent.g.cs

* feat(FluentSkippable): BuilderStepsGenerator new version

* feat(FluentSkippable): loop handling classes

* feat(FluentSkippable): make SkippableLoopClass test work

* fix: remove obsolete EmptyInterfaceBuilderMethod class

* refactor: rename BuilderStepsGeneration folder and namespace

* fix: rename file

* test: CanExecuteSkippableLoopClass

* fix: rename FirstStepBuilderMethod and SingleStepBuilderMethod classes

* test: TarjansSccAlgorithmTests

* test: ContinueWithInForkClass

* test: SkippableFirstTwoMembersClass

* test: SkippableTwoLoopsClass

* test: SkippableForkMembersClass

* fix: address resharper warnings

* feat(FluentSkippable): adjust examples and storybook

* docs(Readme): add FluentSkippable

* chore: increase nuget versions to 1.6.0