npx claudepluginhub r55r/ui-toolkit-lsps --plugin uxml-lspClaude Code 向けの Unity UI Toolkit LSP プラグイン集です。
現在このリポジトリで利用できるプラグイン:
uss-lsp: unity_code_native を使って .uss を LSP 接続uxml-lsp: LemMinX を使って .uxml を LSP 接続(同梱XSDで補完/検証)uss-lsp 用: unity_code_nativeunity_code_native は USS Language Server を内蔵しており、LSP は stdio(stdin/stdout)で通信します。
起動時に Unity プロジェクトのパスを第1引数 で渡す必要があります。
git clone https://github.com/hackerzhuli/unity_code_native.git
cd unity_code_native
cargo build --release
生成物:
target/release/unity_code_nativetarget/release/unity_code_native.exe生成した実行ファイルを PATH の通る場所に置いてください。
PATH に置かない場合は、plugins/uss-lsp/.lsp.json の command を絶対パスに変更してください。
uxml-lsp 用: lemminxuxml-lsp は XML Language Server の LemMinX を利用します。
lemminx コマンドが PATH で実行できる状態にしてください。
lemminx の代わりに java -jar /path/to/org.eclipse.lemminx-uber.jar で運用したい場合は、plugins/uxml-lsp/.lsp.json の command / args を調整してください。
Unity プロジェクト直下で:
unity_code_native .
または:
unity_code_native /path/to/YourUnityProject
usage が出ずに起動できれば、引数付き起動は正常です。
LemMinX 側は次で起動確認できます:
lemminx
このリポジトリをマーケットプレースとして追加:
claude plugin marketplace add /path/to/ui-toolkit-lsps
uss-lsp をインストール:
claude plugin install uss-lsp@ui-toolkit-lsps --scope project
uxml-lsp をインストール:
claude plugin install uxml-lsp@ui-toolkit-lsps --scope project
確認:
claude plugin list
plugins/uss-lsp/.lsp.json)plugins/uss-lsp/.lsp.json は以下のように設定してあります。
{
"uss": {
"command": "unity_code_native",
"args": ["."],
"extensionToLanguage": {
".uss": "uss"
}
}
}
Claude Code を Unity プロジェクトのルートで開くことで、args: ["."] が Unity プロジェクトパスとして渡される想定です。
plugins/uxml-lsp/.lsp.json)plugins/uxml-lsp/.lsp.json は lemminx を起動し、.uxml を XML として関連付けています。
さらに xml.fileAssociations で **/*.uxml を urn:ui-toolkit-lsps:uxml に関連付け、
XML Catalog で実体スキーマを解決します。
{
"xml": {
"command": "lemminx",
"extensionToLanguage": {
".uxml": "xml"
},
"initializationOptions": {
"settings": {
"xml": {
"catalogs": [
"./.claude/uxml-lsp/catalog.xml",
"file://${CLAUDE_PLUGIN_ROOT}/schemas/catalog.xml"
],
"fileAssociations": [
{
"pattern": "**/*.uxml",
"systemId": "urn:ui-toolkit-lsps:uxml"
}
]
}
}
}
}
}
plugins/uxml-lsp/schemas/ に以下を同梱しています:
catalog.xml: urn:ui-toolkit-lsps:uxml -> UIElements.xsdUIElements.xsd: エントリポイント(他の XSD を import)UnityEngine.UIElements.xsd, UnityEditor.UIElements.xsd ほか関連 XSD 一式UNITY_SCHEMA_SOURCE.md: 生成元 Unity バージョン情報これらの XSD は Unity Editor 6000.2.10f1 で UnityEditor.UIElements.UxmlSchemaGenerator.UpdateSchemaFiles() を実行して生成した公式スキーマです(手書きではありません)。
再生成は scripts/sync-unity-uxml-schema.sh で行えます。
./scripts/sync-unity-uxml-schema.sh /Applications/Unity/Hub/Editor/6000.2.10f1/Unity.app 6000.2.10f1
uxml-lsp は、プロジェクト側のカタログを優先して読みます。
以下を作成すると、同梱スキーマを差し替えできます(Unity バージョンごとの運用を推奨)。
.claude/uxml-lsp/ を作成.claude/uxml-lsp/MyUIElements.xsd).claude/uxml-lsp/catalog.xml を作成<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<uri name="urn:ui-toolkit-lsps:uxml" uri="MyUIElements.xsd"/>
</catalog>
catalog.xml を置いた後、Claude Code を再起動すると新しいスキーマが適用されます。
TypeScript/JavaScript language server for enhanced code intelligence
C/C++ language server (clangd) for code intelligence
C# language server for code intelligence
Python language server (Pyright) for type checking and code intelligence
Java language server (Eclipse JDT.LS) for code intelligence
GDScript language server for Godot Engine