diff --git a/extensions/dart/README.md b/extensions/dart/README.md new file mode 100644 index 0000000000..bf6976dd60 --- /dev/null +++ b/extensions/dart/README.md @@ -0,0 +1,6 @@ +## Roadmap + +1. Add `dart run` command. +2. Add `dart test` command. +3. Add `flutter test --name` command, to allow running a single test or group of tests. +4. Auto hot reload Flutter app when files change. diff --git a/extensions/dart/languages/dart/runnables.scm b/extensions/dart/languages/dart/runnables.scm new file mode 100644 index 0000000000..509cd38d05 --- /dev/null +++ b/extensions/dart/languages/dart/runnables.scm @@ -0,0 +1,45 @@ +; Flutter main +( + ( + (import_or_export + (library_import + (import_specification + ("import" + (configurable_uri + (uri + (string_literal) @_import + (#match? @_import "package:flutter/(material|widgets|cupertino).dart") + (#not-match? @_import "package:flutter_test/flutter_test.dart") + (#not-match? @_import "package:test/test.dart") + )))))) + ( + (function_signature + name: (_) @run + ) + (#eq? @run "main") + ) + (#set! tag flutter-main) + ) +) + +; Flutter test main +( + ( + (import_or_export + (library_import + (import_specification + ("import" + (configurable_uri + (uri + (string_literal) @_import + (#match? @_import "package:flutter_test/flutter_test.dart") + )))))) + ( + (function_signature + name: (_) @run + ) + (#eq? @run "main") + ) + (#set! tag flutter-test-main) + ) +) diff --git a/extensions/dart/languages/dart/tasks.json b/extensions/dart/languages/dart/tasks.json new file mode 100644 index 0000000000..c177d04cec --- /dev/null +++ b/extensions/dart/languages/dart/tasks.json @@ -0,0 +1,26 @@ +[ + { + "label": "flutter run", + "command": "flutter", + "args": ["run"], + "tags": ["flutter-main"] + }, + { + "label": "fvm flutter run", + "command": "fvm flutter", + "args": ["run"], + "tags": ["flutter-main"] + }, + { + "label": "flutter test $ZED_STEM", + "command": "flutter", + "args": ["test", "$ZED_FILE"], + "tags": ["flutter-test-main"] + }, + { + "label": "fvm flutter test $ZED_STEM", + "command": "fvm flutter", + "args": ["test", "$ZED_FILE"], + "tags": ["flutter-test-main"] + } +]