Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Preserve single line function arguments #1125

Merged
merged 4 commits into from
Jun 14, 2024

Conversation

brandonchinn178
Copy link
Collaborator

Currently, function arguments are forced to be on multiple lines if the whole type is multiline:

foo ::
  Show a =>
  a ->
  String

This allows the arguments to stay on the same line if they were originally:

foo ::
  Show a =>
  a -> String

If the user wrote the function args on multiple lines, it will stay on multiple lines. So this change is not a breaking change for people with already formatted code

ref. fourmolu/fourmolu#277 fourmolu/fourmolu#410

@brandonchinn178 brandonchinn178 force-pushed the bchinn-preserve-singleline branch from fe33a32 to 19398dd Compare June 14, 2024 02:01
@brandonchinn178 brandonchinn178 force-pushed the bchinn-preserve-singleline branch from 19398dd to 798c98b Compare June 14, 2024 02:01
@brandonchinn178 brandonchinn178 requested a review from amesgen June 14, 2024 02:02
@mrkkrp mrkkrp merged commit 84af456 into tweag:master Jun 14, 2024
9 checks passed
@brandonchinn178 brandonchinn178 deleted the bchinn-preserve-singleline branch June 14, 2024 15:53
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 31, 2025
## Fourmolu 0.17.0.0

* Add new `import-grouping` option to group imports with grouping rules specified in configuration ([#403](fourmolu/fourmolu#403))

* Add new `sort-constraints` option to sort constraints alphabetically ([#433](fourmolu/fourmolu#433))

* Add new `sort-derived-classes` option to sort classes in deriving clauses ([#434](fourmolu/fourmolu#434))

* Add new `sort-derived-clauses` option to sort classes deriving clauses ([#434](fourmolu/fourmolu#434))

* Add new `trailing-section-operators` option to disable trailing "section" operators (those that are `infixr 0`, such as `$`) ([#444](fourmolu/fourmolu#444))

* Fix issue where `single-constraint-parens: never` would drop parentheses around implicit parameters ([#446](fourmolu/fourmolu#446))

* Fix indentation for parenthesized expressions that start off the indentation column ([#428](fourmolu/fourmolu#428))

* Allow multiline comments in indented contexts ([#65](fourmolu/fourmolu#65))


## Fourmolu 0.16.2.0

### Upstream changes:

#### Ormolu 0.7.7.0

* Use single-line layout for parens around single-line content. [Issue
  1120](tweag/ormolu#1120).

* Allow function arguments to be on the same line even if the full type
  (with constraints and foralls) are on multiple lines. [PR
  1125](tweag/ormolu#1125).

## Fourmolu 0.16.1.0

### Upstream changes:

#### Ormolu 0.7.6.0

* Fix Haddock comments on infix constructors
  [Issue 758](tweag/ormolu#758).

* Don't require a trailing newline in `.ormolu` files. [Issue
  1122](tweag/ormolu#1122).

* Remove unnecessary indentation from list comprehensions. [Issue
  966](tweag/ormolu#966).

## Fourmolu 0.16.0.0

* Allow specifying path to configuration file with `--config` ([#396](fourmolu/fourmolu#396))

### Upstream changes:

#### Ormolu 0.7.5.0

* Switched to `ghc-lib-parser-9.10`, with the following new syntactic features/behaviors:
  * GHC proposal [#575](https://github.com/ghc-proposals/ghc-proposals/blob/10290a668608d608c3f6c6010be265cf7a02e1fc/proposals/0575-deprecated-instances.rst): deprecated instances.
  * GHC proposal [#281](https://github.com/ghc-proposals/ghc-proposals/blob/10290a668608d608c3f6c6010be265cf7a02e1fc/proposals/0281-visible-forall.rst): visible forall in types of terms.
    Enabled by `RequiredTypeArguments` (enabled by default).
  * `LinearTypes`: `let` and `where` bindings can now be linear, in particular have multiplicity annotations.
  * Using `forall` as an identifier is now a parse error.
  * GHC proposal [#65](https://github.com/ghc-proposals/ghc-proposals/blob/10290a668608d608c3f6c6010be265cf7a02e1fc/proposals/0065-type-infix.rst): namespacing fixity declarations for type names and WARNING/DEPRECATED pragmas.
  * `TypeAbstractions` now supports `@`-binders in lambdas and function equations.
  * Support for the `GHC2024` language.

* Updated to `Cabal-syntax-3.12`.
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 31, 2025
## Ormolu 0.7.7.0

* Use single-line layout for parens around single-line content. [Issue
  1120](tweag/ormolu#1120).

* Allow function arguments to be on the same line even if the full type
  (with constraints and foralls) are on multiple lines. [PR
  1125](tweag/ormolu#1125).

## Ormolu 0.7.6.0

* Fix Haddock comments on infix constructors. [Issue
  758](tweag/ormolu#758).

* Don't require a trailing newline in `.ormolu` files. [Issue
  1122](tweag/ormolu#1122).

* Remove unnecessary indentation from list comprehensions. [Issue
  966](tweag/ormolu#966).

## Ormolu 0.7.5.0

* Switched to `ghc-lib-parser-9.10`, with the following new syntactic features/behaviors:
  * GHC proposal [#575](https://github.com/ghc-proposals/ghc-proposals/blob/10290a668608d608c3f6c6010be265cf7a02e1fc/proposals/0575-deprecated-instances.rst): deprecated instances.
  * GHC proposal [#281](https://github.com/ghc-proposals/ghc-proposals/blob/10290a668608d608c3f6c6010be265cf7a02e1fc/proposals/0281-visible-forall.rst): visible forall in types of terms.
    Enabled by `RequiredTypeArguments` (enabled by default).
  * `LinearTypes`: `let` and `where` bindings can now be linear, in particular have multiplicity annotations.
  * Using `forall` as an identifier is now a parse error.
  * GHC proposal [#65](https://github.com/ghc-proposals/ghc-proposals/blob/10290a668608d608c3f6c6010be265cf7a02e1fc/proposals/0065-type-infix.rst): namespacing fixity declarations for type names and WARNING/DEPRECATED pragmas.
  * `TypeAbstractions` now supports `@`-binders in lambdas and function equations.
  * Support for the `GHC2024` language.

* Updated to `Cabal-syntax-3.12`.
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants