Tags: m31coding/M31.FluentAPI
Tags
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
feat: Support partial classes (#18) * improve(SourceGenerator): comments * feat: support partial classes * test: PartialClass * refactor(TestClassCodeGenerator): improve naming * improve(FluentLambdaTestClass): Address class in separate file * fix(M31.FluentApi.Tests.csproj): remove item group * fix(FluentLambdaClassInDifferentNamespace): move Address to separate file * fix(FluentLambdaNullablePropertyClass): move Address into separate file * fix(FluentLambdaSingleStepClass): move address to separate file * fix: address Resharper warnings * test(FluentApiAnalyzer): structs, records, and record structs * test: DuplicateMethodPartialClass * chore: increase nuget version to 1.5.0 * fix: minor improvements * improve(ListAndDictionary): NotSupportedException instead of NotImplementedException * refactor: minor change
feat: FluentLambda and InitialStep (#17) * fix(Readme): add media from githubusercontent * feat: add FluentLambdaAttribute * test: add test class FluentLambdaClass * feat: explicit interface implementations for the generated builder * refactor(MethodSignature): rename isStandAlone to isSignatureForInterface * fix(MethodSignature): no default parameter values for explicit interface implementations * test: rerun tests and write results with explicit interface implementations * refactor(MethodSignature): don't erase values in copy constructor * test: EmptyClass * feat: implement InitialStep method and test with OneMemberClass, TwoMemberClass and ThreeMemberClass * fix(TestDataProvider): remove single test filter method * fix: GenericClassWithConstraints test * test: rerun tests and write generated code as expected code * fix: names of test classes * fix(Readme): typo * feat(DuplicateMethodsChecker): check for reserved method names * chore: add M31FA021 (reserved method name) to shipped analyzer releases * test: ThreePrivateMembersClass * test: add more code generation execution tests * test: add CanExecutePrivateConstructorClass * feat(FluentLambda): make FluentLambdaClass test work * feat(FluentLambda): FluentLambdaMemberWithoutFluentApi diagnostic * test: CanDetectFluentLambdaMemberWithoutFluentApiClass * test: CanExecuteFluentLambdaClass * test: FluentLambdaSingleStepClass and CanExecuteFluentLambdaSingleStepClass * test: FluentLambdaNullablePropertyClass * test: add failing test FluentLambdaRecursiveClass * test(FluentLambdaRecursiveClass): add name property * refactor(BuilderClassFields): single GetNewFieldName method * refactor(BuilderClassFields): rename to ReservedVariableNames * feat: make test FluentLambdaRecursiveClass work * test: CanExecuteFluentLambdaRecursiveClass * test: add failing test TryBreakFluentApiClass1 * fix: make test TryBreakFluentApiClass1 work * test: TryBreakFluentApiClass2 * test(FluentLambdaRecursiveClass): add name property * fix: don't use builder type prefix for info fields in the constructor * test: rerun tests and write results as expected results * test: FluentLambdaClassInDifferentNamespace * fix: address resharper warnings * fix: address more resharper warnings * fix: failing tests due to resharper annotations * fix: remove obsolete comment * chore: optimize description and package tags * improve(ExampleProject): add person examples to Program.cs * fix: nullable private method property * improve(ExampleProject): add HashCode class * improve(ExampleProject): add DockerFile example * fix(ExampleProject): rename file * docs(Readme): add FluentLambda * fix: InitialStep for empty class * fix: remove obsolete NoMember class * improve: add city to FluentLambda tests * fix(TestDataProvider): remove NoMemberClass * fix(CodeGenerationTests): adjust for new Address model * improve(FluentLambda): also generate normal member builder method * fix(FluentLambdaClassInDifferentNamespace): take normal builder method into account * improve(Storybook): add FluentLambda * docs(Readme): minor changes * improve(Storybook): revise texts * chore: increase nuget versions to 1.4.0
feat: FluentResult (#13) * fix(Readme): typo * fix(Readme): typos in code example * feat(FluentReturn): add FluentReturnAttribute * feat(FluentReturn): bookkeep return type and respectReturnType values * refactor(InnerBodyCreation): rename classes * refactor(InnerBodyGeneration): rename methods * refactor(InnerBodyGeneration): rename method * test: add FluentReturnSingleStepClass * feat(TestDataProvider): add filter method for running a single test * feat(Generics): make FluentReturnSingleStepClass test work * refactor(BuilderStepMethod): add CreateMethod and CreateInterfaceMethod methods * fix(InnerBodyForMethodGenerator): use parameter returnType * test: FluentReturnSingleStepPrivateMethodsClass * feat(FluentReturn): adjust BuildReflectionCodeWithRefAndOutParameters method * test: FluentReturn method with ref parameter * fix(InnerBodyForMethodGenerator): suppress nullability for methods that return a result * test: FluentReturnMultiStepClass and FluentReturnMultiStepPrivateMethodsClass * feat(CodeGenerationTests): write generated code only if it changed * fix(FluentReturnMultiStepClass): remove unused using * test: CanExecuteFluentReturnSingleStepPrivateMethodsClass and CanExecuteFluentReturnMultiStepPrivateMethodsClass * feat: detect conflicting control attributes FluentBreak and FluentReturn * docs(Readme): fix typo * test: ContinueWithOfOverloadedMethodClass * feat(Storybook): add FluentReturn example * docs(Readme): add FluentReturn description and example * chore: increase nuget versions to 1.3.0 * chore(Nuget): add readme
PreviousNext