Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,17 @@
"author": {
"name": "Jan Kott"
}
},
{
"name": "dart-analyzer",
"version": "1.0.0",
"source": "./dart-analyzer",
"description": "Dart/Flutter language server",
"category": "development",
"tags": ["dart", "flutter", "lsp"],
"author": {
"name": "Tyler Jewell"
}
}
]
}
22 changes: 22 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ The Language Server Protocol provides IDE-like intelligence to Claude Code. On s
| [rust-analyzer](./rust-analyzer) | Rust | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) |
| [solargraph](./solargraph) | Ruby | [Solargraph](https://github.com/castwide/solargraph) |
| [vscode-html-css](./vscode-html-css) | HTML/CSS | [vscode-langservers](https://github.com/hrsh7th/vscode-langservers-extracted) |
| [dart-analyzer](./dart-analyzer) | Dart/Flutter | [Dart SDK](https://dart.dev/tools/dart-analyze) |

## Getting Started

Expand Down Expand Up @@ -73,6 +74,7 @@ Install individual plugins:
/plugin install rust-analyzer@claude-code-lsps
/plugin install solargraph@claude-code-lsps
/plugin install vscode-html-css@claude-code-lsps
/plugin install dart-analyzer@claude-code-lsps
```

Or browse and install interactively:
Expand Down Expand Up @@ -210,6 +212,26 @@ npm install -g vscode-langservers-extracted

</details>

<details>
<summary><strong>Dart/Flutter (dart-analyzer)</strong></summary>

Install Dart SDK:

```bash
brew tap dart-lang/dart
brew install dart
```

Or install Flutter (includes Dart):

```bash
# See https://docs.flutter.dev/get-started/install
```

Ensure `dart` is in your PATH.

</details>

---

## Creating Your Own Plugin
Expand Down
8 changes: 8 additions & 0 deletions dart-analyzer/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "dart-analyzer",
"description": "Dart/Flutter language server",
"version": "1.0.0",
"author": {
"name": "Jan Kott"
}
}
13 changes: 13 additions & 0 deletions dart-analyzer/.lsp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"dart": {
"command": "dart",
"args": ["language-server", "--client-id=claude-code.dart-analyzer", "--client-version=1.0.0"],
"extensionToLanguage": {
".dart": "dart"
},
"transport": "stdio",
"initializationOptions": {},
"settings": {},
"maxRestarts": 3
}
}
36 changes: 36 additions & 0 deletions dart-analyzer/hooks/check-dart.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

# Check if Dart SDK is installed and available in PATH

if command -v dart &> /dev/null; then
DART_VERSION=$(dart --version 2>&1)
exit 0
fi

# Check common Dart/Flutter installation paths
FLUTTER_DART="$FLUTTER_ROOT/bin/cache/dart-sdk/bin/dart"
if [ -n "$FLUTTER_ROOT" ] && [ -x "$FLUTTER_DART" ]; then
echo "[dart-analyzer] Dart found via FLUTTER_ROOT: $FLUTTER_ROOT"
echo " Add to PATH: export PATH=\"\$PATH:\$FLUTTER_ROOT/bin/cache/dart-sdk/bin\""
exit 0
fi

# Check for Flutter in common locations
for FLUTTER_PATH in "$HOME/flutter" "$HOME/.flutter" "/opt/flutter" "/usr/local/flutter"; do
if [ -x "$FLUTTER_PATH/bin/cache/dart-sdk/bin/dart" ]; then
echo "[dart-analyzer] Dart found at: $FLUTTER_PATH/bin/cache/dart-sdk/bin/dart"
echo " Add to PATH: export PATH=\"\$PATH:$FLUTTER_PATH/bin/cache/dart-sdk/bin\""
exit 0
fi
done

# Dart not found
echo "[dart-analyzer] Dart SDK not found in PATH."
echo ""
echo "Install options:"
echo " 1. Flutter (includes Dart): https://docs.flutter.dev/get-started/install"
echo " 2. Dart only: https://dart.dev/get-dart"
echo ""
echo "After installation, ensure 'dart' is in your PATH."

exit 0
16 changes: 16 additions & 0 deletions dart-analyzer/hooks/hooks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"description": "Check for Dart SDK installation on session start",
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/check-dart.sh",
"timeout": 30
}
]
}
]
}
}