palantir-java-format icon indicating copy to clipboard operation
palantir-java-format copied to clipboard

[PJF] Do not reflow text blocks

Open mitchjust opened this issue 9 months ago β€’ 3 comments

Adds upstream fix https://github.com/google/google-java-format/commit/295e7a43f8a84d31c9e39fd853c8c4e52f586240

Before this PR

Formatting a textblock which

  • exceeds the max line length
  • has no trailing newline (ie. """ is at the end of the line)

Causes the formatter to fail:

error: Something has gone terribly wrong. Please file a bug: https://github.com/palantir/palantir-java-format/issues/new

=== Actual: ===
package com.test;

public class MyTest {
    private String myString = "A very long string which just so happens to exceed the max line length and doesn't\"\n    + \" have a trailing newline";
}
=== Expected: ===
package com.test;

public class MyTest {
    private String myString = "A very long string which just so happens to exceed the max line length and doesn't have a trailing newline";
}

After this PR

Formatter doesn't fail, Fixes https://github.com/palantir/palantir-java-format/issues/1205

==COMMIT_MSG== ==COMMIT_MSG==

Possible downsides?

mitchjust avatar Apr 24 '25 01:04 mitchjust

Thanks for your interest in palantir/palantir-java-format, @mitchjust! Before we can accept your pull request, you need to sign our contributor license agreement - just visit https://cla.palantir.com/ and follow the instructions. Once you sign, I'll automatically update this pull request.

palantirtech avatar Apr 24 '25 01:04 palantirtech

Generate changelog in changelog/@unreleased

What do the change types mean?
  • feature: A new feature of the service.
  • improvement: An incremental improvement in the functionality or operation of the service.
  • fix: Remedies the incorrect behaviour of a component of the service in a backwards-compatible way.
  • break: Has the potential to break consumers of this service's API, inclusive of both Palantir services and external consumers of the service's API (e.g. customer-written software or integrations).
  • deprecation: Advertises the intention to remove service functionality without any change to the operation of the service itself.
  • manualTask: Requires the possibility of manual intervention (running a script, eyeballing configuration, performing database surgery, ...) at the time of upgrade for it to succeed.
  • migration: A fully automatic upgrade migration task with no engineer input required.

Note: only one type should be chosen.

How are new versions calculated?
  • ❗The break and manual task changelog types will result in a major release!
  • πŸ› The fix changelog type will result in a minor release in most cases, and a patch release version for patch branches. This behaviour is configurable in autorelease.
  • ✨ All others will result in a minor version release.

Type

  • [ ] Feature
  • [ ] Improvement
  • [ ] Fix
  • [ ] Break
  • [ ] Deprecation
  • [ ] Manual task
  • [ ] Migration

Description [PJF] Do not reflow text blocks

Check the box to generate changelog(s)

  • [ ] Generate changelog entry

changelog-app[bot] avatar Apr 24 '25 01:04 changelog-app[bot]

@crogoz sorry for the direct ping, could I get a review on this when you get a chance? πŸ™

mitchjust avatar May 19 '25 02:05 mitchjust

thanks for the PR @mitchjust! In the meantime we worked on properly dealing with text blocks in the formatter (including not reflowing text blocks). The work was merged in the latest version https://github.com/palantir/palantir-java-format/pull/1419, so I'll close this PR. Please open a new issue if there is still something missing. Thanks!

crogoz avatar Oct 14 '25 15:10 crogoz