* progmodes/octave-mod.el (octave-help): New function.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 30 Apr 2008 08:48:02 +0000 (08:48 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 30 Apr 2008 08:48:02 +0000 (08:48 +0000)
* progmodes/octave-hlp.el: Delete.
* info-look.el (octave-mode): Add operator index.

lisp/ChangeLog
lisp/info-look.el
lisp/progmodes/octave-hlp.el [deleted file]
lisp/progmodes/octave-mod.el

index 1f40087..1ccaa79 100644 (file)
@@ -1,5 +1,9 @@
 2008-04-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * progmodes/octave-mod.el (octave-help): New function.
+       * progmodes/octave-hlp.el: Delete.
+       * info-look.el (octave-mode): Add operator index.
+
        * vc.el (vc-checkout): Typo.
 
 2008-04-30  Dan Nicolaescu  <dann@ics.uci.edu>
index a5d9754..a0d9b10 100644 (file)
@@ -881,10 +881,11 @@ Return nil if there is nothing appropriate in the buffer near point."
 
 (info-lookup-maybe-add-help
  :mode 'octave-mode
- :regexp "[_a-zA-Z0-9]+"
+ :regexp "[_a-zA-Z0-9]+\\|\\s.+\\|[-!=^|*/.\\,><~&+]\\{1,3\\}\\|[][();,\"']"
  :doc-spec '(("(octave)Function Index" nil
              "^ -+ [^:]+:[ ]+\\(\\[[^=]*=[ ]+\\)?" nil)
             ("(octave)Variable Index" nil "^ -+ [^:]+:[ ]+" nil)
+             ("(octave)Operator Index" nil nil nil)
             ;; Catch lines of the form "xyz statement"
             ("(octave)Concept Index"
              (lambda (item)
diff --git a/lisp/progmodes/octave-hlp.el b/lisp/progmodes/octave-hlp.el
deleted file mode 100644 (file)
index 314a344..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-;;; octave-hlp.el --- getting help on Octave symbols using info
-
-;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-;; Free Software Foundation, Inc.
-
-;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
-;; Author: John Eaton <jwe@bevo.che.wisc.edu>
-;; Maintainer: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
-;; Keywords: languages
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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, or (at your option)
-;; any later version.
-
-;; GNU Emacs 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 GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Provides the command `octave-help' which allows index lookup of a
-;; symbol in the Octave-related info files, as specified by the list
-;; `octave-help-files'.
-
-;; Other features may be added in future versions.
-
-;;; Code:
-
-(require 'octave-mod)
-(require 'info)
-
-(defvar octave-help-files '("octave")
-  "List of info files with documentation for Octave.
-Default is (\"octave\").")
-
-(defvar octave-help-lookup-alist nil
-  "Alist of Octave index entries for lookup.")
-
-(defvar octave-help-completion-alist nil
-  "Alist of Octave index entries for completion.
-The entries are of the form (VAR . VAR), where VAR runs through all
-different keys in `octave-help-lookup-alist'.")
-
-;;;###autoload
-(defun octave-help (key)
-  "Get help on Octave symbols from the Octave info files.
-Look up KEY in the function, operator and variable indices of the files
-specified by `octave-help-files'.
-If KEY is not a string, prompt for it with completion."
-  (interactive
-   (list
-    (completing-read (format "Describe Octave symbol: ")
-                    (octave-help-get-completion-alist)
-                    nil t)))
-  (if (get-buffer "*info*")
-      (set-buffer "*info*"))
-  (if (zerop (length key))
-      (Info-find-node (car octave-help-files) "Top")
-    (let ((alist (copy-alist (octave-help-get-lookup-alist)))
-         entry matches)
-      (while (setq entry (car alist))
-       (if (string-match key (car entry))
-           (add-to-list 'matches entry))
-       (setq alist (cdr alist)))
-      (if matches
-         (progn
-           (setq Info-index-alternatives matches)
-           (Info-index-next 0))))))
-
-(defun octave-help-get-lookup-alist ()
-  "Build the index lookup alist from all Octave info files.
-The files specified by `octave-help-files' are searched."
-  (if octave-help-lookup-alist
-      ()
-    (message "Building help lookup alist...")
-    (let ((files octave-help-files) file key node)
-      (save-window-excursion
-       (while files
-         (setq file (car files))
-         (Info-goto-node (concat "(" file ")"))
-         (condition-case nil
-             (progn
-               (Info-index "")
-               (while
-                   (progn
-                     (while (re-search-forward
-                             "^\\* \\([^(:]+\\)[^:]*: *\\(.+\\)\\.$"
-                             nil t)
-                       (setq key (match-string 1)
-                             node (concat "(" file ")" (match-string 2)))
-                       (and (string-match "\\(.*\\>\\) *$" key)
-                            (setq key (replace-match "\\1" t nil key)))
-                       (add-to-list 'octave-help-lookup-alist
-                                    (list key
-                                          node
-                                          (concat (concat "(" file ")")
-                                                  Info-current-node)
-                                          0)))
-                     (and (setq node (Info-extract-pointer "next" t))
-                          (string-match
-                           (concat "\\(Function\\|Operator\\|Variable\\) "
-                                   "\\<Index\\>")
-                           node)))
-                 (Info-goto-node node)))
-           (error nil))
-         (setq files (cdr files)))))
-    (message "Building help lookup alist...done"))
-  octave-help-lookup-alist)
-
-(defun octave-help-get-completion-alist ()
-  "Build the index completion alist from all Octave info files.
-The files specified by `octave-help-files' are searched."
-  (if octave-help-completion-alist
-      ()
-    (message "Building help completion alist...")
-    (let ((alist (octave-help-get-lookup-alist)) entry)
-      (while alist
-       (setq entry (car alist))
-       (add-to-list 'octave-help-completion-alist
-                    (cons (car entry) (car entry)))
-       (setq alist (cdr alist))))
-    (message "Building help completion alist...done"))
-  octave-help-completion-alist)
-
-;;; provide ourself
-
-(provide 'octave-hlp)
-
-;; arch-tag: df5ef8fa-76c9-44e5-9835-cb5a502c6282
-;;; octave-hlp.el ends here
index 2619c48..ce18a70 100644 (file)
 ;; It defines Octave mode, a major mode for editing
 ;; Octave code.
 
-;; The file octave-hlp.el provides `octave-help', a facility for looking up
-;; documentation on a symbol in the Octave info files.
-
 ;; The file octave-inf.el contains code for interacting with an inferior
 ;; Octave process using comint.
 
-;; See the documentation of `octave-mode', `octave-help' and
+;; See the documentation of `octave-mode' and
 ;; `run-octave' for further information on usage and customization.
 
 ;;; Code:
@@ -544,6 +541,12 @@ including a reproducible test case and send the message."
   (octave-add-octave-menu)
   (octave-initialize-completions)
   (run-mode-hooks 'octave-mode-hook))
+
+(defun octave-help ()
+  "Get help on Octave symbols from the Octave info files.
+Look up symbol in the function, operator and variable indices of the info files."
+  (let ((info-lookup-mode 'octave-mode))
+    (call-interactively 'info-lookup-symbol)))
 \f
 ;;; Miscellaneous useful functions
 (defun octave-describe-major-mode ()
@@ -1259,8 +1262,7 @@ variables."
               (display-completion-list list string))
             (message "Hit space to flush")
             (let (key first)
-              (if (save-excursion
-                    (set-buffer (get-buffer "*Completions*"))
+              (if (with-current-buffer (get-buffer "*Completions*")
                     (setq key (read-key-sequence nil)
                           first (aref key 0))
                     (and (consp first) (consp (event-start first))
@@ -1427,8 +1429,7 @@ entered without parens)."
   (let ((proc inferior-octave-process)
        (string (buffer-substring-no-properties beg end))
        line)
-    (save-excursion
-      (set-buffer inferior-octave-buffer)
+    (with-current-buffer inferior-octave-buffer
       (setq inferior-octave-output-list nil)
       (while (not (string-equal string ""))
        (if (string-match "\n" string)
@@ -1517,12 +1518,11 @@ code line."
      'octave-comment-char
      'octave-continuation-offset
      'octave-continuation-string
-     'octave-help-files
      'octave-send-echo-input
      'octave-send-line-auto-forward
      'octave-send-show-buffer))))
 
-;;; provide ourself
+;; provide ourself
 
 (provide 'octave-mod)