From 5d24d0e240adaa81d5541a1b0c22b17a96539d8c Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Sun, 9 Feb 2020 19:59:38 +0100 Subject: [PATCH] Separated Rustfmt config into a separate file --- org/config/index.org | 121 +----------------------------------- org/config/rustfmt.org | 137 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+), 118 deletions(-) create mode 100644 org/config/rustfmt.org diff --git a/org/config/index.org b/org/config/index.org index dce4478..f75d17e 100644 --- a/org/config/index.org +++ b/org/config/index.org @@ -20,10 +20,6 @@ - [[#i3-configuration][i3 configuration]] - [[#nano][Nano]] - [[#rustfmt][Rustfmt]] - - [[#structs-and-enums][Structs and Enums]] - - [[#comments][Comments]] - - [[#documentation][Documentation]] - - [[#whitespace][Whitespace]] - [[#tmux-configuration][Tmux configuration]] - [[#xresources][Xresources]] - [[#dependencies][Dependencies]] @@ -160,119 +156,8 @@ ** Rustfmt :PROPERTIES: :CUSTOM_ID: h-0ae9005c-76a6-49f6-947c-0c8464616e10 - :HEADER-ARGS: :tangle ~/.rustfmt.toml :END: - In my [[file:.rustfmt.toml][.rustfmt.toml]], you can find some custom rules on how my Rust code - should be formatted. - - First, we are using the 2018 edition of Rust. - #+BEGIN_SRC toml - edition = "2018" - #+END_SRC - - Put single-expression functions on a single line. - #+BEGIN_SRC toml - fn_single_line = true - #+END_SRC - - Format string literals where necessary. - #+BEGIN_SRC toml - format_strings = true - #+END_SRC - - Maximum width of each line - #+BEGIN_SRC toml - max_width = 80 - #+END_SRC - - Merge multiple imports into a single nested import. - #+BEGIN_SRC toml - merge_imports = true - #+END_SRC - -*** Structs and Enums - :PROPERTIES: - :CUSTOM_ID: h-a6ec06c9-be62-464e-8b52-59019bbe5f7f - :END: - The maximum length of enum variant having discriminant, that gets vertically - aligned with others. Variants without discriminants would be ignored for the - purpose of alignment. - - Note that this is not how much whitespace is inserted, but instead the - longest variant name that doesn't get ignored when aligning. - #+BEGIN_SRC toml - enum_discrim_align_threshold = 20 - #+END_SRC - - The maximum diff of width between struct fields to be aligned with each - other. - #+BEGIN_SRC toml - struct_field_align_threshold = 20 - #+END_SRC - - Reorder impl items. ~type~ and ~const~ are put first, then macros and - methods. - #+BEGIN_SRC toml - reorder_impl_items = true - #+END_SRC - -*** Comments - :PROPERTIES: - :CUSTOM_ID: h-d3f4dcf6-c910-4716-a531-a628a53c2858 - :END: - Convert ~/* */~ comments to ~//~ comments where possible. - #+BEGIN_SRC toml - normalize_comments = true - #+END_SRC - - Break comments to fit on the line. - #+BEGIN_SRC toml - wrap_comments = true - #+END_SRC - - Report ~FIXME~ items in comments. - #+BEGIN_SRC toml - report_fixme = "Always" - #+END_SRC - - Report ~TODO~ items in comments. - #+BEGIN_SRC toml - todo = "Always" - #+END_SRC - -*** Documentation - :PROPERTIES: - :CUSTOM_ID: h-24aa1f8c-02f5-4add-b1af-d406eecfef25 - :END: - Format code snippet included in doc comments. - #+BEGIN_SRC toml - format_code_in_doc_comments = true - #+END_SRC - - Convert ~#![doc]~ and ~#[doc]~ attributes to ~//!~ and ~///~ doc comments. - #+BEGIN_SRC toml - normalize_doc_attributes = true - #+END_SRC - -*** Whitespace - :PROPERTIES: - :CUSTOM_ID: h-ad416728-7920-49fa-abdc-92cd5ceebc5a - :END: - - Use tab characters for indentation, spaces for alignment. - #+BEGIN_SRC toml - hard_tabs = false - #+END_SRC - - Number of spaces per tab. - #+BEGIN_SRC toml - tab_spaces = 4 - #+END_SRC - - I want newlines to always be Unix style. - #+BEGIN_SRC toml - newline_style = "Unix" - #+END_SRC + You can find my Rustfmt configuration [[file:rustfmt.org][here]]. ** Tmux configuration :PROPERTIES: @@ -286,8 +171,8 @@ :CUSTOM_ID: h-e6f48975-3b86-4a75-a7e5-5cc9edbd9869 :HEADER-ARGS: :tangle ~/.Xresources :exports code :END: - My Xresources file is very short. Indeed, it only contains two lines which - are dedicated to my =st= terminal to set its font and shell. The font is set + My Xresources file is very short. Indeed, it only contains two lines which + are dedicated to my =st= terminal to set its font and shell. The font is set as follows. #+BEGIN_SRC conf st.font: Source Code Pro for Powerline:style=book diff --git a/org/config/rustfmt.org b/org/config/rustfmt.org new file mode 100644 index 0000000..8e8d3e4 --- /dev/null +++ b/org/config/rustfmt.org @@ -0,0 +1,137 @@ +#+TITLE: Phundrak’s Rust format config +#+INCLUDE: headers.org +#+OPTIONS: auto-id:t +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+PROPERTY: header-args:toml :tangle ~/.rustfmt.toml :comments link + +* Table of Contents :TOC:noexport: + :PROPERTIES: + :CUSTOM_ID: h-0871ece1-3315-4853-88ee-26b83530b95a + :END: +- [[#introduction][Introduction]] +- [[#general-settings][General settings]] +- [[#structs-and-enums][Structs and Enums]] +- [[#comments][Comments]] +- [[#documentation][Documentation]] +- [[#whitespace][Whitespace]] + +* Introduction + :PROPERTIES: + :CUSTOM_ID: h-c2854002-b43e-4d65-83a2-e7cbb96af409 + :END: + The ~.rustfmt.toml~ file located in the ~$HOME~ directory is a global + configuration file for Rust’s code formatters, such as ~rustfmt~. In this + file, you can find how my Rust code is always formatted. + +* General settings + :PROPERTIES: + :CUSTOM_ID: h-3d97602e-1562-44eb-b673-55b677eda1c2 + :END: + First, we are using the 2018 edition of Rust. + #+BEGIN_SRC toml + edition = "2018" + #+END_SRC + + Put single-expression functions on a single line. + #+BEGIN_SRC toml + fn_single_line = true + #+END_SRC + + Format string literals where necessary. + #+BEGIN_SRC toml + format_strings = true + #+END_SRC + + Maximum width of each line + #+BEGIN_SRC toml + max_width = 80 + #+END_SRC + + Merge multiple imports into a single nested import. + #+BEGIN_SRC toml + merge_imports = true + #+END_SRC + +* Structs and Enums + :PROPERTIES: + :CUSTOM_ID: h-a6ec06c9-be62-464e-8b52-59019bbe5f7f + :END: + The maximum length of enum variant having discriminant, that gets vertically + aligned with others. Variants without discriminants would be ignored for the + purpose of alignment. + + Note that this is not how much whitespace is inserted, but instead the longest + variant name that doesn't get ignored when aligning. + #+BEGIN_SRC toml + enum_discrim_align_threshold = 20 + #+END_SRC + + The maximum diff of width between struct fields to be aligned with each other. + #+BEGIN_SRC toml + struct_field_align_threshold = 20 + #+END_SRC + + Reorder impl items. ~type~ and ~const~ are put first, then macros and methods. + #+BEGIN_SRC toml + reorder_impl_items = true + #+END_SRC + +* Comments + :PROPERTIES: + :CUSTOM_ID: h-d3f4dcf6-c910-4716-a531-a628a53c2858 + :END: + Convert ~/* */~ comments to ~//~ comments where possible. + #+BEGIN_SRC toml + normalize_comments = true + #+END_SRC + + Break comments to fit on the line. + #+BEGIN_SRC toml + wrap_comments = true + #+END_SRC + + Report ~FIXME~ items in comments. + #+BEGIN_SRC toml + report_fixme = "Always" + #+END_SRC + + Report ~TODO~ items in comments. + #+BEGIN_SRC toml + todo = "Always" + #+END_SRC + +* Documentation + :PROPERTIES: + :CUSTOM_ID: h-24aa1f8c-02f5-4add-b1af-d406eecfef25 + :END: + Format code snippet included in doc comments. + #+BEGIN_SRC toml + format_code_in_doc_comments = true + #+END_SRC + + Convert ~#![doc]~ and ~#[doc]~ attributes to ~//!~ and ~///~ doc comments. + #+BEGIN_SRC toml + normalize_doc_attributes = true + #+END_SRC + +* Whitespace + :PROPERTIES: + :CUSTOM_ID: h-ad416728-7920-49fa-abdc-92cd5ceebc5a + :END: + + Use tab characters for indentation, spaces for alignment. + #+BEGIN_SRC toml + hard_tabs = false + #+END_SRC + + Number of spaces per tab. + #+BEGIN_SRC toml + tab_spaces = 4 + #+END_SRC + + I want newlines to always be Unix style. + #+BEGIN_SRC toml + newline_style = "Unix" + #+END_SRC