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

Line limit to 120 #78

Open
mattBrzezinski opened this issue Nov 9, 2020 · 10 comments · May be fixed by #104
Open

Line limit to 120 #78

mattBrzezinski opened this issue Nov 9, 2020 · 10 comments · May be fixed by #104
Labels
question Further information is requested

Comments

@mattBrzezinski
Copy link
Member

I'm finding the 92 line limit very restrictive and forcing breaks more often than not. Between giving a function a meaningful parameter name and typing it you're more often than not breaking this line with a couple parameters.

I'd propose increasing this line length to 120, it allows you to reasonably read two files side-by-side in an editor. I think this is goes a bit hand in hand with #76 and I think makes things easier to read.

Some Linus thoughts from a fixed 80 character limit.

@iamed2
Copy link
Collaborator

iamed2 commented Nov 11, 2020

I can only hit 112, not 120.

I think 100 would be best.

@mattBrzezinski
Copy link
Member Author

I'll take anything, do others have thoughts?

@fchorney
Copy link
Contributor

I think 120 is a little bit much. So I'd compromise to 100

@nickrobinson251
Copy link
Contributor

nickrobinson251 commented Nov 12, 2020

i'd be a little bit interested in knowing what effect this has in terms of reducing line breaks.
JuliaFormatter has a BlueStyle and let's you configure line length (via the margin keyword e.g. format("path/to/src/", BlueStyle(); margin=N), so we could see across a bunch of different packages how changing N changes the total number of line breaks?

@nickrobinson251 nickrobinson251 added the question Further information is requested label Nov 18, 2020
@zsz00
Copy link

zsz00 commented Oct 14, 2021

I'd propose increasing this line length to 120 !!

@omus
Copy link
Contributor

omus commented Feb 17, 2022

If I recall correctly the original reason 92 was chosen was because it is the line length limit specified by the Julia contribution guide.

@mattBrzezinski
Copy link
Member Author

If I recall correctly the original reason 92 was chosen was because it is the line length limit specified by the Julia contribution guide.

The commit for this was made 7 years ago, maybe it's time to revisit? 😄

@mattBrzezinski
Copy link
Member Author

i'd be a little bit interested in knowing what effect this has in terms of reducing line breaks. JuliaFormatter has a BlueStyle and let's you configure line length (via the margin keyword e.g. format("path/to/src/", BlueStyle(); margin=N), so we could see across a bunch of different packages how changing N changes the total number of line breaks?

Just got brought up in the office again. I went through all the packages below and ran format(".", BlueStyle()) did a git add ., then re-ran format(".", BlueStyle(); margin=100) (only 100 since it seemed more agreed upon from previous discussions). These are the results of the following git diff --shortstat:

@mattBrzezinski mattBrzezinski linked a pull request May 18, 2022 that will close this issue
@Wynand
Copy link

Wynand commented May 18, 2022

I'm not a linguist or typographer, but 92 characters seems fine with a few assumptions by taking
(things on the line) * (max length of each thing) + (connectors between things) as an equation for line length

If you assume most people can keep 5-9 things in mind at a time, that indentation is some of those things, and if you really stretch it an assume that the length limit for remembering a word is between 5 and 9, then the upper limit on that is actually (9*9 + 8) = 89

I think 89 is short, especially considering that the 7 +- 2 rule is outdated (though 4 +- 1 is apparently more accurate) (https://en.wikipedia.org/wiki/Short-term_memory#Capacity), but it suggests that 92 characters is long enough

@iamed2
Copy link
Collaborator

iamed2 commented May 19, 2022

@Wynand one of the most common things, AbstractArray, is of length 13. As you have more functions in your codebase, the length of the things are probably going to increase. If you look at the top-level symbols in Base, the average size is greater than 11:

julia> mean(length∘String, names(Base; all=true, imported=true))
11.476996687523004

(a better measurement could be done with a parser rather than just looking at the top level)

@mattBrzezinski can you show those diffs? it might be interesting as a sample of lines that are impacted by the current line length limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants