changeset 47479:c25e0ce03c50

From Stefan Monnier Add a \ in front of open-paren-in-column-0 in docstrings. Otherwise indentation and font-lock get confused. (idlwave-function-menu): Use defalias so the funs are called interactively. Don't rely on knowledge about which Emacs provides imenu or func-menu. (idlwave-calculate-cont-indent): Fix typo. (idlwave-font-lock-keywords-*): Don't use setq on a defconst. Remove unused variables.
author J.D. Smith <jdsmith@as.arizona.edu>
date Fri, 13 Sep 2002 22:19:48 +0000
parents 62ec3a480410
children 0d4291124ff0
files lisp/progmodes/idlwave.el
diffstat 1 files changed, 39 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/idlwave.el	Fri Sep 13 20:22:29 2002 +0000
+++ b/lisp/progmodes/idlwave.el	Fri Sep 13 22:19:48 2002 +0000
@@ -5,7 +5,7 @@
 ;;         Chris Chase <chase@att.com>
 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
 ;; Version: 4.15
-;; Date: $Date: 2002/09/12 16:31:50 $
+;; Date: $Date: 2002/09/12 16:59:24 $
 ;; Keywords: languages
 
 ;; This file is part of GNU Emacs.
@@ -360,7 +360,7 @@
 Possible values:
 nil       Never
 t         All available
-(...)     A list of circumstances. Allowed members are:
+\(...)     A list of circumstances. Allowed members are:
            find-file       Add info for new IDLWAVE buffers.
            save-buffer     Update buffer info when buffer is saved
            kill-buffer     Remove buffer info when buffer gets killed
@@ -686,7 +686,7 @@
 This variable allows you to configure IDLWAVE's method and
 method-keyword completion behavior.  Its value is an alist, which
 should contain at least two elements: (method-default . VALUE) and
-(keyword-default . VALUE), where VALUE is either t or nil.  These
+\(keyword-default . VALUE), where VALUE is either t or nil.  These
 specify if the class should be found during method and keyword
 completion, respectively.
 
@@ -734,7 +734,7 @@
 (defcustom idlwave-class-arrow-face 'bold
   "*Face to highlight object operator arrows `->' which carry a class property.
 When IDLWAVE stores a class name as text property on an object arrow
-(see variable `idlwave-store-inquired-class', it highlights the arrow
+\(see variable `idlwave-store-inquired-class', it highlights the arrow
 with this font in order to remind the user that this arrow is special."
   :group 'idlwave-completion
   :type 'symbol)
@@ -1095,7 +1095,7 @@
   :type 'boolean)
 
 (defcustom idlwave-default-font-lock-items 
-  '(pros-and-functions batch-files idl-keywords label goto
+  '(pros-and-functions batch-files idlwave-idl-keywords label goto
 		       common-blocks class-arrows)
   "Items which should be fontified on the default fontification level 2.
 IDLWAVE defines 3 levels of fontification.  Level 1 is very little, level 3
@@ -1105,7 +1105,7 @@
 
 pros-and-functions   Procedure and Function definitions
 batch-files          Batch Files
-idl-keywords         IDL Keywords
+idlwave-idl-keywords IDL Keywords
 label                Statement Labels
 goto                 Goto Statements
 common-blocks        Common Blocks
@@ -1117,16 +1117,16 @@
   :type '(set
 	  :inline t :greedy t
 	  (const :tag "Procedure and Function definitions" pros-and-functions)
-	  (const :tag "Batch Files"                        batch-files)
-	  (const :tag "IDL Keywords (reserved words)"      idl-keywords)
-	  (const :tag "Statement Labels"                   label)
-	  (const :tag "Goto Statements"                    goto)
-	  (const :tag "Tags in Structure Definition"       structtag)
-	  (const :tag "Structure Name"                     structname)
-	  (const :tag "Common Blocks"                      common-blocks)
-	  (const :tag "Keyword Parameters"                 keyword-parameters)
-	  (const :tag "System Variables"                   system-variables)
-	  (const :tag "FIXME: Warning"                     fixme)
+	  (const :tag "Batch Files"                       batch-files)
+	  (const :tag "IDL Keywords (reserved words)"     idlwave-idl-keywords)
+	  (const :tag "Statement Labels"                  label)
+	  (const :tag "Goto Statements"                   goto)
+	  (const :tag "Tags in Structure Definition"      structtag)
+	  (const :tag "Structure Name"                    structname)
+	  (const :tag "Common Blocks"                     common-blocks)
+	  (const :tag "Keyword Parameters"                keyword-parameters)
+	  (const :tag "System Variables"                  system-variables)
+	  (const :tag "FIXME: Warning"                    fixme)
 	  (const :tag "Object Arrows with class property " class-arrows)))
 
 (defcustom idlwave-mode-hook nil
@@ -1155,15 +1155,6 @@
 ;;; Simon Marshall <simon@gnu.ai.mit.edu>
 ;;; and Carsten Dominik...
 
-(defconst idlwave-font-lock-keywords-1 nil
-  "Subdued level highlighting for IDLWAVE mode.")
-
-(defconst idlwave-font-lock-keywords-2 nil
-  "Medium level highlighting for IDLWAVE mode.")
-
-(defconst idlwave-font-lock-keywords-3 nil
-  "Gaudy level highlighting for IDLWAVE mode.")
-
 ;; The following are the reserved words in IDL.  Maybe we should
 ;; highlight some more stuff as well?       
 ;; Procedure declarations.  Fontify keyword plus procedure name.
@@ -1191,13 +1182,7 @@
   ;;	   "\\)\\>")))
   "\\<\\(and\\|b\\(egin\\|reak\\)\\|c\\(ase\\|o\\(mpile_opt\\|ntinue\\)\\)\\|do\\|e\\(lse\\|nd\\(case\\|else\\|for\\|if\\|rep\\|switch\\|while\\)?\\|q\\)\\|for\\(ward_function\\)?\\|g\\(oto\\|[et]\\)\\|i\\(f\\|nherits\\)\\|l[et]\\|mod\\|n\\(e\\|ot\\)\\|o\\(n_\\(error\\|ioerror\\)\\|[fr]\\)\\|re\\(peat\\|turn\\)\\|switch\\|then\\|until\\|while\\|xor\\)\\>")
 
-(let* ((oldp (or (string-match "Lucid" emacs-version)
-		 (not (boundp 'emacs-minor-version))
-		 (and (<= emacs-major-version 19) 
-		      (<= emacs-minor-version 29))))
-       
-       (idl-keywords idlwave-idl-keywords)
-       ;; Procedure declarations.  Fontify keyword plus procedure name.
+(let* (;; Procedure declarations.  Fontify keyword plus procedure name.
        ;; Function  declarations.  Fontify keyword plus function  name.
        (pros-and-functions
 	'("\\<\\(function\\|pro\\)\\>[ \t]+\\(\\sw+\\(::\\sw+\\)?\\)"
@@ -1267,39 +1252,17 @@
 	
        ;; Arrows with text property `idlwave-class'
        (class-arrows
-	(list 'idlwave-match-class-arrows 
-	      (list 0 (if (featurep 'xemacs) 
-			  idlwave-class-arrow-face
-			'idlwave-class-arrow-face))))
-
-       )
-
-  ;; The following lines are just a dummy to make the compiler shut up
-  ;; about variables bound but not used.
-  (setq oldp oldp
-	pros-and-functions pros-and-functions
-	common-blocks common-blocks
-	batch-files batch-files
-	fixme fixme
-	label label
-	goto goto
-	structtag structtag
-	structname structname
-	keyword-parameters keyword-parameters
-	system-variables system-variables
-	special-operators special-operators
-	all-operators all-operators
-	class-arrows class-arrows)
-
-  (setq idlwave-font-lock-keywords-1
-	(list pros-and-functions
-	      batch-files
-	      ))
-
-  (setq idlwave-font-lock-keywords-2
-	(mapcar 'symbol-value idlwave-default-font-lock-items))
-
-  (setq idlwave-font-lock-keywords-3 
+	'(idlwave-match-class-arrows (0 idlwave-class-arrow-face))))
+
+  (defconst idlwave-font-lock-keywords-1
+    (list pros-and-functions batch-files)
+    "Subdued level highlighting for IDLWAVE mode.")
+
+  (defconst idlwave-font-lock-keywords-2
+    (mapcar 'symbol-value idlwave-default-font-lock-items)
+    "Medium level highlighting for IDLWAVE mode.")
+
+  (defconst idlwave-font-lock-keywords-3
 	(list pros-and-functions
 	      batch-files
 	      idlwave-idl-keywords
@@ -1309,9 +1272,8 @@
 	      common-blocks
 	      keyword-parameters
 	      system-variables
-	      class-arrows
-	      ))
-  )
+	  class-arrows)
+    "Gaudy level highlighting for IDLWAVE mode."))
 
 (defun idlwave-match-class-arrows (limit)
   ;; Match an object arrow with class property
@@ -2975,7 +2937,7 @@
 		 (or idlwave-indent-to-open-paren ;; override
 		     (< (- fancy-paren-indent basic-indent)
 			idlwave-max-extra-continuation-indent))))
-	    fancy-enclosing-parent-indent)
+	    fancy-enclosing-paren-indent)
       (cond 
        ;; else continuations are always standard
        (else-cont 
@@ -8005,15 +7967,16 @@
         (buffer-substring-no-properties begin (point))
       (buffer-substring begin (point)))))
 
-(defun idlwave-function-menu ()
-  "Use `imenu' or `function-menu' to jump to a procedure or function."
-  (interactive)
-  (if (string-match "XEmacs" emacs-version)
+(defalias 'idlwave-function-menu
+  (condition-case nil
       (progn
 	(require 'func-menu)
-	(function-menu))
-    (require 'imenu)
-    (imenu (imenu-choose-buffer-index))))
+	'function-menu)
+    (error (condition-case nil
+	       (progn
+		 (require 'imenu)
+		 'imenu)
+	     (error nil)))))
 
 ;; Here we kack func-menu.el in order to support this new mode.
 ;; The latest versions of func-menu.el already have this stuff in, so