Tags: m31coding/M31.FluentAPI
Tags
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
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
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
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
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>
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
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
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
PreviousNext