about summary refs log tree commit diff
path: root/src/doc/style-guide
AgeCommit message (Collapse)AuthorLines
2023-07-21Use roman 4 letter instead of wordIvan Tham-2/+2
Long text without numeric numbers when numeric numbers are used are hard to read.
2023-07-21Add missing code fencecherryblossom000-0/+2
2023-07-20Clarify wording on breaking arrays across linesJosh Triplett-1/+1
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2023-07-20style-guide: Fix example to match the rule it exemplifies (and match rustfmt)Josh Triplett-1/+2
An example immediately following "Put each bound on its own line." did not put each bound on its own line.
2023-07-20style-guide: Fix typo: s/right-hand side/left-hand side/Josh Triplett-1/+1
2023-07-20style-guide: Add an additional chaining exampleJosh Triplett-1/+4
Make it clear the rule for stacking the second line on the first applies recursively, as long as the condition holds.
2023-07-20style-guide: Avoid using "should" or "may" for required parts of the default ↵Josh Triplett-220/+252
style The style guide inconsistently used language like "there should be a space" or "it should be on its own line", or "may be written on a single line", for things that are required components of the default Rust style. "should" and especially "may" come across as optional. While the style guide overall now has a statement at the top that the default style itself is a *recommendation*, the *definition* of the default style should not be ambiguous about what's part of the default style. Rewrite language in the style guide to only use "should" and "may" and similar for truly optional components of the style (e.g. things a tool cannot or should not enforce in its default configuration). In their place, either use "must", or rewrite in imperative style ("put a space", "start it on the same line"). The latter also substantially reduces the use of passive voice. This is a purely editorial change, and does not affect the semantic definition of the Rust style.
2023-07-20style-guide: Simplify the structure of a recommendation (no semantic change)Josh Triplett-3/+1
Avoid putting a sentence fragment after a list; integrate it with the sentence before the list.
2023-07-20style-guide: Fix an example to match the styleJosh Triplett-1/+1
The style guide requires a trailing comma on where clause components, but then gives an example that doesn't include one. Add the missing trailing comma.
2023-07-20style-guide: Fix typo: s/forth/fourth/gJosh Triplett-2/+2
2023-07-20style-guide: Remove material about tool configurabilityJosh Triplett-46/+2
The style guide discusses the default Rust style. Configurability of Rust formatting tools are not the domain of the style guide.
2023-07-13Correct `the` -> `there` typo in items.mdAlyssa Haroldsen-1/+1
2023-07-11Rollup merge of #113385 - joshtriplett:style-guide-cleanup-chains, ↵Jubilee-4/+3
r=calebcartwright style-guide: Fix chain example to match rustfmt behavior The style guide gave an example of breaking a multi-line chain element and all subsequent elements to a new line, but that same example and the accompanying text also had several chain items stacked on the first line. rustfmt doesn't do this, except when the rule saying to combine ``` shrt .y() ``` into ``` shrt.y() ``` applies. This is a bugfix to match rustfmt behavior, so it's not a breaking change, and it just needs a ``@rust-lang/style`` reviewer to r+.
2023-07-11Rollup merge of #113386 - joshtriplett:style-guide-combinable-expressions, ↵Matthias Krüger-0/+10
r=compiler-errors style-guide: Expand example of combinable expressions to include arrays Arrays are allowed as combinable expressions, but none of the examples show that.
2023-07-06Rollup merge of #113384 - joshtriplett:style-guide-grammar, r=compiler-errorsfee1-dead-11/+12
style-guide: Clarify grammar for small patterns (not a semantic change) The grammar as written feels ambiguous and confusing, in large part because it uses square brackets and commas in the names of non-terminals. Rewrite it to avoid symbols in the names of non-terminals, and to instead wrap terminals in backquotes. Also rename "smallntp" to "small_no_tuple" to make it self-describing.
2023-07-06Rollup merge of #113145 - ↵fee1-dead-2/+3
joshtriplett:style-guide-document-assignment-newlines, r=joshtriplett style-guide: Document newline rules for assignment operators The style guide gives general rules for binary operators including assignment, and one of those rules says to put the operator on the subsequent line; the style guide needs to explicitly state the exception of breaking *after* assignment operators rather than before. This is already what rustfmt does and what users do; this fixes the style guide to match the expected default style.
2023-07-05style-guide: Expand example of combinable expressions to include arraysJosh Triplett-0/+10
Arrays are allowed as combinable expressions, but none of the examples show that.
2023-07-05style-guide: Fix chain example to match rustfmt behaviorJosh Triplett-4/+3
The style guide gave an example of breaking a multi-line chain element and all subsequent elements to a new line, but that same example and the accompanying text also had several chain items stacked on the first line. rustfmt doesn't do this, except when the rule saying to combine ``` shrt .y() ``` into ``` shrt.y() ``` applies.
2023-07-05style-guide: Rename "smallntp" non-terminal to "small_no_tuple" for clarityJosh Triplett-4/+4
The meaning of "smallntp" was not immediately obvious at a glance. Rename it to the self-describing "small_no_tuple"
2023-07-05style-guide: Clarify grammar for small patterns (not a semantic change)Josh Triplett-11/+12
The grammar as written feels ambiguous and confusing, in large part because it uses square brackets and commas in the names of non-terminals. Rewrite it to avoid symbols in the names of non-terminals, and to instead wrap terminals in backquotes.
2023-07-05style-guide: Add chapter for nightly formattingJosh Triplett-3/+5
Co-authored-by: Michael Goulet <michael@errs.io>
2023-07-05Clarify that style guide does not cover nightly-only featuresMichael Goulet-0/+4
2023-07-05style-guide: Add section on bugs, and resolving bugsJosh Triplett-0/+13
2023-06-29Rollup merge of #113143 - ↵Matthias Krüger-1/+2
joshtriplett:style-guide-narrow-dereference-guidance, r=calebcartwright style-guide: Narrow guidance about references and dereferencing The style guide advises "prefer dereferencing to taking references", but doesn't give guidance on when that "preference" should get overridden by other considerations. Give an example of when it's fine to ignore that advice.
2023-06-29Rollup merge of #113140 - ↵Matthias Krüger-0/+5
joshtriplett:style-guide-example-multi-line-attribute, r=calebcartwright style-guide: Add an example of formatting a multi-line attribute We already say to format attributes like functions, but we didn't have an example of formatting a multi-line attribute.
2023-06-28style-guide: Document newline rules for assignment operatorsJosh Triplett-2/+3
The style guide gives general rules for binary operators including assignment, and one of those rules says to put the operator on the subsequent line; the style guide needs to explicitly state the exception of breaking *after* assignment operators rather than before. This is already what rustfmt does and what users do; this fixes the style guide to match the expected default style.
2023-06-28style-guide: Narrow guidance about references and dereferencingJosh Triplett-1/+2
The style guide advises "prefer dereferencing to taking references", but doesn't give guidance on when that "preference" should get overridden by other considerations. Give an example of when it's fine to ignore that advice.
2023-06-28style-guide: Add an example of formatting a multi-line attributeJosh Triplett-0/+5
We already say to format attributes like functions, but we didn't have an example of formatting a multi-line attribute.
2023-06-28syle-guide: Clarify let-else furtherJosh Triplett-2/+24
Give some additional examples with multi-line patterns. Make it clearer to go on to the next case if the conditions aren't met.
2023-06-24Rollup merge of #112912 - joshtriplett:style-let-else-clarifications, ↵Guillaume Gomez-43/+62
r=calebcartwright style-guide: Rewrite let-else section for clarity, without changing formatting The section as written did not cover all cases, and left some of them implicit. Rewrite it to systematically cover all cases. Place examples immediately following the corresponding case. In the process, reorder to move the simplest cases first: start with single-line and add progressively more line breaks. This does not change the meaning of the section at all, and in particular does not change the defined style for let-else statements.
2023-06-23Rollup merge of #112944 - ↵Matthias Krüger-0/+12
joshtriplett:style-guide-defaults-vs-configurability, r=compiler-errors style-guide: Add language disclaiming any effects on non-default Rust styles Make it clear that the style guide saying "must" doesn't forbid developers from doing differently (as though any power on this Earth could do that) and doesn't forbid tools from allowing any particular configuration options. Otherwise, people might wonder (for instance) if there's a semantic difference between "must" and "should" in the style guide, and whether tools are "allowed" to offer configurability of something that says "must".
2023-06-23Rollup merge of #112942 - joshtriplett:style-guide-tweaks, r=compiler-errorsMatthias Krüger-72/+88
style-guide: Organizational and editing tweaks (no semantic changes) I'd recommend reviewing this PR commit-by-commit; each commit is self-contained and should be easy to review at a glance. - style-guide: Move text about block vs visual indent to indentation section - style-guide: Move and expand text about trailing commas - style-guide: s/right-ward/rightward/ - style-guide: Consistently refer to rustfmt as `rustfmt` - style-guide: Remove inaccurate statement about rustfmt - style-guide: Define (and capitalize) "ASCIIbetically" - style-guide: Update cargo.md for authors being optional and not recommended - style-guide: Avoid normative recommendations for formatting tool configurability - style-guide: Clarify advice on names matching keywords - style-guide: Reword an awkwardly phrased recommendation (and fix a typo) - style-guide: Rephrase a confusingly ordered, ambiguous sentence (and fix a typo) - style-guide: Avoid hyphenating "semicolon" - style-guide: Make link text in SUMMARY.md match the headings in the linked pages - style-guide: Define what an item is - style-guide: Avoid referring to the style team in the past tense
2023-06-22style-guide: Add language disclaiming any effects on non-default Rust stylesJosh Triplett-0/+12
Make it clear that the style guide saying "must" doesn't forbid developers from doing differently (as though any power on this Earth could do that) and doesn't forbid tools from allowing any particular configuration options.
2023-06-22style-guide: Avoid referring to the style team in the past tenseJosh Triplett-2/+2
We live!
2023-06-22style-guide: Define what an item isJosh Triplett-0/+5
2023-06-22style-guide: Make link text in SUMMARY.md match the headings in the linked pagesJosh Triplett-5/+7
2023-06-22style-guide: Avoid hyphenating "semicolon"Josh Triplett-8/+8
2023-06-22style-guide: Rephrase a confusingly ordered, ambiguous sentence (and fix a typo)Josh Triplett-2/+3
This sentence had a parenthetical without a closing parenthesis, and had the phrase "which doesn't require special formatting" ambiguously at the end of a list when it only applied to the last item of the list.
2023-06-22style-guide: Reword an awkwardly phrased recommendation (and fix a typo)Josh Triplett-2/+2
2023-06-22style-guide: Clarify advice on names matching keywordsJosh Triplett-3/+3
In particular, specify what this advice is an alternative to (creative misspellings such as `krate`).
2023-06-22style-guide: Avoid normative recommendations for formatting tool configurabilityJosh Triplett-6/+2
It's not within the scope of the style guide to tell formatting tools whether, or how, to allow configurability of non-default formatting.
2023-06-22style-guide: Update cargo.md for authors being optional and not recommendedJosh Triplett-9/+10
Change an example using the authors field to use a long feature list instead. Change the conventions for the authors field to say "if present".
2023-06-22style-guide: Define (and capitalize) "ASCIIbetically"Josh Triplett-3/+3
The style guide didn't give any definition for it.
2023-06-22style-guide: Remove inaccurate statement about rustfmtJosh Triplett-4/+0
rustfmt does include a mechanism to distinguish standard library imports, which it does syntactically by crate name. Avoid making a misleading statement that implies it cannot do this.
2023-06-22style-guide: Consistently refer to rustfmt as `rustfmt`Josh Triplett-5/+5
2023-06-22style-guide: s/right-ward/rightward/Josh Triplett-1/+1
We already use the word "rightward" elsewhere; avoid the unnecessarily hyphenated "right-ward".
2023-06-22style-guide: Move and expand text about trailing commasJosh Triplett-7/+21
`principles.md` includes some high-level guiding principles for formatting, but also includes a few specific formatting provisions. While those provisions apply in many places, the same holds true for other high-level guidance. Move the text about trailing commas to `README.md`, so that `principles.md` can focus on guiding principles while the top level of the style guide gives concrete formatting recommendations.
2023-06-22style-guide: Move text about block vs visual indent to indentation sectionJosh Triplett-17/+18
`principles.md` includes some high-level guiding principles for formatting, but also includes a few specific formatting provisions. While those provisions apply in many places, the same holds true for other high-level guidance, such as the indentation section. Move the text about using block indent rather than visual indent to the indentation section, so that `principles.md` can focus on guiding principles while the top level of the style guide gives concrete formatting recommendations.
2023-06-22style-guide: Fix typoJosh Triplett-1/+1
"does done fit" should have been "does not fit".
2023-06-21style-guide: Rewrite let-else section for clarity, without changing formattingJosh Triplett-43/+62
The section as written did not cover all cases, and left some of them implicit. Rewrite it to systematically cover all cases. Place examples immediately following the corresponding case. In the process, reorder to move the simplest cases first: start with single-line and add progressively more line breaks. This does not change the meaning of the section at all, and in particular does not change the defined style for let-else statements.