-
Notifications
You must be signed in to change notification settings - Fork 1
/
packages.el
82 lines (63 loc) · 2.64 KB
/
packages.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
;;; packages.el --- flow layer packages file for Spacemacs.
;;
;; Copyright (c) 2012-2017 Sylvain Benner & Contributors
;;
;; Author: Steven Rémot <[email protected]>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
;;; Commentary:
;; See the Spacemacs documentation and FAQs for instructions on how to implement
;; a new layer:
;;
;; SPC h SPC layers RET
;;
;;
;; Briefly, each package to be installed or configured by this layer should be
;; added to `flow-packages'. Then, for each package PACKAGE:
;;
;; - If PACKAGE is not referenced by any other Spacemacs layer, define a
;; function `flow/init-PACKAGE' to load and initialize the package.
;; - Otherwise, PACKAGE is already referenced by another Spacemacs layer, so
;; define the functions `flow/pre-init-PACKAGE' and/or
;; `flow/post-init-PACKAGE' to customize the package as it is loaded.
;;; Code:
(defconst flow-packages
'(flow-minor-mode flycheck-flow company-flow)
"The list of Lisp packages required by the flow layer.
Each entry is either:
1. A symbol, which is interpreted as a package to be installed, or
2. A list of the form (PACKAGE KEYS...), where PACKAGE is the
name of the package to be installed or loaded, and KEYS are
any number of keyword-value-pairs.
The following keys are accepted:
- :excluded (t or nil): Prevent the package from being loaded
if value is non-nil
- :location: Specify a custom installation location.
The following values are legal:
- The symbol `elpa' (default) means PACKAGE will be
installed using the Emacs package manager.
- The symbol `local' directs Spacemacs to load the file at
`./local/PACKAGE/PACKAGE.el'
- A list beginning with the symbol `recipe' is a melpa
recipe. See: https://github.com/milkypostman/melpa#recipe-format")
(defun flow/init-flow-minor-mode ()
(use-package flow-minor-mode
:config (progn
(add-hook 'js-mode-hook #'flow-minor-enable-automatically)
(add-hook 'js2-mode-hook #'flow-minor-enable-automatically)
(add-hook 'rjsx-mode-hook #'flow-minor-enable-automatically))))
(defun flow/init-flycheck-flow ()
(use-package flycheck-flow
:init (add-hook 'js-mode-hook #'flycheck-mode)
:config (progn
(flycheck-add-next-checker 'javascript-flow 'javascript-eslint))))
(defun flow/init-company-flow ()
(use-package company-flow
:init (progn
(add-hook 'js-mode-hook #'company-mode)
(eval-after-load 'company
'(add-to-list 'company-backends #'company-flow)))))
;;; packages.el ends here