Files
carbon-lang/docs/project/contribution_tools.md
T
Jon Meow be116a46c9 Adjust md tab width to work better cross-markdown-parser (#124)
We're running into issues with md handlers that expect this kind of 4-space indent. It should be cross-compatible with GH, so switch, even though it feels a little churny.

Manual edits are to:

- .prettierrc.yaml:
    - rename from .prettierrc
    - add tabWidth (primary change)
    - add trailingComma (fix vimPrettier skew)
- contribution_tools.md: Fix remarks about .prettierrc.yaml
- pre-commit-toc.js: indent, bullets
- pre-commit-proposal-list.py: indent of output

The rest is the result of `pre-commit run --all-files`

Unfortunately this'll probably depend on the change being propagated into PR branches, so I wouldn't be surprised if we see regressions for a bit. We'll also need to nudge people to update .vimrc's. Hopefully the pre-commit GH action helps catch issues.
2020-07-27 10:47:38 -07:00

89 lines
3.0 KiB
Markdown

# Contribution tools
<!--
Part of the Carbon Language project, under the Apache License v2.0 with LLVM
Exceptions. See /LICENSE for license information.
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-->
The Carbon language project has a number of tools used to assist in preparing
contributions.
## Table of contents
<!-- toc -->
- [pre-commit](#pre-commit)
- [black](#black)
- [codespell](#codespell)
- [markdown-toc](#markdown-toc)
- [Prettier](#prettier)
- [vim-prettier](#vim-prettier)
<!-- tocstop -->
## pre-commit
We use [pre-commit](https://pre-commit.com) to run
[various checks](/.pre-commit-config.yaml). This will automatically run
important checks, including formatting.
To set up pre-commit:
- Follow the
[installation instructions](https://pre-commit.com/#installation).
- Enable per-repo: `pre-commit install`
- We already have `pre-commit` configured for Carbon repos -- do not go
through the `Quick start` instructions.
- pre-commit may be run either automatically with `git commit` or manually
with `pre-commit run`.
- When files are modified, including by pre-commit failures, `git add`
will need to be run to include the modifications in the commit, and the
commit re-started.
When modifying or adding pre-commit hooks, please run
`pre-commit run --all-files` to see what changes.
## black
> **pre-commit enabled**: If you're using pre-commit, it will run this.
> Installing and running manually is optional, but may be helpful.
We use [Black](https://github.com/psf/black) to format Python code. Although
[Prettier](#prettier) is used for most languages, it doesn't support Python.
## codespell
> **pre-commit enabled**: If you're using pre-commit, it will run this.
> Installing and running manually is optional, but may be helpful.
We use [codespell](https://github.com/codespell-project/codespell) to spellcheck
common errors. This won't catch every error; we're trying to balance true and
false positives.
## markdown-toc
> **pre-commit enabled**: If you're using pre-commit, it will run this.
> Installing and running manually is optional, but may be helpful.
We use [markdown-toc](https://github.com/jonschlinkert/markdown-toc) to provide
GitHub-compatible tables of contents for some documents.
If run manually, specify `--bullets=-` to use Prettier-compatible bullets, or
always run Prettier after markdown-toc.
## Prettier
> **pre-commit enabled**: If you're using pre-commit, it will run this.
> Installing and running manually is optional, but may be helpful.
We use [Prettier](https://prettier.io/) for formatting. There is an
[rc file](/.prettierrc.yaml) for configuration.
### vim-prettier
If you use [vim-prettier](https://github.com/prettier/vim-prettier), the
`.prettierrc.yaml` should still apply as long as `config_precedence` is set to
the default `file-override`. However, we may need to add additional settings
where the `vim-prettier` default diverges from `prettier`, as we notice them.