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:
parent
3404899ec3
commit
0a84d2f0a9
15 changed files with 88 additions and 137 deletions
|
@ -62,5 +62,5 @@
|
|||
(add-to-list 'auto-mode-alist '("\\.shader$" . shader-mode))
|
||||
|
||||
(def-project-mode! +csharp-unity-mode
|
||||
:modes (csharp-mode shader-mode)
|
||||
:modes '(csharp-mode shader-mode)
|
||||
:files (and "Assets" "Library/MonoManager.asset" "Library/ScriptMapper")))
|
||||
|
|
|
@ -38,3 +38,4 @@
|
|||
(def-project-mode! +data-vagrant-mode
|
||||
:files ("Vagrantfile"))
|
||||
|
||||
|
||||
|
|
|
@ -125,18 +125,16 @@ This marks a foldable marker for `outline-minor-mode' in elisp buffers.")
|
|||
(advice-add 'helpful-update :after #'elisp-demos-advice-helpful-update))
|
||||
|
||||
|
||||
(def-package! buttercup
|
||||
:defer t
|
||||
:minor ("/test[/-].+\\.el$" . buttercup-minor-mode)
|
||||
:config (set-yas-minor-mode! 'buttercup-minor-mode))
|
||||
|
||||
|
||||
;;
|
||||
;;; Project modes
|
||||
|
||||
(def-project-mode! +emacs-lisp-ert-mode
|
||||
:modes (emacs-lisp-mode)
|
||||
:modes '(emacs-lisp-mode)
|
||||
:match "/test[/-].+\\.el$"
|
||||
:add-hooks (overseer-enable-mode))
|
||||
|
||||
(associate! buttercup-minor-mode
|
||||
:modes (emacs-lisp-mode)
|
||||
:match "/test[/-].+\\.el$")
|
||||
|
||||
(after! buttercup
|
||||
(set-yas-minor-mode! 'buttercup-minor-mode))
|
||||
|
||||
:add-hooks '(overseer-enable-mode))
|
||||
|
|
|
@ -11,3 +11,5 @@
|
|||
|
||||
(when (featurep! :tools flycheck)
|
||||
(package! flycheck-cask))
|
||||
|
||||
(package! buttercup)
|
||||
|
|
|
@ -250,9 +250,9 @@ to tide."
|
|||
;;; Projects
|
||||
|
||||
(def-project-mode! +javascript-npm-mode
|
||||
:modes (html-mode css-mode web-mode typescript-mode js2-mode rjsx-mode json-mode markdown-mode)
|
||||
:modes '(html-mode css-mode web-mode typescript-mode js2-mode rjsx-mode json-mode markdown-mode)
|
||||
:when (locate-dominating-file default-directory "package.json")
|
||||
:add-hooks (+javascript|add-node-modules-path npm-mode))
|
||||
:add-hooks '(+javascript|add-node-modules-path npm-mode))
|
||||
|
||||
(def-project-mode! +javascript-gulp-mode
|
||||
:when (locate-dominating-file default-directory "gulpfile.js"))
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
;;; Frameworks
|
||||
|
||||
(def-project-mode! +lua-love-mode
|
||||
:modes (moonscript-mode lua-mode markdown-mode json-mode)
|
||||
:modes '(moonscript-mode lua-mode markdown-mode json-mode)
|
||||
:when #'+lua-love-project-root
|
||||
:on-load
|
||||
(progn
|
||||
|
|
|
@ -96,10 +96,9 @@
|
|||
;; Projects
|
||||
|
||||
(def-project-mode! +php-laravel-mode
|
||||
:modes (php-mode yaml-mode web-mode nxml-mode js2-mode scss-mode)
|
||||
:modes '(php-mode yaml-mode web-mode nxml-mode js2-mode scss-mode)
|
||||
:files (and "artisan" "server.php"))
|
||||
|
||||
(def-project-mode! +php-composer-mode
|
||||
:modes (web-mode php-mode)
|
||||
:modes '(web-mode php-mode)
|
||||
:files ("composer.json"))
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ called.")
|
|||
(def-package! nose
|
||||
:commands nose-mode
|
||||
:preface (defvar nose-mode-map (make-sparse-keymap))
|
||||
:init (associate! nose-mode :match "/test_.+\\.py$" :modes (python-mode))
|
||||
:minor-mode ("/test_.+\\.py$" . nose-mode)
|
||||
:config
|
||||
(set-popup-rule! "^\\*nosetests" :size 0.4 :select nil)
|
||||
(set-yas-minor-mode! 'nose-mode)
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -20,6 +20,6 @@
|
|||
:mode "\\.j2$")
|
||||
|
||||
(def-project-mode! +ansible-yaml-mode
|
||||
:modes (yaml-mode)
|
||||
:add-hooks (ansible ansible-auto-decrypt-encrypt ansible-doc-mode)
|
||||
:modes '(yaml-mode)
|
||||
:add-hooks '(ansible ansible-auto-decrypt-encrypt ansible-doc-mode)
|
||||
:files ("roles/"))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue