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

min_length maybe not being respected? #54

Closed
elpete opened this issue Jan 31, 2020 · 3 comments
Closed

min_length maybe not being respected? #54

elpete opened this issue Jan 31, 2020 · 3 comments

Comments

@elpete
Copy link
Contributor

elpete commented Jan 31, 2020

I think something is off with the min_length determination.

component {

    public any function update( struct attributes = {}, boolean ignoreNonExistentAttributes = false, sssssssssss = "s" ) {
        writeDump( var = "Hello!" );
    }

}

This component does not split the arguments on to new lines no matter what I choose for any of min_length settings. However, add one more character to the argument list up there and it will split.

@elpete
Copy link
Contributor Author

elpete commented Jan 31, 2020

Additionally, it would be nice if splitting the arguments also took the max_columns into account.

@jcberquist
Copy link
Owner

min_length is a confusing setting. Basically I added it because by default if you have more than 3 elements in a struct/array/function parameters/function call arguments they will get printed on multiple lines. Every now and again you might get in a situation where you have something like:

a = [1,2,3,4,5,6,7,8];

I wanted a way to keep that on one line as splitting it over 8 lines seemed a bit ridiculous to me. So I added the min_length setting to say that if you can print all the elements inline in 40 columns or less (inner size of an inline print), then keep them together, no matter how many there are. So this setting would not apply to your example above, as

struct attributes = {}, boolean ignoreNonExistentAttributes = false, sssssssssss = "s"

is well over 40 columns, and is only three elements anyways. The only thing that ought to make it split out, is when the max_columns setting is exceeded. In this case, it would not be an "inner" size, but rather the measure from the start of the line to the end of the function parameters. Now this is ideally the case; as we have touched on in Slack, I think some of the column measurements are probably off, or not respected in all cases. It is something I need to dig into.

That said, the max_columns setting is functioning in your example above, as you say:

add one more character to the argument list up there and it will split.

that would be due to the max_columns setting - possibly inaccurately applied 😄 , though it looks to me like the last character of the function parameters (a space) is right at 120 columns, so I think it is correct there.

@elpete
Copy link
Contributor Author

elpete commented Jan 31, 2020

That makes a lot more sense. Thanks for explaining.

Also, I feel really foolish. I had my editor ruler at 80 and just expected cfformat to match. Once I configured it correctly it works as expected. Thanks!

@elpete elpete closed this as completed Jan 31, 2020
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

No branches or pull requests

2 participants