docs: Improve formatter docs. Examples for C/C++ (#20553)

This commit is contained in:
Peter Tripp 2024-11-13 14:24:50 +00:00 committed by GitHub
parent 84e47fb80b
commit 3a319e6cbe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 57 additions and 0 deletions

View file

@ -825,6 +825,8 @@ While other options may be changed at a runtime and should be placed under `sett
3. External formatters may optionally include a `{buffer_path}` placeholder which at runtime will include the path of the buffer being formatted. Formatters operate by receiving file content via standard input, reformatting it and then outputting it to standard output and so normally don't know the filename of what they are formatting. Tools like prettier support receiving the file path via a command line argument which can then used to impact formatting decisions.
WARNING: `{buffer_path}` should not be used to direct your formatter to read from a filename. Your formatter should only read from standard input and should not read or write files directly.
```json
"formatter": {
"external": {

View file

@ -13,3 +13,29 @@ Clangd out of the box assumes mixed C++/C projects. If you have a C-only project
CompileFlags:
Add: [-xc]
```
## Formatting
By default Zed will use the `clangd` language server for formatting C code. The Clangd is the same as the `clang-format` CLI tool. To configure this you can add a `.clang-format` file. For example:
```yaml
---
BasedOnStyle: GNU
IndentWidth: 2
---
```
See [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) for a complete list of options.
You can trigger formatting via {#kb editor::Format} or the `editor: format` action from the command palette or by adding `format_on_save` to your Zed settings:
```json
"languages": {
"C" {
"format_on_save": "on",
"tab_size": 2
}
}
```
See [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) for a complete list of options.

View file

@ -55,6 +55,35 @@ You can pass any number of arguments to clangd. To see a full set of available o
}
```
## Formatting
By default Zed will use the `clangd` language server for formatting C++ code. The Clangd is the same as the `clang-format` CLI tool. To configure this you can add a `.clang-format` file. For example:
```yaml
---
BasedOnStyle: LLVM
IndentWidth: 4
---
Language: Cpp
# Force pointers to the type for C++.
DerivePointerAlignment: false
PointerAlignment: Left
---
```
See [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) for a complete list of options.
You can trigger formatting via {#kb editor::Format} or the `editor: format` action from the command palette or by adding `format_on_save` to your Zed settings:
```json
"languages": {
"C++" {
"format_on_save": "on",
"tab_size": 2
}
}
```
## More server configuration
In the root of your project, it is generally common to create a `.clangd` file to set extra configuration.