Fix project mode definitions
This commit is contained in:
parent
22e3baf184
commit
3ac1d382be
10 changed files with 113 additions and 93 deletions
|
@ -43,10 +43,10 @@
|
||||||
;; Frameworks
|
;; Frameworks
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;; (def-project! ansible-mode "ans"
|
(def-project-mode! +data-ansible-mode
|
||||||
;; :modes (yaml-mode)
|
:modes (yaml-mode)
|
||||||
;; :files ("roles/"))
|
:files "roles/")
|
||||||
|
|
||||||
;; (def-project! vagrant "vagrant"
|
(def-project-mode! +data-vagrant-mode
|
||||||
;; :files ("Vagrantfile"))
|
:files "Vagrantfile")
|
||||||
|
|
||||||
|
|
|
@ -165,13 +165,12 @@
|
||||||
|
|
||||||
"REACTIONS" "BODYPARTS_ALL" "RESOURCES_ALL" "COLORS_ALL"))
|
"REACTIONS" "BODYPARTS_ALL" "RESOURCES_ALL" "COLORS_ALL"))
|
||||||
|
|
||||||
;; TODO
|
(def-project-mode! +javascript-screeps-mode
|
||||||
;; (def-project! screeps "screeps"
|
:match "/screeps/.+$"
|
||||||
;; :match "/screeps/.+$"
|
:modes (+javascript-npm-mode))
|
||||||
;; :modes (nodejs-project-mode))
|
|
||||||
|
|
||||||
;; (add-hook! screeps-project-mode
|
(add-hook! '+javascript-screeps-mode-hook
|
||||||
;; (when (eq major-mode 'js2-mode)
|
(when (eq major-mode 'js2-mode)
|
||||||
;; (add-to-list 'flycheck-disabled-checkers 'javascript-jshint)
|
(push 'javascript-jshint flycheck-disabled-checkers)
|
||||||
;; (setq js2-additional-externs (append '("_") screeps-objects screeps-constants))))
|
(setq js2-additional-externs (append '("_") screeps-objects screeps-constants))))
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,17 @@
|
||||||
(unless (executable-find "tern")
|
(unless (executable-find "tern")
|
||||||
(sh "npm -g install tern")))
|
(sh "npm -g install tern")))
|
||||||
|
|
||||||
|
(defvar +javascript-npm-conf (make-hash-table :test 'equal))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +javascript-npm-conf (&optional project-root refresh-p)
|
||||||
|
"Retrieves an alist of this project's 'package.json'. If REFRESH-P is non-nil
|
||||||
|
ignore the cache."
|
||||||
|
(let ((project-root (or project-root (doom-project-root))))
|
||||||
|
(or (and (not refresh-p)
|
||||||
|
(gethash project-root +javascript-npm-conf))
|
||||||
|
(let ((package-file (expand-file-name "package.json" project-root)))
|
||||||
|
(when-let (json (and (file-exists-p package-file)
|
||||||
|
(json-read-file package-file)))
|
||||||
|
(puthash project-root json +javascript-npm-conf))))))
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;; lang/javascript/config.el
|
;; lang/javascript/config.el
|
||||||
|
|
||||||
;; TODO (load! +screeps)
|
(load! +screeps)
|
||||||
|
|
||||||
(def-package! js2-mode
|
(def-package! js2-mode
|
||||||
:mode "\\.js$"
|
:mode "\\.js$"
|
||||||
|
@ -88,15 +88,19 @@
|
||||||
;; Projects
|
;; Projects
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;; (project! npm
|
(def-project-mode! +javascript-npm-mode
|
||||||
;; :modes (web-mode js2-mode)
|
:modes (web-mode js-mode markdown-mode)
|
||||||
;; :files ("package.json")
|
:files "package.json")
|
||||||
;; :config
|
|
||||||
;; (let* ((project-path (doom-project-root))
|
(def-project-mode! +javascript-lb6-mode
|
||||||
;; (hash (gethash project-path npm-conf))
|
:modes (web-mode js-mode nxml-mode markdown-mode)
|
||||||
;; (package-file (expand-file-name "package.json" project-path))
|
:match "\\.lb\\(action\\|ext\\)/"
|
||||||
;; deps)
|
:init
|
||||||
;; (when-let (json (and (not hash) (file-exists-p package-file)
|
;; TODO
|
||||||
;; (ignore-errors (json-read-file package-file))))
|
;; (when IS-MAC
|
||||||
;; (puthash project-path json npm-conf))))
|
;; (set! :build 'launchbar-action '+javascript-lb6-mode
|
||||||
|
;; (lambda ()
|
||||||
|
;; (when-let (dir (f-traverse-upwards (lambda (f) (f-ext? f "lbaction"))))
|
||||||
|
;; (shell-command (format "open '%s'" dir))))))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
|
@ -25,16 +25,14 @@
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; TODO Frameworks
|
;; Frameworks
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;; (def-project-type! love "♥"
|
(def-project-mode! +lua-love-mode
|
||||||
;; :modes (lua-mode markdown-mode json-mode)
|
:modes (lua-mode markdown-mode json-mode)
|
||||||
;; :files ("main.lua" "conf.lua")
|
:files (and "main.lua" "conf.lua")
|
||||||
;; :build ("open -a love.app '%s'" "main.lua"))
|
:init
|
||||||
|
(set! :build 'love2D '+lua-love-mode
|
||||||
;; (def-project-type! hammerspoon "hammer"
|
(lambda ()
|
||||||
;; :modes (lua-mode markdown-mode)
|
(async-shell-command (format "open -a love.app '%s'" (doom-project-root))))))
|
||||||
;; :match "/\\.?hammerspoon/.+\\.lua$"
|
|
||||||
;; :build "open hammerspoon://reload")
|
|
||||||
|
|
||||||
|
|
14
modules/lang/php/autoload.el
Normal file
14
modules/lang/php/autoload.el
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
;;; lang/php/autoload.el
|
||||||
|
|
||||||
|
(defvar +php-composer-conf (make-hash-table :test 'equal))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +php-composer-conf (&optional project-root refresh-p)
|
||||||
|
"Retrieve the contents of composer.json as an alist. If REFRESH-P is non-nil
|
||||||
|
ignore the cache."
|
||||||
|
(let ((project-root (or project-root (doom-project-root))))
|
||||||
|
(or (and (not refresh-p) (gethash project-root +php-composer-conf))
|
||||||
|
(let ((package-file (expand-file-name "composer.json" project-root)))
|
||||||
|
(when-let (data (and (file-exists-p package-file)
|
||||||
|
(json-read-file package-file)))
|
||||||
|
(puthash project-root data +php-composer-conf))))))
|
|
@ -81,22 +81,11 @@
|
||||||
;; Projects
|
;; Projects
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;; (def-project! laravel "laravel"
|
(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 ("artisan" "server.php"))
|
:files (and "artisan" "server.php"))
|
||||||
|
|
||||||
;; (defvar php-composer-conf (make-hash-table :test 'equal))
|
(def-project-mode! +php-composer-mode
|
||||||
;; (def-project! composer "composer"
|
:modes (web-mode php-mode)
|
||||||
;; :modes (web-mode php-mode)
|
:files "composer.json")
|
||||||
;; :files ("composer.json")
|
|
||||||
;; :when
|
|
||||||
;; (lambda (&rest _)
|
|
||||||
;; (let* ((project-path (doom/project-root))
|
|
||||||
;; (hash (gethash project-path php-composer-conf))
|
|
||||||
;; (package-file (expand-file-name "composer.json" project-path))
|
|
||||||
;; deps)
|
|
||||||
;; (awhen (and (not hash) (file-exists-p package-file)
|
|
||||||
;; (json-read-file package-file))
|
|
||||||
;; (puthash project-path it php-composer-conf)))
|
|
||||||
;; t))
|
|
||||||
|
|
||||||
|
|
|
@ -72,10 +72,10 @@
|
||||||
(def-package! company-inf-ruby
|
(def-package! company-inf-ruby
|
||||||
:after inf-ruby)
|
:after inf-ruby)
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; TODO Frameworks
|
;; TODO Frameworks
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;; (def-project! rake "rake"
|
;; (def-project-mode! +ruby-rake-mode
|
||||||
;; :files ("Rakefile"))
|
;; :files "Rakefile")
|
||||||
|
|
||||||
|
|
15
modules/lang/web/autoload/web.el
Normal file
15
modules/lang/web/autoload/web.el
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
;;; lang/web/autoload/web.el
|
||||||
|
|
||||||
|
(defvar +web-bower-conf (make-hash-table :test 'equal))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +web-bower-conf (&optional project-root refresh-p)
|
||||||
|
"Retrieves an alist of this project's 'bower.json'. If REFRESH-P is non-nil
|
||||||
|
ignore the cache."
|
||||||
|
(let ((project-root (or project-root (doom-project-root))))
|
||||||
|
(or (and (not refresh-p)
|
||||||
|
(gethash project-root +web-bower-conf))
|
||||||
|
(let ((package-file (expand-file-name "bower.json" project-root)))
|
||||||
|
(when-let (json (and (file-exists-p package-file)
|
||||||
|
(json-read-file package-file)))
|
||||||
|
(puthash project-root json +web-bower-conf))))))
|
|
@ -5,46 +5,33 @@
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; TODO Frameworks
|
;; Frameworks
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;; (defvar bower-conf (make-hash-table :test 'equal))
|
(def-project-mode! +web-bower-mode
|
||||||
;; (def-project! bower "bower"
|
:files "bower.json")
|
||||||
;; :modes (web-mode js-mode coffee-mode css-mode sass-mode pug-mode)
|
|
||||||
;; :files ("bower.json")
|
|
||||||
;; :when
|
|
||||||
;; (lambda (&rest _)
|
|
||||||
;; (let* ((project-path (doom-project-root))
|
|
||||||
;; (hash (gethash project-path bower-conf))
|
|
||||||
;; (package-file (expand-file-name "bower.json" project-path))
|
|
||||||
;; deps)
|
|
||||||
;; (awhen (and (not hash) (file-exists-p package-file)
|
|
||||||
;; (ignore-errors (json-read-file package-file)))
|
|
||||||
;; (puthash project-path it bower-conf)))
|
|
||||||
;; t))
|
|
||||||
|
|
||||||
;; (def-project! angularjs "angular"
|
(def-project-mode! +web-angularjs-mode
|
||||||
;; :modes (nodejs-project-mode bower-project-mode)
|
:modes (+javascript-npm-mode +web-bower-mode)
|
||||||
;; :when
|
:when
|
||||||
;; (lambda (&rest _)
|
(and (or (bound-and-true-p +web-bower-mode)
|
||||||
;; (let* ((project (doom-project-root))
|
(bound-and-true-p +javascript-npm-mode))
|
||||||
;; (bower (gethash project bower-conf))
|
(let* ((project-root (doom-project-root))
|
||||||
;; (npm (gethash project npm-conf))
|
(bower (and +web-bower-mode (+web-bower-conf project-root)))
|
||||||
;; (deps (append (cdr-safe (assq 'dependencies bower))
|
(npm (and +javascript-npm-mode (+javascript-npm-conf project-root))))
|
||||||
;; (cdr-safe (assq 'dependencies npm))
|
(assq 'angular (append (cdr-safe (assq 'dependencies bower))
|
||||||
;; (cdr-safe (assq 'devDependencies bower))
|
(cdr-safe (assq 'dependencies npm))
|
||||||
;; (cdr-safe (assq 'devDependencies npm)))))
|
(cdr-safe (assq 'devDependencies bower))
|
||||||
;; (assq 'angular deps))))
|
(cdr-safe (assq 'devDependencies npm)))))))
|
||||||
|
|
||||||
;; (def-project! jekyll ":{"
|
(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)
|
||||||
;; :match "/\\(\\(css\\|_\\(layouts\\|posts\\|sass\\)\\)/.+\\|.+.html\\)$"
|
:files (and "config.yml" (or "_layouts/" "_posts/"))
|
||||||
;; :files ("config.yml" "_layouts/")
|
:init
|
||||||
;; (add-hook! mode
|
(add-hook! '+web-jekyll-mode-hook
|
||||||
;; (when (eq major-mode 'web-mode)
|
(when (eq major-mode 'web-mode)
|
||||||
;; (web-mode-set-engine "django"))))
|
(web-mode-set-engine "django"))))
|
||||||
|
|
||||||
;; (def-project! wordpress "wp"
|
(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)
|
||||||
;; :match "/wp-\\(\\(content\\|admin\\|includes\\)/\\)?.+$"
|
:files (or "wp-config.php" "wp-config-sample.php"))
|
||||||
;; :files ("wp-config.php" "wp-content/"))
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue