You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Brett Ryan (Jira)" <ji...@apache.org> on 2021/12/12 03:40:00 UTC
[jira] [Updated] (NETBEANS-6275) Add formatting options for record classes
[ https://issues.apache.org/jira/browse/NETBEANS-6275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brett Ryan updated NETBEANS-6275:
---------------------------------
Description:
When auto-formatting record classes there are a few behavioural elements that make it inconsistent or hard to control.
The compact constructor always adds multiple spaces between the name and the constructors opening brace. This is somehow related to how long the records parameters are.
{code:java}
record Widget(String name, int width, int length) {
// note the additional spaces between t and {
Widget {
}
}
{code}
There is no easy way to create records with less lines, such as a standard record which has no constructors or additional logic. One may wish to create the record with an empt body like the following:
{code:java}
record Widget(String name, int width, int length) {}
{code}
However, the formatter will always put an empty line between the braces. This is expected due to it using the class level parameters for 1 space after class header and 1 before closing brace, which is perfect for classes but makes most records a little horizontally larger which is most evident for records declared in classes.
It's not possible to put the opening record brace on a new line, as in the following:
{code:java}
record Widget(
String name,
int width,
int length
) {
Widget {
requireNonNull(name);
}
}
{code}
was:
When auto-formatting record classes there are a few behavioural elements that make it inconsistent or hard to control.
The compact constructor always adds multiple spaces between the name and the constructors opening brace. This is somehow related to how long the records parameters are.
{code:java}
record Widget(String name, int width, int length) {
// note the additional spaces between t and {
Widget {
}
}
{code}
There is no easy way to create records with less lines, such as a standard record which has no constructors or additional logic. One may wish to create the record with an empt body like the following:
{code:java}
record Widget(String name, int width, int length) {}
{code}
However, the formatter will always put an empty line between the braces. This is expected due to it using the class level parameters for 1 space after class header and 1 before closing brace, which is perfect for classes but makes most records a little horizontally larger which is most evident for records declared in classes.
It's not possible to put the opening record brace on a new line, as in the following:
{code:java}
record Widget(
String name,
int width,
int length
) {
Widget {
requireNonNull(name);
}
}
> Add formatting options for record classes
> -----------------------------------------
>
> Key: NETBEANS-6275
> URL: https://issues.apache.org/jira/browse/NETBEANS-6275
> Project: NetBeans
> Issue Type: Improvement
> Components: editor - Formatting & Indentation
> Affects Versions: 12.5, 12.6
> Environment: *Product Version:* Apache NetBeans IDE 12.6
> *Java:* 17.0.1; Java HotSpot(TM) 64-Bit Server VM 17.0.1+12-LTS-39
> *Runtime:* Java(TM) SE Runtime Environment 17.0.1+12-LTS-39
> *System:* Mac OS X version 11.6.1 running on x86_64; UTF-8; en_AU (nb)
> *User directory:* /Users/brettryan/Library/Application Support/NetBeans/12.6
> *Cache directory:* /Users/brettryan/Library/Caches/NetBeans/12.6
> Reporter: Brett Ryan
> Priority: Minor
>
> When auto-formatting record classes there are a few behavioural elements that make it inconsistent or hard to control.
> The compact constructor always adds multiple spaces between the name and the constructors opening brace. This is somehow related to how long the records parameters are.
> {code:java}
> record Widget(String name, int width, int length) {
> // note the additional spaces between t and {
> Widget {
> }
> }
> {code}
> There is no easy way to create records with less lines, such as a standard record which has no constructors or additional logic. One may wish to create the record with an empt body like the following:
> {code:java}
> record Widget(String name, int width, int length) {}
> {code}
> However, the formatter will always put an empty line between the braces. This is expected due to it using the class level parameters for 1 space after class header and 1 before closing brace, which is perfect for classes but makes most records a little horizontally larger which is most evident for records declared in classes.
> It's not possible to put the opening record brace on a new line, as in the following:
> {code:java}
> record Widget(
> String name,
> int width,
> int length
> ) {
> Widget {
> requireNonNull(name);
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists