Files
carbon-lang/utils/vscode
Chandler Carruth fccb349af4 Improve the TextMate grammar scopes and precision (again) (#7914)
This is a re-do of #7888

Outside a call, the grammar scoped a name as a type or a variable by its
capitalization. A theme could not distinguish a type from a value with
the same spelling, or a parameter, a member, or an implemented interface
from any other name. Pointer member access `->` was scoped as a result
arrow, which scoped `Lookup` in `regions->Lookup(x)` as a type.

`entity.name.type` now applies only in a type position (after `:`, `->`,
`as`, `adapt`, or `require`, or in an `impl`) and to the name a nominal
declaration declares. A qualifier, in a declared name like `fn N.Base(T:
type).F()` or in a type, is `entity.name.scope-resolution` nested in
`entity.name.type`. As in the parser, a name is a qualifier when its
parameter lists are followed by `.`. Parameters, `let` bindings, choice
alternatives, members, implemented interfaces, primitive types,
`import`, and the strings naming a builtin or a library have their own
scopes, and brackets use the C++ grammar's scopes. A `->` written
directly after its operand is member access; no result arrow in the
repository is written that way.

The sample palette renders each scope that depends on context
differently, and `tmlanguage.py` now supports nested captures.

In 17 of the 19 themes measured, the VS Code built-ins plus One Dark
Pro, Night Owl, Tokyo Night, and Nord, 13% to 27% of the characters in
hand-written Carbon change color or style. A theme loses a color where
`.` is now punctuation, where word operators like `as` are no longer
control-flow keywords, or where a name outside a type position is no
longer a type.

Assisted-by: Claude Code
2026-10-06 23:21:43 +00:00
..

Carbon Language

This extension provides support for the Carbon Language.

This extension is currently experimental, and being developed alongside Carbon.

Quickstart

  1. Download and install a carbon release.
    • By default, the extension will look for carbon under ./bazel-bin. This is for developers actively working on Carbon and running VS Code inside a carbon-lang clone.
  2. Install the Carbon Language extension.
  3. Configure the installed path to carbon.

Configuration

The configuration is under carbon.*. At present, the only configuration is the path to the carbon binary. This looks like:

"carbon.carbonPath": "/path/to/carbon"

Communication

See Carbon's collaboration systems. We're most active on Discord and have a #editor-integrations channel. We'll also respond to questions on GitHub Discussions.

Documentation

Carbon currently only has project-level documentation. See the GitHub repository.