bevy/docs/linters.md
MinerSebas c9f19d8663 Cleanup of Markdown Files and add CI Checking (#1463)
I have run the VSCode Extension [markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) on all Markdown Files in the Repo.
The provided Rules are documented here: https://github.com/DavidAnson/markdownlint/blob/v0.23.1/doc/Rules.md

Rules I didn't follow/fix:
* MD024/no-duplicate-heading
  * Changelog: Here Heading will always repeat.
  * Examples Readme: Platform-specific documentation should be symmetrical.
* MD025/single-title
* MD026/no-trailing-punctuation
  * Caused by the ! in "Hello, World!".
* MD033/no-inline-html
  * The plugins_guidlines file does need HTML, so the shown badges aren't downscaled too much.
* ~~MD036/no-emphasis-as-heading:~~
  * ~~This Warning only Appears in the Github Issue Templates and can be ignored.~~
* ~~MD041/first-line-heading~~
  * ~~Only appears in the Readme for the AlienCake example Assets, which is unimportant.~~

---

I also sorted the Examples in the Readme and Cargo.toml in this order/Priority:
* Topic/Folder
* Introductionary Examples
* Alphabetical Order

The explanation for each case, where it isn't Alphabetical :
* Diagnostics
  * log_diagnostics: The usage of inbuild Diagnostics is more important than creating your own.
* ECS (Entity Component System)
  * ecs_guide: The guide should be read, before diving into other Features.
* Reflection
  * reflection: Basic Explanation should be read, before more advanced Topics.
* WASM Examples
  * hello_wasm: It's "Hello, World!".
2021-02-22 04:50:05 +00:00

2.1 KiB

Linters in this Repository

rustfmt

Can be automatically be run with the CI Script together with Clippy or manually with this command:

cargo +nightly fmt --all

Clippy

Can be automatically be run with the CI Script together with rustfmt or manually with this command:

cargo clippy --all-targets --all-features -- -D warnings -A clippy::type_complexity -A clippy::manual-strip
  • -D warnings: No warnings are allowed in the codebase.
  • -A clippy::type_complexity: type complexity must be ignored because we use huge templates for queries.
  • -A clippy::manual-strip: strip_prefix support was added in 1.45. We want to support earlier rust versions.

super-linter

super-linter provides easy access to many different Linters.

markdownlint

markdownlint is provided by super-linter and is responsible for .md files. Its configuration is saved in the .markdown-lint.yml file.

The provided rules are documented here and information about setting the config can be seen here.

Using VS Code markdownlint

If you want to use the VS Code Extension with the rules defined in .markdown-lint.yml, then you need to create a local config file in the root of the project with the configuration below. Currently, this is not needed as the extension already disables the rule MD013 by default.

{
  "extends": ".github/linters/.markdown-lint.yml"
}

Other Linters provided by super-linter

All other linters not mentioned in the this file are not activated and can be seen here.