Files
zed/crates/grammars/src/c/config.toml
T
Lee ByeongJunanddino 32adc59cb7 Surround selection with backticks in Rust, C, and C++ comments (#58674)
Typing a backtick over selected text in Rust, C, and C++ comments
replaced the selection instead of wrapping it. Markdown already supports
this via its backtick bracket pair.

Add a backtick bracket pair for these languages:
  - `surround = true` wraps selections in backticks
  - `close = false` avoids auto-closing lone backticks
  - `not_in = ["string"]` enables it in comments but not strings

Self-Review Checklist:

- [X] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [X] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [X] Tests cover the new/changed behavior
- [X] Performance impact has been considered and is acceptable

Closes #58538

Release Notes:

- Added support for surrounding selected text with backticks in Rust, C,
and C++

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-07-21 11:27:16 +00:00

22 lines
1.0 KiB
TOML

name = "C"
grammar = "c"
path_suffixes = ["c"]
line_comments = ["// "]
decrease_indent_patterns = [
{ pattern = "^\\s*\\{.*\\}?\\s*$", valid_after = ["if", "for", "while", "do", "switch", "else"] },
{ pattern = "^\\s*else\\b", valid_after = ["if"] }
]
autoclose_before = ";:.,=}])>"
brackets = [
{ start = "{", end = "}", close = true, newline = true },
{ start = "[", end = "]", close = true, newline = true },
{ start = "(", end = ")", close = true, newline = true },
{ start = "\"", end = "\"", close = true, newline = false, not_in = ["string"] },
{ start = "`", end = "`", close = false, newline = false, not_in = ["string"] },
{ start = "'", end = "'", close = true, newline = false, not_in = ["string", "comment"] },
{ start = "/*", end = " */", close = true, newline = false, not_in = ["string", "comment"] },
]
debuggers = ["CodeLLDB", "GDB"]
block_comment = { start = "/*", prefix = "", end = "*/", tab_size = 1 }
documentation_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 }