Files
carbon-lang/utils/textmate/README.md
T
Chandler CarruthandDana Jansens 37949a2066 Generate the TextMate sample renderings (#7762)
The images beside the samples were screenshots taken by hand, so they
drifted: they still showed `package Carbon api;`, syntax the language
dropped in 2024.

`render_sample.py` renders a sample the way the grammar in this
repository actually highlights it, using `tmlanguage.py`, a small
TextMate tokenizer. VS Code runs grammars under Oniguruma, which we
cannot depend on here, but this grammar uses no Oniguruma-only syntax,
so `re` runs its regexes unchanged and the two agree on every character
of every Carbon file in the repository. The output is SVG, so
regenerating needs nothing but Python, and a later grammar change gets a
same-path image diff showing what it did to real code.

The samples change where a construct left the language (`api`, `Carbon`
as the package name, `StringView`, `destructor`), refresh the
`keywords.carbon` inventory against `token_kind.def`, and add sections
for octal, raw and block literals, character literals, lambdas, and raw
identifiers. `interop.carbon` is new, covering inline C++. These are
highlighting fixtures rather than programs, so the deliberately invalid
lines stay.

Assisted-by: Claude Code

---------

Co-authored-by: Dana Jansens <danakj@orodu.net>
2026-09-15 20:29:22 +00:00

2.0 KiB

Textmate Language Definition

This directory contains a TextMate bundle which can be used in various editors such as TextMate, Atom, or the IntelliJ family for syntax highlighting of Carbon source files.

If you are using TextMate, see the documentation on how to install TextMate bundles. Clone the repository with Git and symlink/copy the utils/textmate directory to any of the paths TextMate will search through (you can find these paths in the TextMate documentation above).

IntelliJ

If you are using IntelliJ or a IntelliJ Platform product, you can find documentation on how to install TextMate bundles in IntelliJ. Clone the repository with Git and open the utils/textmate directory inside the IntelliJ TextMate Bundle window.

Atom

If you are using Atom, you can convert the bundle to an Atom-compatible one. See the Atom documentation on how to do that.

Other

For other editors that support TextMate bundles you can consult your editors documentation to see how to use the bundle.

Samples

Samples/ holds Carbon sources that exercise the grammar, each with an SVG rendering of how this bundle highlights it. Some deliberately contain invalid code, to show that highlighting stays sensible while something is being typed.

The renderings are generated, not screenshotted, so they always reflect the grammar in this repository. Regenerate them in the same commit as any change to the grammar, so a reviewer can see what the change does to real code:

utils/textmate/render_sample.py utils/textmate/Samples/*.carbon