-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
概要
Dart(Flutter プロジェクト含む)の import 解析・アーキテクチャチェックを mille に追加したい。
Dart の import 分類ルール(設計済み)
| パターン | カテゴリ |
|---|---|
import 'dart:async'; |
External(stdlib) |
import 'package:my_app/domain/user.dart'; |
Internal(自パッケージ) |
import 'package:flutter/material.dart'; |
External |
import '../model/user.dart'; |
Internal(相対パス) |
package_nameはpubspec.yamlのnameフィールドから取得[resolve.dart] package_name = "my_app"で手動指定も可能
現状ブロックされている理由
tree-sitter-dart (0.1.0) は cc ^1.2 を要求するが、mille の既存依存に互換性がない。
tree-sitter-dart 0.1.0 → cc ^1.2
tree-sitter-javascript 0.21 → cc ~1.0.90(tree-sitter 0.22 経由)
cc を 1.2 に上げるには tree-sitter 本体を 0.24+ にする必要があるが、tree-sitter-kotlin の最新版 (0.3.8) が tree-sitter >=0.21, <0.23 を要求するため、全体のアップグレードができない。
依存関係の衝突まとめ
| クレート | 現在 | 必要 | ブロッカー |
|---|---|---|---|
tree-sitter |
0.22 | 0.24+ | tree-sitter-kotlin が <0.23 を要求 |
cc |
~1.0.90 | ^1.2 | tree-sitter 0.22 系が ~1.0 にピン |
tree-sitter-kotlin |
0.3.8 | 0.4+? | 未リリース |
対応可能になるタイミング
tree-sitter-kotlinが tree-sitter 0.24+ 対応版をリリースしたとき- 上流: https://github.com/fwcd/tree-sitter-kotlin
実装予定(ブロック解消後)
- Parser 実装(
src/infrastructure/parser/dart.rs) - Resolver 実装(
src/infrastructure/resolver/dart.rs) - DispatchingParser / DispatchingResolver 登録
- E2E fixture + テスト
- CI dogfooding ステップ追加
- Website ドキュメント(ja + en)
- README.md フィーチャーマトリックス更新
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels