emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master dbb29d7: Add info-lookup help for gdb-script-mode


From: Tom Tromey
Subject: [Emacs-diffs] master dbb29d7: Add info-lookup help for gdb-script-mode
Date: Tue, 17 Jan 2017 22:40:28 +0000 (UTC)

branch: master
commit dbb29d7eb428dd53617d31a9cc159d889deb1e8e
Author: Tom Tromey <address@hidden>
Commit: Tom Tromey <address@hidden>

    Add info-lookup help for gdb-script-mode
    
    Bug#25464:
    * lisp/info-look.el (info-lookup-guess-gdb-script-symbol): New
    function.
    Add help for gdb-script-mode.
---
 lisp/info-look.el |   29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/lisp/info-look.el b/lisp/info-look.el
index 1f3c508..694bcb4 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -43,6 +43,7 @@
 ;;; Code:
 
 (require 'info)
+(require 'subr-x)
 
 (defgroup info-lookup nil
   "Major mode sensitive help agent."
@@ -648,6 +649,26 @@ Return nil if there is nothing appropriate in the buffer 
near point."
            (buffer-substring-no-properties beg end)))))
     (error nil)))
 
+(defun info-lookup-guess-gdb-script-symbol ()
+  "Get symbol at point in GDB script buffers."
+  (condition-case nil
+      (save-excursion
+        (back-to-indentation)
+        ;; Try to find the current line's full command in the index;
+        ;; and default to the longest subset that is found.
+        (when (looking-at "[-a-z]+\\(\\s-[-a-z]+\\)*")
+          (let ((str-list (split-string (match-string-no-properties 0)
+                                        "\\s-+" t))
+                (completions (info-lookup->completions 'symbol
+                                                       'gdb-script-mode)))
+            (catch 'result
+              (while str-list
+                (let ((str (string-join str-list " ")))
+                  (when (assoc str completions)
+                    (throw 'result str))
+                  (nbutlast str-list)))))))
+    (error nil)))
+
 ;;;###autoload
 (defun info-complete-symbol (&optional mode)
   "Perform completion on symbol preceding point."
@@ -1051,6 +1072,14 @@ Return nil if there is nothing appropriate in the buffer 
near point."
  :mode 'help-mode
  :regexp "[^][()`'‘’,:\" \t\n]+"
  :other-modes '(emacs-lisp-mode))
+
+(info-lookup-maybe-add-help
+ :mode 'gdb-script-mode
+ :ignore-case nil
+ :regexp "\\([-a-z]+\\(\\s-+[-a-z]+\\)*\\)"
+ :doc-spec '(("(gdb)Command and Variable Index" nil
+              nil nil))
+ :parse-rule 'info-lookup-guess-gdb-script-symbol)
 
 (provide 'info-look)
 



reply via email to

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