[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/drupal-mode 135c5f669e 197/308: Add interface with gtags v
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/drupal-mode 135c5f669e 197/308: Add interface with gtags via `ggtags.el' |
Date: |
Tue, 25 Jan 2022 10:59:47 -0500 (EST) |
branch: elpa/drupal-mode
commit 135c5f669e9ac8bc11ae8e21f18b0133f79dafc7
Author: joddie <jonxfield@gmail.com>
Commit: joddie <jonxfield@gmail.com>
Add interface with gtags via `ggtags.el'
---
drupal-mode.el | 1 +
drupal/ggtags.el | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+)
diff --git a/drupal-mode.el b/drupal-mode.el
index c8cb7a8037..298734179a 100644
--- a/drupal-mode.el
+++ b/drupal-mode.el
@@ -774,6 +774,7 @@ mode-hook."
(eval-after-load 'autoinsert '(require 'drupal/autoinsert))
(eval-after-load 'etags '(require 'drupal/etags))
(eval-after-load 'gtags '(require 'drupal/gtags))
+(eval-after-load 'ggtags '(require 'drupal/ggtags))
(eval-after-load 'ispell '(require 'drupal/ispell))
(eval-after-load 'flymake-phpcs '(require 'drupal/flymake-phpcs))
(eval-after-load 'flycheck '(require 'drupal/flycheck))
diff --git a/drupal/ggtags.el b/drupal/ggtags.el
new file mode 100644
index 0000000000..bbb0c34ffc
--- /dev/null
+++ b/drupal/ggtags.el
@@ -0,0 +1,62 @@
+;;; drupal/ggtags.el --- Drupal-mode support for ggtags.el
+
+;; Copyright (C) 2012, 2013, 2014 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:
+
+;; Enable drupal-mode support for gtags.
+
+;;; Code:
+
+(require 'ggtags)
+
+(defvar drupal/ggtags-global-command (executable-find "global")
+ "Name of the GNU GLOBAL `global' executable.
+Include path to the executable if it is not in your $PATH.")
+
+(defun drupal/ggtags-enable ()
+ "Setup rootdir for gtags."
+ (let ((dir (locate-dominating-file (or buffer-file-name default-directory)
"GTAGS")))
+ (when dir
+ (ggtags-mode 1)
+ ;; Connect `drupal-symbol-collection' to `ggtags-mode'
+ ;; completion
+ (setq drupal-symbol-collection
+ (lambda () (all-completions "" ggtags-completion-table)))
+ (setq drupal-get-function-args #'drupal/ggtags-get-function-args))))
+
+(defun drupal/ggtags-get-function-args (symbol &optional version)
+ "Get function arguments from GNU GLOBAL."
+ (when (and (boundp 'ggtags-project-root)
+ (file-exists-p (expand-file-name "GTAGS" ggtags-project-root)))
+ (with-temp-buffer
+ (ignore-errors
+ (call-process drupal/ggtags-global-command nil t nil "-x" symbol)
+ (goto-char (point-min))
+ (search-forward-regexp "[^(]*(\\(.*\\))[^)]*" nil t)
+ (match-string-no-properties 1)))))
+
+(add-hook 'drupal-mode-hook #'drupal/ggtags-enable)
+
+
+
+(provide 'drupal/ggtags)
+
+;;; drupal/ggtags.el ends here
- [nongnu] elpa/drupal-mode 4f54f8bcb8 134/308: Fixed documentation., (continued)
- [nongnu] elpa/drupal-mode 4f54f8bcb8 134/308: Fixed documentation., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode bd22697642 135/308: Mark `drupal/flymake-phpcs-standard' as obsolete., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 3ba088c812 139/308: No need for make-local-variable., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode a6a4bfa842 144/308: No quoting necessary, says wiser minds than mine., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 996081be40 157/308: Merge branch 'release/0.3.0', ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 97b60197d0 151/308: Improved rootdir detection for etags and gtags., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 8733eb2d1e 160/308: Bumped versio to 0.3.1., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 31c2b672aa 168/308: Added Api.drupalize.me as `drupal-search-url` option., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 6bb266bc11 172/308: Fixed typo in latest commit., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 2b71509ac3 171/308: Used `(buffer-name)` as fallback if `buffer-file-name` us not set., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 135c5f669e 197/308: Add interface with gtags via `ggtags.el',
ELPA Syncer <=
- [nongnu] elpa/drupal-mode b929895d51 184/308: Added own implementation of flymake init and temp names., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 7402b9e9fb 201/308: Merge pull request #43 from arnested/flycheck-update, ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 60b231a125 202/308: Bumped version to 0.5.0., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode c83705239e 214/308: Merge pull request #50 from kaaresl/develop, ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 5911ac2158 211/308: Fixed bad indentation., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 76199a3c68 243/308: Bump version number to 0.6.0., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 6fbdf7946b 241/308: Fixed getting Drupal site temp folder., ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode d88b39e8f5 262/308: Fixed travis.yml, ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 3cae8bea76 267/308: Merge pull request #70 from arnested/api-skeleton, ELPA Syncer, 2022/01/25
- [nongnu] elpa/drupal-mode 1545d07f0d 265/308: Use drupal/phpcs-standard in drupal-phpcs checker, ELPA Syncer, 2022/01/25