Flutter tools for Emacs
https://github.com/amake/flutter.el.git
Emacs tools for working with the Flutter SDK
Flutter.el helps you run the flutter binary interactively as an inferior
process. It's designed to work together with
dart-mode: for instance the example
configuration below binds flutter-run-or-hot-reload to C-M-x in
dart-mode. While editing your Dart code, just hit C-M-x to either
run your app, or if it's already running, to hot-reload it.
Any non-trivial app will require localization, but if you're like me you probably write your code first and worry about externalizing your strings (moving their definitions to a separate file) later.
Flutter.el comes with some helpful features to make externalizing strings easier, assuming you are following best practices:
flutter-l10n-externalize-all: A function that interactively does themyString
MyLocalizations.of(context).myString
const keywords that apply to the reference"myString": "Hello, world!",
flutter-l10n-externalize-at-point: Does all of the above but for the stringFlutter.el helps you run tests of your flutter application. There are 3 commands available:
flutter-test-all - run all tests from a flutter project.flutter-test-current-file - run all tests inside the current file.flutter-test-at-point - run single test or group of tests at point.flutter-test-mode minor
mode.
You can install from MELPA with package.el.
First get started with MELPA, then run:
M-x package-install flutter
Set flutter-sdk-path to the location of your Flutter SDK. This isn't even
necessary if the flutter binary is on your PATH.
The localization tools will read your /l10n.yaml file by default, but
alternatively you can set the following variables:
flutter-l10n-arb-dir: The relative path from project root where your ARBflutter-l10n-template-arb-file: The name of the ARB file that represents theflutter-l10n-output-localization-file: The name of the generated Dart fileUsing use-package and assuming you
put the Flutter SDK in /Applications/flutter:
;; Assuming usage with dart-mode
(use-package dart-mode
;; Optional
:hook (dart-mode . flutter-test-mode))
(use-package flutter
:after dart-mode
:bind (:map dart-mode-map
("C-M-x" . #'flutter-run-or-hot-reload))
:custom
(flutter-sdk-path "/Applications/flutter/"))