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 the
following for each string literal in the current buffer:
myString
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 string
literal at point only; kills the definition instead of adding it to the
template ARB file.Flutter.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.Easily activate keybindings for these with the 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 ARB
files are storedflutter-l10n-template-arb-file
: The name of the ARB file that represents the
default (source) language for your appflutter-l10n-output-localization-file
: The name of the generated Dart file
that you use in your appUsing 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/"))
GPL-3