diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/dev/style.md | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/docs/dev/style.md b/docs/dev/style.md index d24a5952e..f22b69768 100644 --- a/docs/dev/style.md +++ b/docs/dev/style.md | |||
@@ -636,6 +636,10 @@ use crate::{} | |||
636 | 636 | ||
637 | // Finally, parent and child modules, but prefer `use crate::`. | 637 | // Finally, parent and child modules, but prefer `use crate::`. |
638 | use super::{} | 638 | use super::{} |
639 | |||
640 | // Re-exports are treated as item definitions rather than imports, so they go | ||
641 | // after imports and modules. Use them sparingly. | ||
642 | pub use crate::x::Z; | ||
639 | ``` | 643 | ``` |
640 | 644 | ||
641 | **Rationale:** consistency. | 645 | **Rationale:** consistency. |
@@ -694,6 +698,9 @@ Avoid local `use MyEnum::*` imports. | |||
694 | Prefer `use crate::foo::bar` to `use super::bar` or `use self::bar::baz`. | 698 | Prefer `use crate::foo::bar` to `use super::bar` or `use self::bar::baz`. |
695 | **Rationale:** consistency, this is the style which works in all cases. | 699 | **Rationale:** consistency, this is the style which works in all cases. |
696 | 700 | ||
701 | By default, avoid re-exports. | ||
702 | **Rationale:** for non-library code, re-exports introduce two ways to use something and allow for inconsistency. | ||
703 | |||
697 | ## Order of Items | 704 | ## Order of Items |
698 | 705 | ||
699 | Optimize for the reader who sees the file for the first time, and wants to get a general idea about what's going on. | 706 | Optimize for the reader who sees the file for the first time, and wants to get a general idea about what's going on. |
@@ -944,6 +951,28 @@ match p.current() { | |||
944 | 951 | ||
945 | ## Documentation | 952 | ## Documentation |
946 | 953 | ||
954 | Style inline code comments as proper sentences. | ||
955 | Start with a capital letter, end with a dot. | ||
956 | |||
957 | ```rust | ||
958 | // GOOD | ||
959 | |||
960 | // Only simple single segment paths are allowed. | ||
961 | MergeBehavior::Last => { | ||
962 | tree.use_tree_list().is_none() && tree.path().map(path_len) <= Some(1) | ||
963 | } | ||
964 | |||
965 | // BAD | ||
966 | |||
967 | // only simple single segment paths are allowed | ||
968 | MergeBehavior::Last => { | ||
969 | tree.use_tree_list().is_none() && tree.path().map(path_len) <= Some(1) | ||
970 | } | ||
971 | ``` | ||
972 | |||
973 | **Rationale:** writing a sentence (or maybe even a paragraph) rather just "a comment" creates a more appropriate frame of mind. | ||
974 | It tricks you into writing down more of the context you keep in your head while coding. | ||
975 | |||
947 | For `.md` and `.adoc` files, prefer a sentence-per-line format, don't wrap lines. | 976 | For `.md` and `.adoc` files, prefer a sentence-per-line format, don't wrap lines. |
948 | If the line is too long, you want to split the sentence in two :-) | 977 | If the line is too long, you want to split the sentence in two :-) |
949 | 978 | ||