Summary
Add Dart Language Server support to packages/lsp with system-first fallback and auto-download capability.
Background
Based on reference implementations:
ref/multispy/src/multilspy/language_servers/dart_language_server/
ref/serena/test/solidlsp/dart/
Key Decisions
- SDK Fallback: System-first - Check if
dart is in PATH first, only download SDK if not found
- SDK Version: Dart SDK 3.7.1 (stable)
- Storage:
~/.cache/dora/dart-lsp/
- Root Detection:
pubspec.yaml, pubspec.lock
Tasks
Dependencies & Execution Order
Parallel Group 1 (independent):
- T001: Add DART_RUNTIME_DEPS constant
- T002: Add getDartResourcesDir() function
Sequential:
- T003: setupDartDependencies() (needs T001, T002)
- T004: DartServer definition (needs T003)
- T005 + T006: Export and add to array (needs T004)
- T007: Tests (needs T006)
Files to Modify
packages/lsp/src/server.ts - Add DartServer definition with auto-download
packages/lsp/src/index.ts - Export DartServer
packages/lsp/src/__tests__/server.test.ts - Add DartServer tests
Summary
Add Dart Language Server support to
packages/lspwith system-first fallback and auto-download capability.Background
Based on reference implementations:
ref/multispy/src/multilspy/language_servers/dart_language_server/ref/serena/test/solidlsp/dart/Key Decisions
dartis in PATH first, only download SDK if not found~/.cache/dora/dart-lsp/pubspec.yaml,pubspec.lockTasks
Dependencies & Execution Order
Parallel Group 1 (independent):
Sequential:
Files to Modify
packages/lsp/src/server.ts- Add DartServer definition with auto-downloadpackages/lsp/src/index.ts- Export DartServerpackages/lsp/src/__tests__/server.test.ts- Add DartServer tests