Home

Awesome

<img align="right" src="https://github.com/go-flutter-desktop/hover/blob/master/assets/app/icon.png" width="64"/>

MELPA Actions Status Codacy Badge

hover.el

Emacs tool for running flutter mobile apps on desktop using hover.

<img src="https://github.com/ericdallo/hover.el/blob/screenshots/usage.gif"/>

If you want to run flutter on a emulator from Emacs, you should check flutter.el.

Installation

You can install from MELPA with package.el:

M-x package-install hover

Running

hover.el helps you run the hover binary interactively as an inferior process. It's designed to work together with dart-mode. For example you can bind hover-run-or-hot-reload to C-M-z in dart-mode. While editing your Dart code, just hit C-M-z to either run your app, or if it's already running, to hot-reload it.

Configuration

VariableDescriptionDefault value
hover-command-pathPath to the hover executable commandtries to use hover if exists in $PATH
hover-flutter-sdk-pathPath to flutter sdk path to find flutter executable commandtries to find flutter executable in $PATH
hover-hot-reload-on-saveOn buffer save, triggers hover hot-reload (if hover is running)nil
hover-screenshot-pathIf non-nil, save hover screenshot on specified folder.project root
hover-screenshot-prefixPrefix for file name on hover-take-screenshot.hover-
hover-observatory-uriHover custom observatory-uri.http://127.0.0.1:50300
hover-clear-buffer-on-hot-restartCalls hover-clear-buffer after a hover-hot-restartnil

Example

The following example uses all available configurations above, you can customize as you wish.

;; Assuming usage with dart-mode
(use-package dart-mode
  :custom
  (dart-sdk-path (concat (getenv "HOME") "/flutter/bin/cache/dark-sdk/")
   dart-format-on-save t))

(use-package hover
  :after dart-mode
  :bind (:map hover-minor-mode-map
              ("C-M-z" . #'hover-run-or-hot-reload)
              ("C-M-x" . #'hover-run-or-hot-restart)
              ("C-M-p" . #'hover-take-screenshot'))
  :init
  (setq hover-flutter-sdk-path (concat (getenv "HOME") "/flutter") ; remove if `flutter` is already in $PATH
        hover-command-path (concat (getenv "GOPATH") "/bin/hover") ; remove if `hover` is already in $PATH
        hover-hot-reload-on-save t
        hover-screenshot-path (concat (getenv "HOME") "/Pictures")
        hover-screenshot-prefix "my-prefix-"
        hover-observatory-uri "http://my-custom-host:50300"
        hover-clear-buffer-on-hot-restart t)
  (hover-minor-mode 1))

Thanks to flutter.el which inspired this project.