metal-lsp — плагин для Claude Code: что делает и как установить
Подключает поддержку Metal Shading Language в сессии Claude Code через clangd. Помогает разбирать шейдеры с переходом к определениям и диагностикой ошибок.
/plugin marketplace add anthropics/claude-plugins-community
/plugin install metal-lsp@claude-communityЧто делает metal-lsp
Плагин настраивает языковой сервер clangd для работы с шейдерами Metal Shading Language (.metal) прямо в сессиях Claude Code. Он регистрирует файлы .metal, создаёт конфигурацию .clangd и транслирует ключевые слова device, constant и kernel в совместимые квалификаторы C++. Это даёт агенту возможность проверять код шейдеров и переходить к определениям.
Для разрешения директивы #include <metal_stdlib> плагин использует встроенные файлы-заглушки. Если вы запускаете его на macOS с установленным Xcode или Command Line Tools, вместо заглушек подтягиваются настоящие заголовки Metal SDK.
Без доступного clangd в системной переменной PATH языковой сервер не запустится. Установить его можно через Homebrew командой brew install llvm или с помощью системного пакетного менеджера.
Какие задачи решает
- находить ошибки в коде шейдеров
.metalпрямо в терминале - переходить к определениям структур и функций внутри шейдеров
- читать справочные подсказки спецификации MSL при наведении
- сконфигурировать
clangdпод заголовочные файлы и типы Metal
Примеры запросов агенту
- Проверь файл
Shaders.metalна ошибки компиляции - Найди определение структуры в
pipeline.metalи покажи типы полей - Обнови конфигурацию
.clangdдля нового шейдера
Как установить metal-lsp
Через маркетплейс плагинов
/plugin marketplace add anthropics/claude-plugins-community/plugin install metal-lsp@claude-communityПо шагам, с командами для каждой платформы: Плагины Claude Code: маркетплейсы, установка и как собрать свой
Вопросы о metal-lsp
Как установить metal-lsp в Claude Code?
В сессии Claude Code выполните по очереди две команды: сначала /plugin marketplace add anthropics/claude-plugins-community, а затем /plugin install metal-lsp@claude-community.
Что делает плагин metal-lsp?
Он разворачивает языковой сервер на базе clangd для обработки файлов .metal. Это обеспечивает Claude Code автодополнением, переходом к определениям и диагностикой ошибок в шейдерах Metal.
Что требуется установить заранее для работы плагина?
Необходим установленный clangd в переменной окружения PATH. На macOS для доступа к полным заголовочным файлам SDK также пригодятся Xcode или Command Line Tools, без которых плагин переключится на встроенные заглушки.
Исходный текст
SKILL.md · MIT
# Metal LSP Full language server features for Metal Shading Language in VSCode, Cursor, and Claude Code. Autocomplete, inline diagnostics, hover documentation, and go-to-definition for `.metal` files. Powered by clangd with Metal-aware headers. ## Features | Feature | macOS | Linux/Windows | |---------|-------|---------------| | Autocomplete (stdlib + user code) | Full (real SDK headers) | Full (stubs) | | Inline diagnostics | Full | Best-effort (C++ mode) | | Hover documentation | From MSL spec | From MSL spec | | Go-to-definition | Yes | Yes (into stubs) | | Syntax highlighting | TextMate + semantic | TextMate + semantic | | Compile-on-save diagnostics | Yes (opt-in, via `xcrun metal`) | No | ## Requirements - **clangd** — install via the [clangd extension](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd), Homebrew (`brew install llvm`), or your system package manager - **macOS** (optional): Xcode or Command Line Tools for real Metal SDK headers. Without them, the extension falls back to bundled stubs. ## Installation ### VS Code / Cursor Install from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=rayanhtt.metal-lsp). The extension activates automatically when your workspace contains `.metal` files. Also available on [Open VSX](https://open-vsx.org/) for VSCodium and other editors. ### Claude Code ```bash /plugin marketplace add rayanht/metal-lsp /plugin install metal-lsp@rayanht-metal-lsp ``` Or for local development: `claude --plugin-dir /path/to/metal-lsp` Provides clangd-powered diagnostics, hover docs, and go-to-definition for `.metal` files directly in Claude Code CLI sessions. Requires `clangd` in PATH. ## How It Works The extension configures clangd to understand Metal by: 1. Registering `.metal` files as the "Metal" language 2. Running its own clangd language client scoped to Metal files 3. Generating a `.clangd` config that tells clangd to parse `.metal` as C++ with Metal-compatible flags 4. Providing a compat header that maps Metal keywords (`device`, `constant`, `kernel`, etc.) to C++ type qualifiers 5. Bundling stub headers so `#include <metal_stdlib>` resolves — on macOS with Xcode, real SDK headers are used instead ## Settings | Setting | Default | Description | |---------|---------|-------------| | `metal-lsp.metalStdVersion` | `"metal3.0"` | Metal Shading Language standard version (`metal1.0` through `metal4.0`) for compile-on-save | | `metal-lsp.compileDiagnostics` | `"off"` | `"off"` or `"onSave"` — run `xcrun metal` for real compiler diagnostics (macOS only) | | `metal-lsp.includePaths` | `[]` | Additional include directories for Metal shader compilation (added as `-isystem` paths) | | `metal-lsp.compileFlags` | `[]` | Additional compile flags passed to both clangd and the Metal compiler | The workspace root is automatically added as an include path, so `#include "shared/types.h"` works out of the box if `shared/` is at your project root. The `includePaths` setting is only needed for directories outside your workspace. ## Commands - **Metal LSP: Configure** — regenerate `.clangd` configuration - **Metal LSP: Show Status** — show diagnostic info (header source, SDK path, configured folders) - **Metal LSP: Restart Language Server** — restart the clangd language client - **Metal LSP: Open Documentation** — open Apple's MSL spec ## License MIT
© rayanht · MIT · rayanht/metal-lsp