Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Preserve blank lines in docstrings #2379

Merged
merged 4 commits into from Jun 23, 2023
Merged

Conversation

Julow
Copy link
Collaborator

@Julow Julow commented Jun 22, 2023

We were always adding empty lines before and after paragraphs, even when they were not necessary.

Empty lines are now added only when necessary or if they are present in the original source file.

We were always adding empty lines before and after paragraphs, even when
they are not necessary.

Empty lines are now added only when necessary or if they are present in
the original source file.
Instead, compare the location to find out whether two elements are
separated by an empty line.
@Julow Julow merged commit da0153a into ocaml-ppx:main Jun 23, 2023
9 of 10 checks passed
Julow added a commit to Julow/opam-repository that referenced this pull request Jul 18, 2023
…camlformat-bench (0.26.0)

CHANGES:

### Removed

- Remove `--numeric` feature (ocaml-ppx/ocamlformat#2333, ocaml-ppx/ocamlformat#2357, @gpetiot)

### Deprecated

### Bug fixes

- Fix crash caused by `let f (type a) :> a M.u = ..` (ocaml-ppx/ocamlformat#2399, @Julow)
- Fix crash caused by `module T = (val (x : (module S)))` (ocaml-ppx/ocamlformat#2370, @Julow)
- Fix invalid formatting of `then begin end` (ocaml-ppx/ocamlformat#2369, @Julow)
- Protect match after `fun _ : _ ->` (ocaml-ppx/ocamlformat#2352, @Julow)
- Fix invalid formatting of `(::)` (ocaml-ppx/ocamlformat#2347, @Julow)
- Fix indentation of module-expr extensions (ocaml-ppx/ocamlformat#2323, @gpetiot)
* Remove double parentheses around tuples in a match (ocaml-ppx/ocamlformat#2308, @Julow)
* Remove extra parentheses around module packs (ocaml-ppx/ocamlformat#2305, @Julow, @gpetiot)
- Fix indentation of trailing double-semicolons (ocaml-ppx/ocamlformat#2295, @gpetiot)
- Fix formatting of comments in "disable" chunks (ocaml-ppx/ocamlformat#2279, @gpetiot)
- Fix non-stabilizing comments attached to private/virtual/mutable keywords (ocaml-ppx/ocamlformat#2272, ocaml-ppx/ocamlformat#2307, @gpetiot, @Julow)

### Changes

- Improve formatting of doc-comments (ocaml-ppx/ocamlformat#2338, ocaml-ppx/ocamlformat#2349, ocaml-ppx/ocamlformat#2376, ocaml-ppx/ocamlformat#2377, ocaml-ppx/ocamlformat#2379, ocaml-ppx/ocamlformat#2378, @Julow)
  Remove unnecessary escaping and preserve empty lines.
* Indent `as`-patterns that have parentheses (ocaml-ppx/ocamlformat#2359, @Julow)
- Don't print warnings related to odoc code-blocks when '--quiet' is set (ocaml-ppx/ocamlformat#2336, ocaml-ppx/ocamlformat#2373, @gpetiot, @Julow)
* Improve formatting of module arguments (ocaml-ppx/ocamlformat#2322, @Julow)
* Don't indent attributes after a let/val/external (ocaml-ppx/ocamlformat#2317, @Julow)
- Consistent indentation of `@@ let+ x = ...` (ocaml-ppx/ocamlformat#2315, ocaml-ppx/ocamlformat#2396, @Julow)
  It was formatted differently than `@@ let x = ...`.
* Improve formatting of class expressions and signatures (ocaml-ppx/ocamlformat#2301, ocaml-ppx/ocamlformat#2328, ocaml-ppx/ocamlformat#2387, @gpetiot, @Julow)
* Consistent indentation of `fun (type a) ->` following `fun x ->` (ocaml-ppx/ocamlformat#2294, @Julow)
* Restore short-form formatting of record field aliases (ocaml-ppx/ocamlformat#2282, ocaml-ppx/ocamlformat#2388, @gpetiot, @Julow)
* Restore short-form for first-class modules: `((module M) : (module S))` is formatted as `(module M : S)`) (ocaml-ppx/ocamlformat#2280, ocaml-ppx/ocamlformat#2300, @gpetiot, @Julow)
* Improve indentation of `~label:(fun ...` (ocaml-ppx/ocamlformat#2271, ocaml-ppx/ocamlformat#2291, ocaml-ppx/ocamlformat#2293, ocaml-ppx/ocamlformat#2298, ocaml-ppx/ocamlformat#2398, @Julow)
  The `fun` keyword is docked where possible and the arguments are indented to avoid confusion with the body.
- JaneStreet profile: treat comments as doc-comments (ocaml-ppx/ocamlformat#2261, ocaml-ppx/ocamlformat#2344, ocaml-ppx/ocamlformat#2354, ocaml-ppx/ocamlformat#2365, ocaml-ppx/ocamlformat#2392, @gpetiot, @Julow)
- Tweaks the JaneStreet profile to be more consistent with ocp-indent (ocaml-ppx/ocamlformat#2214, ocaml-ppx/ocamlformat#2281, ocaml-ppx/ocamlformat#2284, ocaml-ppx/ocamlformat#2289, ocaml-ppx/ocamlformat#2299, ocaml-ppx/ocamlformat#2302, ocaml-ppx/ocamlformat#2309, ocaml-ppx/ocamlformat#2310, ocaml-ppx/ocamlformat#2311, ocaml-ppx/ocamlformat#2313, ocaml-ppx/ocamlformat#2316, ocaml-ppx/ocamlformat#2362, ocaml-ppx/ocamlformat#2363, @gpetiot, @Julow)

### New features

- Handle short syntax for generative functor types (ocaml-ppx/ocamlformat#2348, @gpetiot)
- Improved error reporting for unstable or dropped comments (ocaml-ppx/ocamlformat#2292, @gpetiot)
Julow added a commit to Julow/opam-repository that referenced this pull request Jul 18, 2023
…camlformat-bench (0.26.0)

CHANGES:

### Removed

- Remove `--numeric` feature (ocaml-ppx/ocamlformat#2333, ocaml-ppx/ocamlformat#2357, @gpetiot)

### Deprecated

### Bug fixes

- Fix crash caused by `let f (type a) :> a M.u = ..` (ocaml-ppx/ocamlformat#2399, @Julow)
- Fix crash caused by `module T = (val (x : (module S)))` (ocaml-ppx/ocamlformat#2370, @Julow)
- Fix invalid formatting of `then begin end` (ocaml-ppx/ocamlformat#2369, @Julow)
- Protect match after `fun _ : _ ->` (ocaml-ppx/ocamlformat#2352, @Julow)
- Fix invalid formatting of `(::)` (ocaml-ppx/ocamlformat#2347, @Julow)
- Fix indentation of module-expr extensions (ocaml-ppx/ocamlformat#2323, @gpetiot)
* Remove double parentheses around tuples in a match (ocaml-ppx/ocamlformat#2308, @Julow)
* Remove extra parentheses around module packs (ocaml-ppx/ocamlformat#2305, @Julow, @gpetiot)
- Fix indentation of trailing double-semicolons (ocaml-ppx/ocamlformat#2295, @gpetiot)
- Fix formatting of comments in "disable" chunks (ocaml-ppx/ocamlformat#2279, @gpetiot)
- Fix non-stabilizing comments attached to private/virtual/mutable keywords (ocaml-ppx/ocamlformat#2272, ocaml-ppx/ocamlformat#2307, @gpetiot, @Julow)

### Changes

- Improve formatting of doc-comments (ocaml-ppx/ocamlformat#2338, ocaml-ppx/ocamlformat#2349, ocaml-ppx/ocamlformat#2376, ocaml-ppx/ocamlformat#2377, ocaml-ppx/ocamlformat#2379, ocaml-ppx/ocamlformat#2378, @Julow)
  Remove unnecessary escaping and preserve empty lines.
* Indent `as`-patterns that have parentheses (ocaml-ppx/ocamlformat#2359, @Julow)
- Don't print warnings related to odoc code-blocks when '--quiet' is set (ocaml-ppx/ocamlformat#2336, ocaml-ppx/ocamlformat#2373, @gpetiot, @Julow)
* Improve formatting of module arguments (ocaml-ppx/ocamlformat#2322, @Julow)
* Don't indent attributes after a let/val/external (ocaml-ppx/ocamlformat#2317, @Julow)
- Consistent indentation of `@@ let+ x = ...` (ocaml-ppx/ocamlformat#2315, ocaml-ppx/ocamlformat#2396, @Julow)
  It was formatted differently than `@@ let x = ...`.
* Improve formatting of class expressions and signatures (ocaml-ppx/ocamlformat#2301, ocaml-ppx/ocamlformat#2328, ocaml-ppx/ocamlformat#2387, @gpetiot, @Julow)
* Consistent indentation of `fun (type a) ->` following `fun x ->` (ocaml-ppx/ocamlformat#2294, @Julow)
* Restore short-form formatting of record field aliases (ocaml-ppx/ocamlformat#2282, ocaml-ppx/ocamlformat#2388, @gpetiot, @Julow)
* Restore short-form for first-class modules: `((module M) : (module S))` is formatted as `(module M : S)`) (ocaml-ppx/ocamlformat#2280, ocaml-ppx/ocamlformat#2300, @gpetiot, @Julow)
* Improve indentation of `~label:(fun ...` (ocaml-ppx/ocamlformat#2271, ocaml-ppx/ocamlformat#2291, ocaml-ppx/ocamlformat#2293, ocaml-ppx/ocamlformat#2298, ocaml-ppx/ocamlformat#2398, @Julow)
  The `fun` keyword is docked where possible and the arguments are indented to avoid confusion with the body.
- JaneStreet profile: treat comments as doc-comments (ocaml-ppx/ocamlformat#2261, ocaml-ppx/ocamlformat#2344, ocaml-ppx/ocamlformat#2354, ocaml-ppx/ocamlformat#2365, ocaml-ppx/ocamlformat#2392, @gpetiot, @Julow)
- Tweaks the JaneStreet profile to be more consistent with ocp-indent (ocaml-ppx/ocamlformat#2214, ocaml-ppx/ocamlformat#2281, ocaml-ppx/ocamlformat#2284, ocaml-ppx/ocamlformat#2289, ocaml-ppx/ocamlformat#2299, ocaml-ppx/ocamlformat#2302, ocaml-ppx/ocamlformat#2309, ocaml-ppx/ocamlformat#2310, ocaml-ppx/ocamlformat#2311, ocaml-ppx/ocamlformat#2313, ocaml-ppx/ocamlformat#2316, ocaml-ppx/ocamlformat#2362, ocaml-ppx/ocamlformat#2363, @gpetiot, @Julow)

### New features

- Handle short syntax for generative functor types (ocaml-ppx/ocamlformat#2348, @gpetiot)
- Improved error reporting for unstable or dropped comments (ocaml-ppx/ocamlformat#2292, @gpetiot)
Julow added a commit to Julow/opam-repository that referenced this pull request Jul 18, 2023
CHANGES:

### Removed

- Remove `--numeric` feature (ocaml-ppx/ocamlformat#2333, ocaml-ppx/ocamlformat#2357, @gpetiot)

### Deprecated

### Bug fixes

- Fix crash caused by `let f (type a) :> a M.u = ..` (ocaml-ppx/ocamlformat#2399, @Julow)
- Fix crash caused by `module T = (val (x : (module S)))` (ocaml-ppx/ocamlformat#2370, @Julow)
- Fix invalid formatting of `then begin end` (ocaml-ppx/ocamlformat#2369, @Julow)
- Protect match after `fun _ : _ ->` (ocaml-ppx/ocamlformat#2352, @Julow)
- Fix invalid formatting of `(::)` (ocaml-ppx/ocamlformat#2347, @Julow)
- Fix indentation of module-expr extensions (ocaml-ppx/ocamlformat#2323, @gpetiot)
* Remove double parentheses around tuples in a match (ocaml-ppx/ocamlformat#2308, @Julow)
* Remove extra parentheses around module packs (ocaml-ppx/ocamlformat#2305, @Julow, @gpetiot)
- Fix indentation of trailing double-semicolons (ocaml-ppx/ocamlformat#2295, @gpetiot)
- Fix formatting of comments in "disable" chunks (ocaml-ppx/ocamlformat#2279, @gpetiot)
- Fix non-stabilizing comments attached to private/virtual/mutable keywords (ocaml-ppx/ocamlformat#2272, ocaml-ppx/ocamlformat#2307, @gpetiot, @Julow)

### Changes

- Improve formatting of doc-comments (ocaml-ppx/ocamlformat#2338, ocaml-ppx/ocamlformat#2349, ocaml-ppx/ocamlformat#2376, ocaml-ppx/ocamlformat#2377, ocaml-ppx/ocamlformat#2379, ocaml-ppx/ocamlformat#2378, @Julow)
  Remove unnecessary escaping and preserve empty lines.
* Indent `as`-patterns that have parentheses (ocaml-ppx/ocamlformat#2359, @Julow)
- Don't print warnings related to odoc code-blocks when '--quiet' is set (ocaml-ppx/ocamlformat#2336, ocaml-ppx/ocamlformat#2373, @gpetiot, @Julow)
* Improve formatting of module arguments (ocaml-ppx/ocamlformat#2322, @Julow)
* Don't indent attributes after a let/val/external (ocaml-ppx/ocamlformat#2317, @Julow)
- Consistent indentation of `@@ let+ x = ...` (ocaml-ppx/ocamlformat#2315, ocaml-ppx/ocamlformat#2396, @Julow)
  It was formatted differently than `@@ let x = ...`.
* Improve formatting of class expressions and signatures (ocaml-ppx/ocamlformat#2301, ocaml-ppx/ocamlformat#2328, ocaml-ppx/ocamlformat#2387, @gpetiot, @Julow)
* Consistent indentation of `fun (type a) ->` following `fun x ->` (ocaml-ppx/ocamlformat#2294, @Julow)
* Restore short-form formatting of record field aliases (ocaml-ppx/ocamlformat#2282, ocaml-ppx/ocamlformat#2388, @gpetiot, @Julow)
* Restore short-form for first-class modules: `((module M) : (module S))` is formatted as `(module M : S)`) (ocaml-ppx/ocamlformat#2280, ocaml-ppx/ocamlformat#2300, @gpetiot, @Julow)
* Improve indentation of `~label:(fun ...` (ocaml-ppx/ocamlformat#2271, ocaml-ppx/ocamlformat#2291, ocaml-ppx/ocamlformat#2293, ocaml-ppx/ocamlformat#2298, ocaml-ppx/ocamlformat#2398, @Julow)
  The `fun` keyword is docked where possible and the arguments are indented to avoid confusion with the body.
- JaneStreet profile: treat comments as doc-comments (ocaml-ppx/ocamlformat#2261, ocaml-ppx/ocamlformat#2344, ocaml-ppx/ocamlformat#2354, ocaml-ppx/ocamlformat#2365, ocaml-ppx/ocamlformat#2392, @gpetiot, @Julow)
- Tweaks the JaneStreet profile to be more consistent with ocp-indent (ocaml-ppx/ocamlformat#2214, ocaml-ppx/ocamlformat#2281, ocaml-ppx/ocamlformat#2284, ocaml-ppx/ocamlformat#2289, ocaml-ppx/ocamlformat#2299, ocaml-ppx/ocamlformat#2302, ocaml-ppx/ocamlformat#2309, ocaml-ppx/ocamlformat#2310, ocaml-ppx/ocamlformat#2311, ocaml-ppx/ocamlformat#2313, ocaml-ppx/ocamlformat#2316, ocaml-ppx/ocamlformat#2362, ocaml-ppx/ocamlformat#2363, @gpetiot, @Julow)

### New features

- Handle short syntax for generative functor types (ocaml-ppx/ocamlformat#2348, @gpetiot)
- Improved error reporting for unstable or dropped comments (ocaml-ppx/ocamlformat#2292, @gpetiot)
Julow added a commit to Julow/opam-repository that referenced this pull request Jul 19, 2023
CHANGES:

### Removed

- Remove `--numeric` feature (ocaml-ppx/ocamlformat#2333, ocaml-ppx/ocamlformat#2357, @gpetiot)

### Deprecated

### Bug fixes

- Fix crash caused by `let f (type a) :> a M.u = ..` (ocaml-ppx/ocamlformat#2399, @Julow)
- Fix crash caused by `module T = (val (x : (module S)))` (ocaml-ppx/ocamlformat#2370, @Julow)
- Fix invalid formatting of `then begin end` (ocaml-ppx/ocamlformat#2369, @Julow)
- Protect match after `fun _ : _ ->` (ocaml-ppx/ocamlformat#2352, @Julow)
- Fix invalid formatting of `(::)` (ocaml-ppx/ocamlformat#2347, @Julow)
- Fix indentation of module-expr extensions (ocaml-ppx/ocamlformat#2323, @gpetiot)
* Remove double parentheses around tuples in a match (ocaml-ppx/ocamlformat#2308, @Julow)
* Remove extra parentheses around module packs (ocaml-ppx/ocamlformat#2305, @Julow, @gpetiot)
- Fix indentation of trailing double-semicolons (ocaml-ppx/ocamlformat#2295, @gpetiot)
- Fix formatting of comments in "disable" chunks (ocaml-ppx/ocamlformat#2279, @gpetiot)
- Fix non-stabilizing comments attached to private/virtual/mutable keywords (ocaml-ppx/ocamlformat#2272, ocaml-ppx/ocamlformat#2307, @gpetiot, @Julow)

### Changes

- Improve formatting of doc-comments (ocaml-ppx/ocamlformat#2338, ocaml-ppx/ocamlformat#2349, ocaml-ppx/ocamlformat#2376, ocaml-ppx/ocamlformat#2377, ocaml-ppx/ocamlformat#2379, ocaml-ppx/ocamlformat#2378, @Julow)
  Remove unnecessary escaping and preserve empty lines.
* Indent `as`-patterns that have parentheses (ocaml-ppx/ocamlformat#2359, @Julow)
- Don't print warnings related to odoc code-blocks when '--quiet' is set (ocaml-ppx/ocamlformat#2336, ocaml-ppx/ocamlformat#2373, @gpetiot, @Julow)
* Improve formatting of module arguments (ocaml-ppx/ocamlformat#2322, @Julow)
* Don't indent attributes after a let/val/external (ocaml-ppx/ocamlformat#2317, @Julow)
- Consistent indentation of `@@ let+ x = ...` (ocaml-ppx/ocamlformat#2315, ocaml-ppx/ocamlformat#2396, @Julow)
  It was formatted differently than `@@ let x = ...`.
* Improve formatting of class expressions and signatures (ocaml-ppx/ocamlformat#2301, ocaml-ppx/ocamlformat#2328, ocaml-ppx/ocamlformat#2387, @gpetiot, @Julow)
* Consistent indentation of `fun (type a) ->` following `fun x ->` (ocaml-ppx/ocamlformat#2294, @Julow)
* Restore short-form formatting of record field aliases (ocaml-ppx/ocamlformat#2282, ocaml-ppx/ocamlformat#2388, @gpetiot, @Julow)
* Restore short-form for first-class modules: `((module M) : (module S))` is formatted as `(module M : S)`) (ocaml-ppx/ocamlformat#2280, ocaml-ppx/ocamlformat#2300, @gpetiot, @Julow)
* Improve indentation of `~label:(fun ...` (ocaml-ppx/ocamlformat#2271, ocaml-ppx/ocamlformat#2291, ocaml-ppx/ocamlformat#2293, ocaml-ppx/ocamlformat#2298, ocaml-ppx/ocamlformat#2398, @Julow)
  The `fun` keyword is docked where possible and the arguments are indented to avoid confusion with the body.
- JaneStreet profile: treat comments as doc-comments (ocaml-ppx/ocamlformat#2261, ocaml-ppx/ocamlformat#2344, ocaml-ppx/ocamlformat#2354, ocaml-ppx/ocamlformat#2365, ocaml-ppx/ocamlformat#2392, @gpetiot, @Julow)
- Tweaks the JaneStreet profile to be more consistent with ocp-indent (ocaml-ppx/ocamlformat#2214, ocaml-ppx/ocamlformat#2281, ocaml-ppx/ocamlformat#2284, ocaml-ppx/ocamlformat#2289, ocaml-ppx/ocamlformat#2299, ocaml-ppx/ocamlformat#2302, ocaml-ppx/ocamlformat#2309, ocaml-ppx/ocamlformat#2310, ocaml-ppx/ocamlformat#2311, ocaml-ppx/ocamlformat#2313, ocaml-ppx/ocamlformat#2316, ocaml-ppx/ocamlformat#2362, ocaml-ppx/ocamlformat#2363, @gpetiot, @Julow)

### New features

- Handle short syntax for generative functor types (ocaml-ppx/ocamlformat#2348, @gpetiot)
- Improved error reporting for unstable or dropped comments (ocaml-ppx/ocamlformat#2292, @gpetiot)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant