MultiWayIf receives context-sensitive alignment despite configuration #339

Open
opened 2021-02-05 14:59:42 +01:00 by pbrisbin · 0 comments
pbrisbin commented 2021-02-05 14:59:42 +01:00 (Migrated from github.com)

We make use of configuration to ensure things don't get aligned in context-aware ways, to avoid diff noise:

Configuration
---
conf_debug:
  dconf_roundtrip_exactprint_only: false
  dconf_dump_bridoc_simpl_par: false
  dconf_dump_ast_unknown: false
  dconf_dump_bridoc_simpl_floating: false
  dconf_dump_config: false
  dconf_dump_bridoc_raw: false
  dconf_dump_bridoc_final: false
  dconf_dump_bridoc_simpl_alt: false
  dconf_dump_bridoc_simpl_indent: false
  dconf_dump_annotations: false
  dconf_dump_bridoc_simpl_columns: false
  dconf_dump_ast_full: false
conf_forward:
  options_ghc:
    - -XBangPatterns
    - -XDataKinds
    - -XDeriveAnyClass
    - -XDeriveFoldable
    - -XDeriveFunctor
    - -XDeriveGeneric
    - -XDeriveLift
    - -XDeriveTraversable
    - -XDerivingStrategies
    - -XFlexibleContexts
    - -XFlexibleInstances
    - -XGADTs
    - -XGeneralizedNewtypeDeriving
    - -XLambdaCase
    - -XMultiParamTypeClasses
    - -XNoImplicitPrelude
    - -XNoMonomorphismRestriction
    - -XOverloadedStrings
    - -XRankNTypes
    - -XRecordWildCards
    - -XScopedTypeVariables
    - -XStandaloneDeriving
    - -XTypeApplications
    - -XTypeFamilies
conf_errorHandling:
  econf_ExactPrintFallback: ExactPrintFallbackModeInline
  econf_Werror: false
  econf_omit_output_valid_check: false
  econf_produceOutputOnErrors: false
conf_preprocessor:
  ppconf_CPPMode: CPPModeAbort
  ppconf_hackAroundIncludes: false
conf_obfuscate: false
conf_roundtrip_exactprint_only: false
conf_version: 1
conf_layout:
  lconfig_reformatModulePreamble: true
  lconfig_altChooser:
    tag: AltChooserBoundedSearch
    contents: 3
  lconfig_allowSingleLineExportList: false
  lconfig_importColumn: 60
  lconfig_hangingTypeSignature: false
  lconfig_importAsColumn: 50
  lconfig_alignmentLimit: 1
  lconfig_indentListSpecial: true
  lconfig_indentAmount: 2
  lconfig_alignmentBreakOnMultiline: true
  lconfig_cols: 80
  lconfig_indentPolicy: IndentPolicyLeft
  lconfig_indentWhereSpecial: true
  lconfig_columnAlignMode:
    tag: ColumnAlignModeDisabled
    contents: 0.7

But that doesn't seem to be respected with MultiWayIf:

Given:

example :: A -> B
example = if
  | this > that -> True
  | othrewise -> False

Expected: no changes

Actual:

example :: A -> B
example = if
  | this > that -> True
  | othrewise   -> False
% stack exec brittany -- --version
brittany version 0.13.1.0
Copyright (C) 2016-2019 Lennart Spitzner
Copyright (C) 2019 PRODA LTD
There is NO WARRANTY, to the extent permitted by law.
We make use of configuration to ensure things don't get aligned in context-aware ways, to avoid diff noise: <details> <summary>Configuration</summary> ```yaml --- conf_debug: dconf_roundtrip_exactprint_only: false dconf_dump_bridoc_simpl_par: false dconf_dump_ast_unknown: false dconf_dump_bridoc_simpl_floating: false dconf_dump_config: false dconf_dump_bridoc_raw: false dconf_dump_bridoc_final: false dconf_dump_bridoc_simpl_alt: false dconf_dump_bridoc_simpl_indent: false dconf_dump_annotations: false dconf_dump_bridoc_simpl_columns: false dconf_dump_ast_full: false conf_forward: options_ghc: - -XBangPatterns - -XDataKinds - -XDeriveAnyClass - -XDeriveFoldable - -XDeriveFunctor - -XDeriveGeneric - -XDeriveLift - -XDeriveTraversable - -XDerivingStrategies - -XFlexibleContexts - -XFlexibleInstances - -XGADTs - -XGeneralizedNewtypeDeriving - -XLambdaCase - -XMultiParamTypeClasses - -XNoImplicitPrelude - -XNoMonomorphismRestriction - -XOverloadedStrings - -XRankNTypes - -XRecordWildCards - -XScopedTypeVariables - -XStandaloneDeriving - -XTypeApplications - -XTypeFamilies conf_errorHandling: econf_ExactPrintFallback: ExactPrintFallbackModeInline econf_Werror: false econf_omit_output_valid_check: false econf_produceOutputOnErrors: false conf_preprocessor: ppconf_CPPMode: CPPModeAbort ppconf_hackAroundIncludes: false conf_obfuscate: false conf_roundtrip_exactprint_only: false conf_version: 1 conf_layout: lconfig_reformatModulePreamble: true lconfig_altChooser: tag: AltChooserBoundedSearch contents: 3 lconfig_allowSingleLineExportList: false lconfig_importColumn: 60 lconfig_hangingTypeSignature: false lconfig_importAsColumn: 50 lconfig_alignmentLimit: 1 lconfig_indentListSpecial: true lconfig_indentAmount: 2 lconfig_alignmentBreakOnMultiline: true lconfig_cols: 80 lconfig_indentPolicy: IndentPolicyLeft lconfig_indentWhereSpecial: true lconfig_columnAlignMode: tag: ColumnAlignModeDisabled contents: 0.7 ``` </details> But that doesn't seem to be respected with `MultiWayIf`: **Given**: ```hs example :: A -> B example = if | this > that -> True | othrewise -> False ``` **Expected**: no changes **Actual**: ```hs example :: A -> B example = if | this > that -> True | othrewise -> False ``` ```console % stack exec brittany -- --version brittany version 0.13.1.0 Copyright (C) 2016-2019 Lennart Spitzner Copyright (C) 2019 PRODA LTD There is NO WARRANTY, to the extent permitted by law. ```
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: hexagoxel/brittany#339
There is no content yet.