core-lib: add auto-minor-mode, revise def-project-mode!

- Adds the auto-minor-mode package to replace our in-house
  implementation.
- Merges associate! into the def-project-mode! macro because associate!
  on its own is less useful than auto-minor-mode-alist,
  auto-minor-mode-magic-alist or hooks.
- Changes the semantics of :modes and :add-hooks properties of
  def-project-mode!. Its arguments are evaluated as is; lists will need
  to be quoted.

squash! core-lib: remove associate! macro
This commit is contained in:
Henrik Lissner 2019-07-21 14:49:09 +02:00
parent 3404899ec3
commit 0a84d2f0a9
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
15 changed files with 88 additions and 137 deletions

View file

@ -22,7 +22,7 @@
;; Framework-based minor-modes
(def-project-mode! +web-jekyll-mode
:modes (web-mode js-mode coffee-mode css-mode haml-mode pug-mode)
:modes '(web-mode js-mode coffee-mode css-mode haml-mode pug-mode)
:files (and (or "_config.yml" "_config.toml")
(or "_layouts/" "_posts/"))
:on-enter
@ -30,18 +30,18 @@
(web-mode-set-engine "django")))
(def-project-mode! +web-wordpress-mode
:modes (php-mode web-mode css-mode haml-mode pug-mode)
:modes '(php-mode web-mode css-mode haml-mode pug-mode)
:files (or "wp-config.php" "wp-config-sample.php"))
(when (featurep! :lang javascript)
(def-project-mode! +web-angularjs-mode
:modes (+javascript-npm-mode)
:modes '(+javascript-npm-mode)
:when (+javascript-npm-dep-p 'angular))
(def-project-mode! +web-react-mode
:modes (+javascript-npm-mode)
:modes '(+javascript-npm-mode)
:when (+javascript-npm-dep-p 'react))
(def-project-mode! +web-phaser-mode
:modes (+javascript-npm-mode)
:modes '(+javascript-npm-mode)
:when (+javascript-npm-dep-p '(or phaser phaser-ce))))