csharpier icon indicating copy to clipboard operation
csharpier copied to clipboard

Improve formatting of Generics in BaseList and Constraints

Open belav opened this issue 4 years ago • 0 comments

These are some edge cases I ran across while reviewing a couple of the forked repos.

public interface IProjectionExpression<TSource, TDestination, TMappingExpression>
    : IProjectionExpressionBase<TSource, TDestination, TMappingExpression>
    where TMappingExpression : IProjectionExpressionBase<
            TSource,
            TDestination,
            TMappingExpression
        > { }
// should probably be
public interface IProjectionExpression<TSource, TDestination, TMappingExpression>
    : IProjectionExpressionBase<TSource, TDestination, TMappingExpression>
    where TMappingExpression : IProjectionExpressionBase<
        TSource,
        TDestination,
        TMappingExpression
    > { }
// and if you have multiple constraints, it does this
public interface IProjectionExpression<TSource, TDestination, TMappingExpression>
    : IProjectionExpressionBase<TSource, TDestination, TMappingExpression>
    where TMappingExpression : IProjectionExpressionBase<TSource, TDestination, TMappingExpression>
    where TMappingExpression : IProjectionExpressionBase<
            TSource,
            TDestination,
            TMappingExpression
        > { }
// this one is picking up align 2 I believe.
public interface IProjectionExpression<TSource, TDestination, TMappingExpression>
    : IProjectionExpressionBase<
          TSource,
          TDestination,
          TMappingExpression,
          jlasdfkjaskdlfjklasflkjasjklfalsfdakj
      > { }
// could possibly be
public interface IProjectionExpression<TSource, TDestination, TMappingExpression>
    : IProjectionExpressionBase<
        TSource,
        TDestination,
        TMappingExpression,
        jlasdfkjaskdlfjklasflkjasjklfalsfdakj
    > { }
// but if there are multiple interfaces, the align 2 looks correct, so maybe this case shouldn't be changed
public interface IProjectionExpression<TSource, TDestination, TMappingExpression>
    : IProjectionExpressionBase<
          TSource,
          TDestination,
          TMappingExpression,
          jlasdfkjaskdlfjklasflkjasjklfalsfdakj
      >,
      ISomeOtherInterface { }

belav avatar Jun 12 '21 16:06 belav