Open
Description
Today I first tried elm-format and shocked with this result. It consumes 12 spaces per one chain.
- model.floor
- |> Maybe.map EditingFloor.present
- |> Maybe.andThen (\floor -> List.head (selectedObjects model)
- |> Maybe.andThen (\primarySelected ->
- ObjectsOperation.nearest direction primarySelected (Floor.objects floor)
- |> Maybe.map (\object ->
- { model |
- selectedObjects =
- List.map Object.idOf [object]
- }
- )))
- |> Maybe.withDefault model
+ model.floor
+ |> Maybe.map EditingFloor.present
+ |> Maybe.andThen
+ (\floor ->
+ List.head (selectedObjects model)
+ |> Maybe.andThen
+ (\primarySelected ->
+ ObjectsOperation.nearest direction primarySelected (Floor.objects floor)
+ |> Maybe.map
+ (\object ->
+ { model
+ | selectedObjects =
+ List.map Object.idOf [ object ]
+ }
+ )
+ )
+ )
+ |> Maybe.withDefault model
In Haskell, this may be flattened by do
notation. So I don't think the former style is too strange.
Another alternative would be the following style.
+ model.floor
+ |> Maybe.map EditingFloor.present
+ |> Maybe.andThen (\floor ->
+ List.head (selectedObjects model)
+ |> Maybe.andThen (\primarySelected ->
+ ObjectsOperation.nearest direction primarySelected (Floor.objects floor)
+ |> Maybe.map (\object ->
+ { model
+ | selectedObjects =
+ List.map Object.idOf [ object ]
+ }
+ )
+ )
+ )
+ |> Maybe.withDefault model
This is 8 spaces per one chain.
And this is 4 spaces.
+ model.floor
+ |> Maybe.map EditingFloor.present
+ |> Maybe.andThen (\floor -> List.head (selectedObjects model)
+ |> Maybe.andThen (\primarySelected -> ObjectsOperation.nearest direction primarySelected (Floor.objects floor)
+ |> Maybe.map (\object ->
+ { model
+ | selectedObjects =
+ List.map Object.idOf [ object ]
+ }
+ )
+ )
+ )
+ |> Maybe.withDefault model
I found this was once discussed before. No progress on this issue since then? I don't have clear idea but wanted to bring it up again before public release. Is it possibly true that elm-lang/core will be formatted in the future? It has similar code too.