Mercurial > emacs
changeset 94496:38eb904fa638
* progmodes/octave-mod.el (octave-help): New function.
* progmodes/octave-hlp.el: Delete.
* info-look.el (octave-mode): Add operator index.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 30 Apr 2008 08:48:02 +0000 |
parents | 027a58c5f305 |
children | 2f4d6806f156 |
files | lisp/ChangeLog lisp/info-look.el lisp/progmodes/octave-hlp.el lisp/progmodes/octave-mod.el |
diffstat | 4 files changed, 16 insertions(+), 150 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Wed Apr 30 08:13:09 2008 +0000 +++ b/lisp/ChangeLog Wed Apr 30 08:48:02 2008 +0000 @@ -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>
--- a/lisp/info-look.el Wed Apr 30 08:13:09 2008 +0000 +++ b/lisp/info-look.el Wed Apr 30 08:48:02 2008 +0000 @@ -881,10 +881,11 @@ (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)
--- a/lisp/progmodes/octave-hlp.el Wed Apr 30 08:13:09 2008 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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
--- a/lisp/progmodes/octave-mod.el Wed Apr 30 08:13:09 2008 +0000 +++ b/lisp/progmodes/octave-mod.el Wed Apr 30 08:48:02 2008 +0000 @@ -31,13 +31,10 @@ ;; 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 @@ (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))) ;;; Miscellaneous useful functions (defun octave-describe-major-mode () @@ -1259,8 +1262,7 @@ (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 @@ (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 @@ '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)