branch: externals/idlwave
commit 39e7ed969ebb08fe003b08b32b57f49b95a85237
Merge: e9431581ec 1e87b0f4c0
Author: JD Smith <[email protected]>
Commit: JD Smith <[email protected]>
Merge branch 'develop'
---
idlw-complete.el | 9 +++------
idlw-routine.el | 42 +++++++++++++++++++++++++-----------------
idlw-shell.el | 1 +
idlw-variables.el | 2 +-
idlwave.texi | 14 +++++++-------
5 files changed, 37 insertions(+), 31 deletions(-)
diff --git a/idlw-complete.el b/idlw-complete.el
index 25a34f73ac..d512be1028 100644
--- a/idlw-complete.el
+++ b/idlw-complete.el
@@ -914,8 +914,7 @@ Restore the pre-completion window configuration if
possible."
t)) ; return t to skip other completions
(t nil))))
-(defvar link) ;dynamic variables set by help callback
-(defvar props)
+(defvar idlwave-link) ;dynamic variables set by help callback
(defun idlwave-complete-sysvar-help (mode word)
(let ((word (or (nth 1 idlwave-completion-help-info) word))
(entry (assoc word idlwave-system-variables-alist)))
@@ -923,7 +922,7 @@ Restore the pre-completion window configuration if
possible."
((eq mode 'test)
(and (stringp word) entry (nth 1 (assq 'link entry))))
((eq mode 'set)
- (if entry (setq link (nth 1 (assq 'link entry))))) ;; setting dynamic!!!
+ (if entry (setq idlwave-link (nth 1 (assq 'link entry))))) ;; setting
dynamic!!!
(t (error "This should not happen")))))
(defun idlwave-complete-sysvar-tag-help (mode word)
@@ -990,8 +989,6 @@ keywords."
;; Default completion of modules and keywords
(idlwave-complete arg)))))
-;; Get rid of opaque dynamic variable passing of link?
-(defvar link) ;dynamic variable
(defun idlwave-shell-complete-execcomm-help (mode word)
(let ((word (or (nth 1 idlwave-completion-help-info) word))
(entry (assoc-string word idlwave-executive-commands-alist t)))
@@ -999,7 +996,7 @@ keywords."
((eq mode 'test)
(and (stringp word) entry (cdr entry)))
((eq mode 'set)
- (if entry (setq link (cdr entry)))) ;; setting dynamic variable!!!
+ (if entry (setq idlwave-link (cdr entry)))) ;; setting dynamic
variable!!!
(t (error "This should not happen")))))
(defun idlwave-shell-complete-filename (&optional nospace)
diff --git a/idlw-routine.el b/idlw-routine.el
index 0f152378c7..3ba32f825e 100644
--- a/idlw-routine.el
+++ b/idlw-routine.el
@@ -1,6 +1,7 @@
;; IDLWAVE Routine Information code and variables
-;; Format for all routine info user catalog, library catalogs, etc.:
+;; The list format for all routine info user catalog, library
+;; catalogs, etc.:
;;
;; ("ROUTINE" type class
;; (system nil nil nil) | (lib pro_file dir "LIBNAME") | (user pro_file dir
"USERLIB") |
@@ -9,11 +10,12 @@
;; ("LINKFILE2" (("KWD2" . ancorlink2) ...)) ...)
;;
;; DIR will be supplied dynamically while loading library catalogs,
-;; and is sinterned to save space, as is LIBNAME. PRO_FILE can be a
-;; complete filepath, in which case DIR is unnecessary. HELPFILE can
-;; be nil, as can LINKFILE, etc., if no HTML help is available for
-;; that routine. Since keywords can be referenced in multiples files
-;; (e.g. Graphics Keywords), there are multiple keyword link lists.
+;; and is sinterned (hashed to an internal symbol) to save space, as
+;; is LIBNAME. PRO_FILE can be a complete filepath, in which case DIR
+;; is unnecessary. HELPFILE can be nil, as can LINKFILE, etc., if no
+;; HTML help is available for that routine. Since keywords can be
+;; referenced in multiples files (e.g. Graphics Keywords), there are
+;; multiple keyword link lists.
;;----------------------------------------------------
@@ -159,6 +161,10 @@ ENTRY will also be returned, as the first item of this
list."
(push candidate twins))
(cons entry (nreverse twins))))
+
+;; Bound in idlwave-study-twins,idlwave-routine-entry-compare-twins.
+(defvar idlwave-class)
+
(defun idlwave-study-twins (entries)
"Return dangerous twins of first entry in ENTRIES.
Dangerous twins are routines with same name, but in different files on
@@ -169,7 +175,7 @@ routines, and may have been scanned."
(let* ((entry (car entries))
(name (car entry)) ;
(type (nth 1 entry)) ; Must be bound for
- (class (nth 2 entry)) ; idlwave-routine-twin-compare
+ (idlwave-class (nth 2 entry)) ; idlwave-routine-twin-compare
(cnt 0)
source type type-cons file alist syslibp key)
(while (setq entry (pop entries))
@@ -237,7 +243,9 @@ names and path locations."
(defun idlwave-routine-entry-compare-twins (a b)
"Compare two routine entries, under the assumption that they are twins.
This basically calls `idlwave-routine-twin-compare' with the correct args."
- (let* ((name (car a)) (type (nth 1 a)) (class (nth 2 a)) ; needed outside
+ (let* ((name (car a))
+ (type (nth 1 a))
+ (idlwave-class (nth 2 a)) ; needed outside
(asrc (nth 3 a))
(atype (car asrc))
(bsrc (nth 3 b))
@@ -253,9 +261,6 @@ This basically calls `idlwave-routine-twin-compare' with
the correct args."
(list btype bfile (list btype))))
))
-;; Bound in idlwave-study-twins,idlwave-routine-entry-compare-twins.
-;; FIXME: Dynamically scoped vars need to use the `idlwave-' prefix.
-(defvar class)
(defun idlwave-routine-twin-compare (a b)
"Compare two routine twin entries for sorting.
@@ -293,16 +298,19 @@ This expects NAME TYPE CLASS to be bound to the right
values."
;; Look at file names
(aname (if (stringp afile) (downcase (file-name-nondirectory afile))
""))
(bname (if (stringp bfile) (downcase (file-name-nondirectory bfile))
""))
- (fname-re (if class (format "\\`%s__\\(%s\\|define\\)\\.pro\\'"
- (regexp-quote (downcase class))
- (regexp-quote (downcase name)))
+ (fname-re (if idlwave-class (format "\\`%s__\\(%s\\|define\\)\\.pro\\'"
+ (regexp-quote
+ (downcase idlwave-class))
+ (regexp-quote (downcase name)))
(format "\\`%s\\.pro" (regexp-quote (downcase name)))))
;; Is file name derived from the routine name?
;; Method file or class definition file?
(anamep (string-match fname-re aname))
- (adefp (and class anamep (string= "define" (match-string 1 aname))))
+ (adefp (and idlwave-class anamep
+ (string= "define" (match-string 1 aname))))
(bnamep (string-match fname-re bname))
- (bdefp (and class bnamep (string= "define" (match-string 1 bname)))))
+ (bdefp (and idlwave-class bnamep
+ (string= "define" (match-string 1 bname)))))
;; Now: follow JD's ideas about sorting. Looks really simple now,
;; doesn't it? The difficult stuff is hidden above...
@@ -314,7 +322,7 @@ This expects NAME TYPE CLASS to be bound to the right
values."
((idlwave-xor acompp bcompp) acompp) ; Compiled entries
((idlwave-xor apathp bpathp) apathp) ; Library before non-library
((idlwave-xor anamep bnamep) anamep) ; Correct file names first
- ((and class anamep bnamep ; both file names match ->
+ ((and idlwave-class anamep bnamep ; both file names match ->
(idlwave-xor adefp bdefp)) bdefp) ; __define after __method
((> anpath bnpath) t) ; Who is first on path?
(t nil)))) ; Default
diff --git a/idlw-shell.el b/idlw-shell.el
index 94cff375aa..868c50d6f9 100644
--- a/idlw-shell.el
+++ b/idlw-shell.el
@@ -2413,6 +2413,7 @@ matter what the settings of that variable."
(setq idlwave-shell-is-stopped nil)
(if idlwave-shell-stop-line-overlay
(delete-overlay idlwave-shell-stop-line-overlay))
+ (setq overlay-arrow-position nil)
;; turn off electric debug everywhere, if it's on
(if idlwave-shell-electric-debug-buffers
(idlwave-shell-electric-debug-all-off)))
diff --git a/idlw-variables.el b/idlw-variables.el
index 06a07ef8d4..d54ac3bbcc 100644
--- a/idlw-variables.el
+++ b/idlw-variables.el
@@ -84,7 +84,7 @@ would yield:
:group 'idlwave-code-formatting
:type 'boolean)
-(defcustom idlwave-indent-parens-nested t
+(defcustom idlwave-indent-parens-nested nil
"*Non-nil means, indent continuation lines with parens by nesting
lines at consecutively deeper levels."
:group 'idlwave-code-formatting
diff --git a/idlwave.texi b/idlwave.texi
index c1bddf6476..1b79e38fbc 100644
--- a/idlwave.texi
+++ b/idlwave.texi
@@ -9,11 +9,11 @@
@synindex ky cp
@syncodeindex vr cp
@syncodeindex fn cp
-@set VERSION 6.2
-@set EDITION 6.2
-@set IDLVERSION 7.1
-@set NSYSROUTINES 4346
-@set DATE June, 2009
+@set VERSION 6.5
+@set EDITION 6.5
+@set IDLVERSION 8.3
+@set NSYSROUTINES 2611
+@set DATE Februare, 2014
@set AUTHOR J.D. Smith & Carsten Dominik
@set MAINTAINER J.D. Smith
@set IDLWAVEHOMEPAGE http://github.com/jdtsmith/idlwave
@@ -28,7 +28,7 @@ This is edition @value{EDITION} of the IDLWAVE User Manual
for IDLWAVE
@value{VERSION}
Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2009 Free Software Foundation, Inc.
+ 2006, 2007, 2009, 2013, 2014 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
@@ -59,7 +59,7 @@ This is edition @value{EDITION} of the @cite{IDLWAVE User
Manual} for
IDLWAVE version @value{VERSION}, @value{DATE}.
@sp 2
Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2009 Free Software Foundation, Inc.
+ 2006, 2007, 2009, 2013, 2014 Free Software Foundation, Inc.
@sp 2
@cindex Copyright, of IDLWAVE
Permission is granted to copy, distribute and/or modify this document