emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/drupal-mode e96a1f70f4 066/308: Added support for "Drush u


From: ELPA Syncer
Subject: [nongnu] elpa/drupal-mode e96a1f70f4 066/308: Added support for "Drush utilities for Emacs users".
Date: Tue, 25 Jan 2022 10:59:29 -0500 (EST)

branch: elpa/drupal-mode
commit e96a1f70f4abc4f6c50eaf6655ed79077f4afdaf
Author: Arne Jørgensen <arne@arnested.dk>
Commit: Arne Jørgensen <arne@arnested.dk>

    Added support for "Drush utilities for Emacs users".
---
 README.md             |  8 +++++++
 drupal/emacs-drush.el | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
 drupal/etags.el       |  1 +
 drupal/gtags.el       |  1 +
 4 files changed, 76 insertions(+)

diff --git a/README.md b/README.md
index df31b68d2c..b27d1a9062 100644
--- a/README.md
+++ b/README.md
@@ -133,6 +133,14 @@ support in Emacs then Drupal mode will set `gtags-rootdir` 
to your
 DRUPAL_ROOT.
 
 
+### Drush utilities for Emacs users
+
+If
+[Drush utilities for Emacs users](http://drupal.org/project/emacs_drush)
+is installed Drupal mode will update existing tag files in your
+DRUPAL_ROOT after saving a buffer.
+
+
 ### ispell
 
 If ispell.el is loaded in Emacs then Drupal mode will set the language
diff --git a/drupal/emacs-drush.el b/drupal/emacs-drush.el
new file mode 100644
index 0000000000..df7d808682
--- /dev/null
+++ b/drupal/emacs-drush.el
@@ -0,0 +1,66 @@
+;;; drupal/emacs-drush.el --- Drupal-mode support for Drush utilities for 
Emacs users
+
+;; Copyright (C) 2012 Arne Jørgensen
+
+;; Author: Arne Jørgensen <arne@arnested.dk>
+
+;; This file is part of Drupal mode.
+
+;; Drupal mode is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published
+;; by the Free Software Foundation, either version 3 of the License,
+;; or (at your option) any later version.
+
+;; Drupal mode is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with Drupal mode.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; You need to install `Drush utilities for Emacs users'
+;; <http://drupal.org/project/emacs_drush> for this to work.
+
+;; If `Drush utilities for Emacs users' is installed it will run
+;; `drush etags' on `after-save-hook' if a TAGS file is present in
+;; DRUPAL_ROOT and it will run `drush gtags' on `after-save-hook' if a
+;; GTAGS file is present in DRUPAL_ROOT.
+
+;;; Code:
+
+(defcustom drupal/emacs-drush-update-tags-after-save
+  (and drupal-drush-program
+       (zerop (call-process drupal-drush-program nil nil nil "help" "etags")))
+  "Use `Drush utilities for Emacs users' to run etags/gtags after save.
+On `after-save-hook' run `drush etags' or `drush gtags'.
+
+Requires `Drush utilities for Emacs users' to be installed."
+  :type `(choice 
+          (const :tag "Yes" t)
+          (const :tag "No" nil))
+  :link '(url-link :tag "Drush utilities for Emacs users" 
"http://drupal.org/project/emacs_drush";)
+  :group 'drupal)
+
+(defun drupal/emacs-drush-run-after-save ()
+  "Run drush etags/gtags on after-save-hook."
+  (when (and drupal/emacs-drush-update-tags-after-save
+             (boundp 'drupal-rootdir)
+             drupal-drush-program)
+    (when (file-exists-p (concat drupal-rootdir "TAGS"))
+      (call-process drupal-drush-program nil 0 nil "etags"))
+    (when (file-exists-p (concat drupal-rootdir "GTAGS"))
+      (call-process drupal-drush-program nil 0 nil "gtags"))))
+
+(defun drupal/emacs-drush-enable ()
+  (add-hook 'after-save-hook #'drupal/emacs-drush-run-after-save nil t))
+
+(add-hook 'drupal-mode-hook #'drupal/emacs-drush-enable)
+
+
+
+(provide 'drupal/emacs-drush)
+
+;;; drupal/emacs-drush.el ends here
diff --git a/drupal/etags.el b/drupal/etags.el
index 3df8b28439..306474b621 100644
--- a/drupal/etags.el
+++ b/drupal/etags.el
@@ -26,6 +26,7 @@
 ;;; Code:
 
 (require 'etags)
+(require 'drupal/emacs-drush)
 
 (defun drupal/etags-enable ()
   "Setup TAGS file for etags if it exists in DRUPAL_ROOT."
diff --git a/drupal/gtags.el b/drupal/gtags.el
index 87da53f6ac..21ad5cb536 100644
--- a/drupal/gtags.el
+++ b/drupal/gtags.el
@@ -26,6 +26,7 @@
 ;;; Code:
 
 (require 'gtags)
+(require 'drupal/emacs-drush)
 
 (defun drupal/gtags-enable ()
   "Setup rootdir for gtags to be DRUPAL_ROOT."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]