Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/amake/flutter.el
Flutter tools for Emacs
https://github.com/amake/flutter.el
emacs flutter
Last synced: 12 days ago
JSON representation
Flutter tools for Emacs
- Host: GitHub
- URL: https://github.com/amake/flutter.el
- Owner: amake
- License: gpl-3.0
- Created: 2019-01-13T11:29:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-23T12:31:59.000Z (3 months ago)
- Last Synced: 2024-10-14T02:11:37.133Z (25 days ago)
- Topics: emacs, flutter
- Language: Emacs Lisp
- Size: 74.2 KB
- Stars: 123
- Watchers: 4
- Forks: 11
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![MELPA](https://melpa.org/packages/flutter-badge.svg)](https://melpa.org/#/flutter)
# flutter.el
Emacs tools for working with the [Flutter SDK](https://flutter.io/)
# Features
## Run your app
Flutter.el helps you run the `flutter` binary interactively as an inferior
process. It's designed to work together with
[`dart-mode`](https://github.com/bradyt/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.## Localize your app
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](https://flutter.dev/docs/development/accessibility-and-localization/internationalization):- `flutter-l10n-externalize-all`: A function that interactively does the
following for each string literal in the current buffer:
1. Prompts you to give an ID (class property name) to the string,
e.g. `myString`
2. Replaces the string literal with a reference to the localizations class,
e.g. `MyLocalizations.of(context).myString`
3. Deletes any `const` keywords that apply to the reference
4. Appends the original string content as an end-of-line comment
5. Appends a definition for the string to the template ARB file, e.g.```
"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.## Run tests
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.# Installation
You can install from [MELPA](https://melpa.org/#/flutter) with `package.el`.
First [get started with MELPA](https://melpa.org/#/getting-started), then run:
```
M-x package-install flutter
```# Configuration
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 stored
- `flutter-l10n-template-arb-file`: The name of the ARB file that represents the
default (source) language for your app
- `flutter-l10n-output-localization-file`: The name of the generated Dart file
that you use in your app## Example
Using [`use-package`](https://jwiegley.github.io/use-package/) and assuming you
put the Flutter SDK in `/Applications/flutter`:```elisp
;; 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/"))
```# License
GPL-3