mdgriffith / elm-codegen

https://package.elm-lang.org/packages/mdgriffith/elm-codegen/latest/
BSD 3-Clause "New" or "Revised" License
138 stars 16 forks source link

Support for passing an indentation level to toString #60

Open wolfadex opened 1 year ago

wolfadex commented 1 year ago

When combining elm-codegen with elm-review you can end up with invalid indentation. E.g. given

{-| @generated-by_elm-review-codegen
-}
encodeTuple : ( Bool, Int ) -> Json.Encode.Value
encodeTuple foo = Debug.todo ""

and expecting the result of

encodeTuple : ( Bool, Int ) -> Json.Encode.Value
encodeTuple foo =
    case food of
        ( first, second ) ->
            Json.Encode.list identity
                [ Json.Encode.bool first, Json.Encode.int second ]

or possibly

encodeTuple : ( Bool, Int ) -> Json.Encode.Value
encodeTuple foo = case food of
                                  ( first, second ) ->
                                          Json.Encode.list identity
                                                  [ Json.Encode.bool first, Json.Encode.int second ]

but instead I get

encodeTuple : ( Bool, Int ) -> Json.Encode.Value
encodeTuple foo = case foo of
    ( first, second ) ->
        Json.Encode.list identity
            [ Json.Encode.bool first, Json.Encode.int second ]

Given that I have indentation information from elm-review it'd be nice to be able to do Elm.toStringWithIndentationOf range.start.column someExpression (or such).