/[emacs]/emacs/lisp/progmodes/dcl-mode.el
ViewVC logotype

Diff of /emacs/lisp/progmodes/dcl-mode.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9 by lektu, Fri Aug 30 11:02:54 2002 UTC revision 1.10 by lektu, Tue Feb 4 13:24:34 2003 UTC
# Line 31  Line 31 
31  ;;  ;;
32  ;; Type `C-h m' when you are editing a .COM file to get more  ;; Type `C-h m' when you are editing a .COM file to get more
33  ;; information about this mode.  ;; information about this mode.
34  ;;  ;;
35  ;; To use templates you will need a version of tempo.el that is at  ;; To use templates you will need a version of tempo.el that is at
36  ;; least later than the buggy 1.1.1, which was included with my versions of  ;; least later than the buggy 1.1.1, which was included with my versions of
37  ;; Emacs.  I used version 1.2.4.  ;; Emacs.  I used version 1.2.4.
38  ;; The latest tempo.el distribution can be fetched from  ;; The latest tempo.el distribution can be fetched from
39  ;; ftp.lysator.liu.se in the directory /pub/emacs.  ;; ftp.lysator.liu.se in the directory /pub/emacs.
40  ;; I recommend setting (setq tempo-interactive t).  This will make  ;; I recommend setting (setq tempo-interactive t).  This will make
# Line 47  Line 47 
47  ;;  ;;
48  ;; Any feedback will be welcomed.  If you write functions for  ;; Any feedback will be welcomed.  If you write functions for
49  ;; dcl-calc-command-indent-function or dcl-calc-cont-indent-function,  ;; dcl-calc-command-indent-function or dcl-calc-cont-indent-function,
50  ;; please send them to the maintainer.  ;; please send them to the maintainer.
51  ;;  ;;
52  ;;  ;;
53  ;; Ideas for improvement:  ;; Ideas for improvement:
54  ;; * Change meaning of `left margin' when dcl-tab-always-indent is nil.  ;; * Change meaning of `left margin' when dcl-tab-always-indent is nil.
# Line 98  dcl-calc-cont-indent-function is set to Line 98  dcl-calc-cont-indent-function is set to
98    
99  (defcustom dcl-margin-offset 8  (defcustom dcl-margin-offset 8
100    "*Indentation for the first command line in DCL.    "*Indentation for the first command line in DCL.
101  The first command line in a file or after a SUBROUTINE statement is indented  The first command line in a file or after a SUBROUTINE statement is indented
102  this much.  Other command lines are indented the same number of columns as  this much.  Other command lines are indented the same number of columns as
103  the preceding command line.  the preceding command line.
104  A command line is a line that starts with `$'."  A command line is a line that starts with `$'."
# Line 137  Set to nil to only indent at THEN-ELSE-E Line 137  Set to nil to only indent at THEN-ELSE-E
137    
138  (defcustom dcl-calc-command-indent-function nil  (defcustom dcl-calc-command-indent-function nil
139    "*Function to calculate indentation for a command line in DCL.    "*Function to calculate indentation for a command line in DCL.
140  If this variable is non-nil it is called as a function:  If this variable is non-nil it is called as a function:
141    
142  \(func INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT)  \(func INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT)
143    
144  The function must return the number of columns to indent the current line or  The function must return the number of columns to indent the current line or
145  nil to get the default indentation.  nil to get the default indentation.
146    
147  INDENT-TYPE is a symbol indicating what kind of indentation should be done.  INDENT-TYPE is a symbol indicating what kind of indentation should be done.
# Line 150  It can have the following values: Line 150  It can have the following values:
150    outdent     the lines indentation should be decreased, e.g a line with ENDIF.    outdent     the lines indentation should be decreased, e.g a line with ENDIF.
151    first-line  indentation for the first line in a buffer or SUBROUTINE.    first-line  indentation for the first line in a buffer or SUBROUTINE.
152  CUR-INDENT is the indentation of the preceding command line.  CUR-INDENT is the indentation of the preceding command line.
153  EXTRA-INDENT is the default change in indentation for this line  EXTRA-INDENT is the default change in indentation for this line
154  \(a negative number for 'outdent).  \(a negative number for 'outdent).
155  LAST-POINT is the buffer position of the first significant word on the  LAST-POINT is the buffer position of the first significant word on the
156  previous line or nil if the current line is the first line.  previous line or nil if the current line is the first line.
157  THIS-POINT is the buffer position of the first significant word on the  THIS-POINT is the buffer position of the first significant word on the
158  current line.  current line.
159    
160  If this variable is nil, the indentation is calculated as  If this variable is nil, the indentation is calculated as
161  CUR-INDENT + EXTRA-INDENT.  CUR-INDENT + EXTRA-INDENT.
162    
163  This package includes two functions suitable for this:  This package includes two functions suitable for this:
# Line 169  This package includes two functions suit Line 169  This package includes two functions suit
169    
170  (defcustom dcl-calc-cont-indent-function 'dcl-calc-cont-indent-relative  (defcustom dcl-calc-cont-indent-function 'dcl-calc-cont-indent-relative
171    "*Function to calculate indentation for a continuation line.    "*Function to calculate indentation for a continuation line.
172  If this variable is non-nil it is called as a function:  If this variable is non-nil it is called as a function:
173    
174  \(func CUR-INDENT EXTRA-INDENT)  \(func CUR-INDENT EXTRA-INDENT)
175    
176  The function must return the number of columns to indent the current line or  The function must return the number of columns to indent the current line or
177  nil to get the default indentation.  nil to get the default indentation.
178    
179  If this variable is nil, the indentation is calculated as  If this variable is nil, the indentation is calculated as
180  CUR-INDENT + EXTRA-INDENT.  CUR-INDENT + EXTRA-INDENT.
181    
182  This package includes one function suitable for this:  This package includes one function suitable for this:
# Line 189  This package includes one function suita Line 189  This package includes one function suita
189    "*Controls the operation of the TAB key in DCL mode.    "*Controls the operation of the TAB key in DCL mode.
190  If t, pressing TAB always indents the current line.  If t, pressing TAB always indents the current line.
191  If nil, pressing TAB indents the current line if point is at the left margin.  If nil, pressing TAB indents the current line if point is at the left margin.
192  Data lines (i.e. lines not part of a command line or continuation line) are  Data lines (i.e. lines not part of a command line or continuation line) are
193  never indented."  never indented."
194    :type 'boolean    :type 'boolean
195    :group 'dcl)    :group 'dcl)
# Line 246  never indented." Line 246  never indented."
246    "*Default imenu generic expression for DCL.    "*Default imenu generic expression for DCL.
247    
248  The default includes SUBROUTINE labels in the main listing and  The default includes SUBROUTINE labels in the main listing and
249  sub-listings for other labels, CALL, GOTO and GOSUB statements.  sub-listings for other labels, CALL, GOTO and GOSUB statements.
250  See `imenu-generic-expression' for details."  See `imenu-generic-expression' for details."
251    :type '(repeat (sexp :tag "Imenu Expression"))    :type '(repeat (sexp :tag "Imenu Expression"))
252    :group 'dcl)    :group 'dcl)
# Line 270  See `imenu-generic-expression' for detai Line 270  See `imenu-generic-expression' for detai
270    (modify-syntax-entry ?\n ">" dcl-mode-syntax-table) ; comment end    (modify-syntax-entry ?\n ">" dcl-mode-syntax-table) ; comment end
271    (modify-syntax-entry ?< "(>" dcl-mode-syntax-table) ; < and ...    (modify-syntax-entry ?< "(>" dcl-mode-syntax-table) ; < and ...
272    (modify-syntax-entry ?> ")<" dcl-mode-syntax-table) ; > is a matching pair    (modify-syntax-entry ?> ")<" dcl-mode-syntax-table) ; > is a matching pair
273  )  )
274    
275    
276  (defvar dcl-mode-map ()  (defvar dcl-mode-map ()
# Line 357  A label is a name followed by a colon fo Line 357  A label is a name followed by a colon fo
357    :group 'dcl)    :group 'dcl)
358    
359    
360  (defcustom dcl-cmd-r  (defcustom dcl-cmd-r
361    "^\\$\\(.*-[ \t]*\\(!.*\\)*\n\\)*[^!\"\n]*\\(\".*\\(\"\".*\\)*\"\\)*[^!\"\n]*"    "^\\$\\(.*-[ \t]*\\(!.*\\)*\n\\)*[^!\"\n]*\\(\".*\\(\"\".*\\)*\"\\)*[^!\"\n]*"
362    "Regular expression describing a DCL command line up to a trailing comment.    "Regular expression describing a DCL command line up to a trailing comment.
363  A line starting with $, optionally followed by continuation lines,  A line starting with $, optionally followed by continuation lines,
# Line 368  optionally followed by a comment, follow Line 368  optionally followed by a comment, follow
368    :group 'dcl)    :group 'dcl)
369    
370    
371  (defcustom dcl-command-regexp  (defcustom dcl-command-regexp
372    "^\\$\\(.*-[ \t]*\\(!.*\\)*\n\\)*.*\\(\".*\\(\"\".*\\)*\"\\)*"    "^\\$\\(.*-[ \t]*\\(!.*\\)*\n\\)*.*\\(\".*\\(\"\".*\\)*\"\\)*"
373    "Regular expression describing a DCL command line.    "Regular expression describing a DCL command line.
374  A line starting with $, optionally followed by continuation lines,  A line starting with $, optionally followed by continuation lines,
# Line 392  dcl-electric-character and the you have Line 392  dcl-electric-character and the you have
392    :group 'dcl)    :group 'dcl)
393    
394    
395  (defvar dcl-option-alist  (defvar dcl-option-alist
396    '((dcl-basic-offset dcl-option-value-basic)    '((dcl-basic-offset dcl-option-value-basic)
397      (dcl-continuation-offset curval)      (dcl-continuation-offset curval)
398      (dcl-margin-offset dcl-option-value-margin-offset)      (dcl-margin-offset dcl-option-value-margin-offset)
# Line 400  dcl-electric-character and the you have Line 400  dcl-electric-character and the you have
400      (dcl-comment-line-regexp dcl-option-value-comment-line)      (dcl-comment-line-regexp dcl-option-value-comment-line)
401      (dcl-block-begin-regexp curval)      (dcl-block-begin-regexp curval)
402      (dcl-block-end-regexp curval)      (dcl-block-end-regexp curval)
403      (dcl-tab-always-indent toggle)                    (dcl-tab-always-indent toggle)
404      (dcl-electric-characters toggle)          (dcl-electric-characters toggle)
405      (dcl-electric-reindent-regexps curval)      (dcl-electric-reindent-regexps curval)
406      (dcl-tempo-comma curval)                  (dcl-tempo-comma curval)
407      (dcl-tempo-left-paren curval)                    (dcl-tempo-left-paren curval)
408      (dcl-tempo-right-paren curval)                    (dcl-tempo-right-paren curval)
409      (dcl-calc-command-indent-function curval)      (dcl-calc-command-indent-function curval)
410      (dcl-calc-cont-indent-function curval)      (dcl-calc-cont-indent-function curval)
411      (comment-start curval)      (comment-start curval)
# Line 421  curval       the current value Line 421  curval       the current value
421  toggle       the opposite of the current value (for t/nil)")  toggle       the opposite of the current value (for t/nil)")
422    
423    
424  (defvar dcl-option-history  (defvar dcl-option-history
425    (mapcar (lambda (option-assoc)    (mapcar (lambda (option-assoc)
426              (format "%s" (car option-assoc)))              (format "%s" (car option-assoc)))
427            dcl-option-alist)            dcl-option-alist)
# Line 443  Preloaded with all known option names fr Line 443  Preloaded with all known option names fr
443  ;  "*Default imenu generic expression for DCL.  ;  "*Default imenu generic expression for DCL.
444    
445  ;The default includes SUBROUTINE labels in the main listing and  ;The default includes SUBROUTINE labels in the main listing and
446  ;sub-listings for other labels, CALL, GOTO and GOSUB statements.  ;sub-listings for other labels, CALL, GOTO and GOSUB statements.
447  ;See `imenu-generic-expression' in a recent (e.g. Emacs 19.30) imenu.el  ;See `imenu-generic-expression' in a recent (e.g. Emacs 19.30) imenu.el
448  ;for details.")  ;for details.")
449    
# Line 460  THEN-ELSE-ENDIF and between lines matchi Line 460  THEN-ELSE-ENDIF and between lines matchi
460  dcl-block-end-regexp.)  dcl-block-end-regexp.)
461    
462  Labels are indented to a fixed position unless they begin or end a block.  Labels are indented to a fixed position unless they begin or end a block.
463  Whole-line comments (matching dcl-comment-line-regexp) are not indented.  Whole-line comments (matching dcl-comment-line-regexp) are not indented.
464  Data lines are not indented.  Data lines are not indented.
465    
466  Key bindings:  Key bindings:
# Line 488  Variables controlling indentation style Line 488  Variables controlling indentation style
488      Indentation for a label.      Indentation for a label.
489    
490   dcl-comment-line-regexp   dcl-comment-line-regexp
491      Lines matching this regexp will not be indented.      Lines matching this regexp will not be indented.
492    
493   dcl-block-begin-regexp   dcl-block-begin-regexp
494   dcl-block-end-regexp   dcl-block-end-regexp
# Line 511  Variables controlling indentation style Line 511  Variables controlling indentation style
511    
512   dcl-tab-always-indent   dcl-tab-always-indent
513      If t, pressing TAB always indents the current line.      If t, pressing TAB always indents the current line.
514      If nil, pressing TAB indents the current line if point is at the left      If nil, pressing TAB indents the current line if point is at the left
515      margin.      margin.
516    
517   dcl-electric-characters   dcl-electric-characters
518      Non-nil causes lines to be indented at once when a label, ELSE or ENDIF is      Non-nil causes lines to be indented at once when a label, ELSE or ENDIF is
519      typed.      typed.
520    
# Line 530  Variables controlling indentation style Line 530  Variables controlling indentation style
530   dcl-imenu-generic-expression   dcl-imenu-generic-expression
531      Default value for imenu-generic-expression.  The default includes      Default value for imenu-generic-expression.  The default includes
532      SUBROUTINE labels in the main listing and sub-listings for      SUBROUTINE labels in the main listing and sub-listings for
533      other labels, CALL, GOTO and GOSUB statements.      other labels, CALL, GOTO and GOSUB statements.
534    
535   dcl-imenu-label-labels   dcl-imenu-label-labels
536   dcl-imenu-label-goto   dcl-imenu-label-goto
# Line 539  Variables controlling indentation style Line 539  Variables controlling indentation style
539      Change the text that is used as sub-listing labels in imenu.      Change the text that is used as sub-listing labels in imenu.
540    
541  Loading this package calls the value of the variable  Loading this package calls the value of the variable
542  `dcl-mode-load-hook' with no args, if that value is non-nil.  `dcl-mode-load-hook' with no args, if that value is non-nil.
543  Turning on DCL mode calls the value of the variable `dcl-mode-hook'  Turning on DCL mode calls the value of the variable `dcl-mode-hook'
544  with no args, if that value is non-nil.  with no args, if that value is non-nil.
545    
546    
547  The following example uses the default values for all variables:  The following example uses the default values for all variables:
548    
549  $! This is a comment line that is not indented (it matches  $! This is a comment line that is not indented (it matches
550  $! dcl-comment-line-regexp)  $! dcl-comment-line-regexp)
551  $! Next follows the first command line.  It is indented dcl-margin-offset.  $! Next follows the first command line.  It is indented dcl-margin-offset.
552  $       i = 1  $       i = 1
553  $       ! Other comments are indented like command lines.  $       ! Other comments are indented like command lines.
554  $       ! A margin label indented dcl-margin-label-offset:  $       ! A margin label indented dcl-margin-label-offset:
555  $ label:  $ label:
556  $       if i.eq.1  $       if i.eq.1
557  $       then  $       then
558  $           ! Lines between THEN-ELSE and ELSE-ENDIF are  $           ! Lines between THEN-ELSE and ELSE-ENDIF are
559  $           ! indented dcl-basic-offset  $           ! indented dcl-basic-offset
560  $           loop1: ! This matches dcl-block-begin-regexp...  $           loop1: ! This matches dcl-block-begin-regexp...
561  $               ! ...so this line is indented dcl-basic-offset  $               ! ...so this line is indented dcl-basic-offset
562  $               text = \"This \" + - ! is a continued line  $               text = \"This \" + - ! is a continued line
563                         \"lined up with the command line\"                         \"lined up with the command line\"
564  $               type sys$input  $               type sys$input
565  Data lines are not indented at all.  Data lines are not indented at all.
566  $           endloop1: ! This matches dcl-block-end-regexp  $           endloop1: ! This matches dcl-block-end-regexp
567  $       endif  $       endif
568  $  $
# Line 582  $ Line 582  $
582    
583    (make-local-variable 'comment-multi-line)    (make-local-variable 'comment-multi-line)
584    (setq comment-multi-line nil)    (setq comment-multi-line nil)
585      
586    ;; This used to be "^\\$[ \t]*![ \t]*" which looks more correct.    ;; This used to be "^\\$[ \t]*![ \t]*" which looks more correct.
587    ;; The drawback was that you couldn't make empty comment lines by pressing    ;; The drawback was that you couldn't make empty comment lines by pressing
588    ;; C-M-j repeatedly - only the first line became a comment line.    ;; C-M-j repeatedly - only the first line became a comment line.
# Line 608  $ Line 608  $
608    (make-local-variable 'dcl-calc-command-indent-function)    (make-local-variable 'dcl-calc-command-indent-function)
609    (make-local-variable 'dcl-calc-cont-indent-function)    (make-local-variable 'dcl-calc-cont-indent-function)
610    (make-local-variable 'dcl-electric-reindent-regexps)    (make-local-variable 'dcl-electric-reindent-regexps)
611      
612    (setq major-mode 'dcl-mode)    (setq major-mode 'dcl-mode)
613    (setq mode-name "DCL")    (setq mode-name "DCL")
614    (use-local-map dcl-mode-map)    (use-local-map dcl-mode-map)
# Line 668  $ Line 668  $
668    "Move backward to a command.    "Move backward to a command.
669  Move point to the preceding command line that is not a comment line,  Move point to the preceding command line that is not a comment line,
670  a command line with only a comment, only contains a `$' or only  a command line with only a comment, only contains a `$' or only
671  contains a label.  contains a label.
672    
673  Returns point of the found command line or nil if not able to move."  Returns point of the found command line or nil if not able to move."
674    (interactive)    (interactive)
# Line 712  Returns point of the found command line Line 712  Returns point of the found command line
712    "Move forward to a command.    "Move forward to a command.
713  Move point to the end of the next command line that is not a comment line,  Move point to the end of the next command line that is not a comment line,
714  a command line with only a comment, only contains a `$' or only  a command line with only a comment, only contains a `$' or only
715  contains a label.  contains a label.
716    
717  Returns point of the found command line or nil if not able to move."  Returns point of the found command line or nil if not able to move."
718    (interactive)    (interactive)
# Line 762  Leading $ and labels counts as whitespac Line 762  Leading $ and labels counts as whitespac
762  If this is a comment line then move to the first non-whitespace character  If this is a comment line then move to the first non-whitespace character
763  in the comment.  in the comment.
764    
765  Typing \\[dcl-back-to-indentation] several times in a row will move point to other  Typing \\[dcl-back-to-indentation] several times in a row will move point to other
766  `interesting' points closer to the left margin, and then back to the  `interesting' points closer to the left margin, and then back to the
767  rightmost point again.  rightmost point again.
768    
769  E.g. on the following line, point would go to the positions indicated  E.g. on the following line, point would go to the positions indicated
770  by the numbers in order 1-2-3-1-... :  by the numbers in order 1-2-3-1-... :
# Line 785  by the numbers in order 1-2-3-1-... : Line 785  by the numbers in order 1-2-3-1-... :
785    ;;  $  !  text    ;;  $  !  text
786    ;;  3  2  1    ;;  3  2  1
787    ;;    ;;
788    ;;  $  l:  command  !      ;;  $  l:  command  !
789    ;;  3  2   1    ;;  3  2   1
790    ;;    ;;
791    ;;  text    ;;  text
# Line 807  by the numbers in order 1-2-3-1-... : Line 807  by the numbers in order 1-2-3-1-... :
807          (setq last-good-point (point)))          (setq last-good-point (point)))
808    
809      (cond      (cond
810       ;; Special treatment for comment lines.  We are trying to allow       ;; Special treatment for comment lines.  We are trying to allow
811       ;; things like "$ !*" as comment lines.       ;; things like "$ !*" as comment lines.
812       ((looking-at dcl-comment-line-regexp)       ((looking-at dcl-comment-line-regexp)
813        (re-search-forward (concat dcl-comment-line-regexp "[ \t]*") limit t)        (re-search-forward (concat dcl-comment-line-regexp "[ \t]*") limit t)
# Line 901  Returns one of the following symbols: Line 901  Returns one of the following symbols:
901      (dcl-back-to-indentation)      (dcl-back-to-indentation)
902      (point)))      (point)))
903    
904                          
905  ;;;---------------------------------------------------------------------------  ;;;---------------------------------------------------------------------------
906  (defun dcl-show-line-type ()  (defun dcl-show-line-type ()
907    "Test dcl-get-line-type."    "Test dcl-get-line-type."
# Line 979  $ xxx Line 979  $ xxx
979    
980  If you use this function you will probably want to add \"then\" to  If you use this function you will probably want to add \"then\" to
981  dcl-electric-reindent-regexps and define the key \"n\" as  dcl-electric-reindent-regexps and define the key \"n\" as
982  dcl-electric-character.  dcl-electric-character.
983  "  "
984    (let ((case-fold-search t))    (let ((case-fold-search t))
985      (save-excursion      (save-excursion
# Line 1003  dcl-electric-character. Line 1003  dcl-electric-character.
1003            (- (+ cur-indent extra-indent) 2))            (- (+ cur-indent extra-indent) 2))
1004           ((looking-at "\\belse\\b")           ((looking-at "\\belse\\b")
1005            (- (+ cur-indent extra-indent) 2))))            (- (+ cur-indent extra-indent) 2))))
1006         ;; Outdent, this word is `endif' or `else': + 2         ;; Outdent, this word is `endif' or `else': + 2
1007         ((equal indent-type 'outdent)         ((equal indent-type 'outdent)
1008          (goto-char this-point)          (goto-char this-point)
1009          (cond          (cond
# Line 1028  non-nil. Line 1028  non-nil.
1028    
1029  If the current line should be outdented, calculate its indentation,  If the current line should be outdented, calculate its indentation,
1030  either with the default method or by calling  either with the default method or by calling
1031  dcl-calc-command-indent-function if it is non-nil.  dcl-calc-command-indent-function if it is non-nil.
1032    
1033    
1034  Rules for default indentation:  Rules for default indentation:
1035    
1036  If it is the first line in the buffer, indent dcl-margin-offset.  If it is the first line in the buffer, indent dcl-margin-offset.
1037    
1038  Go to the previous command line with a command on it.  Go to the previous command line with a command on it.
1039  Find out how much it is indented (cur-indent).  Find out how much it is indented (cur-indent).
1040  Look at the first word on the line to see if the indentation should be  Look at the first word on the line to see if the indentation should be
1041  adjusted.  Skip margin-label, continuations and comments while looking for  adjusted.  Skip margin-label, continuations and comments while looking for
1042  the first word.  Save this buffer position as `last-point'.  the first word.  Save this buffer position as `last-point'.
1043  If the first word after a label is SUBROUTINE, set extra-indent to  If the first word after a label is SUBROUTINE, set extra-indent to
1044  dcl-margin-offset.  dcl-margin-offset.
1045    
1046  First word  extra-indent  First word  extra-indent
# Line 1050  block-begin +dcl-basic-offset Line 1050  block-begin +dcl-basic-offset
1050    
1051  Then return to the current line and look at the first word to see if the  Then return to the current line and look at the first word to see if the
1052  indentation should be adjusted again.  Save this buffer position as  indentation should be adjusted again.  Save this buffer position as
1053  `this-point'.  `this-point'.
1054    
1055  First word  extra-indent  First word  extra-indent
1056  ELSE        -dcl-basic-offset  ELSE        -dcl-basic-offset
# Line 1063  cur-indent to cur-indent+extra-indent. Line 1063  cur-indent to cur-indent+extra-indent.
1063    
1064  If an extra adjustment is necessary and if  If an extra adjustment is necessary and if
1065  dcl-calc-command-indent-function is nil or returns nil set cur-indent  dcl-calc-command-indent-function is nil or returns nil set cur-indent
1066  to cur-indent+extra-indent.  to cur-indent+extra-indent.
1067    
1068  See also documentation for dcl-calc-command-indent-function.  See also documentation for dcl-calc-command-indent-function.
1069  The indent-type classification could probably be expanded upon.  The indent-type classification could probably be expanded upon.
# Line 1106  The indent-type classification could pro Line 1106  The indent-type classification could pro
1106                  ;; We couldn't go further back, so this must have been the                  ;; We couldn't go further back, so this must have been the
1107                  ;; first line.                  ;; first line.
1108                  (setq cur-indent dcl-margin-offset                  (setq cur-indent dcl-margin-offset
1109                        last-point (dcl-indentation-point))                        last-point (dcl-indentation-point))
1110                  (setq done t)))                  (setq done t)))
1111              ;; Examine the line to get current indentation and possibly a              ;; Examine the line to get current indentation and possibly a
1112              ;; reason to indent.              ;; reason to indent.
# Line 1202  Indented lines will align with either: Line 1202  Indented lines will align with either:
1202                                  yyy)))                                  yyy)))
1203  "  "
1204    (let ((case-fold-search t)    (let ((case-fold-search t)
1205          indent)          indent)
1206      (save-excursion      (save-excursion
1207        (dcl-beginning-of-statement)        (dcl-beginning-of-statement)
1208        (let ((end (save-excursion (forward-line 1) (point))))        (let ((end (save-excursion (forward-line 1) (point))))
# Line 1221  Indented lines will align with either: Line 1221  Indented lines will align with either:
1221                            (skip-chars-forward " \t:=" end)))                            (skip-chars-forward " \t:=" end)))
1222                      ;; This could be the position to indent to                      ;; This could be the position to indent to
1223                      (setq indent (current-column))                      (setq indent (current-column))
1224                        
1225                      ;; Move to the next word unless we have seen an                      ;; Move to the next word unless we have seen an
1226                      ;; assignment.  If it starts with `/' it's a                      ;; assignment.  If it starts with `/' it's a
1227                      ;; qualifier and we will indent to that position                      ;; qualifier and we will indent to that position
# Line 1328  Find out how much it is indented." Line 1328  Find out how much it is indented."
1328              (re-search-forward dcl-label-r)))              (re-search-forward dcl-label-r)))
1329        (dcl-indent-to indent 1)        (dcl-indent-to indent 1)
1330        )        )
1331      ;;      ;;
1332      (if (> (- (point-max) pos) (point))      (if (> (- (point-max) pos) (point))
1333          (goto-char (- (point-max) pos)))          (goto-char (- (point-max) pos)))
1334      ))      ))
# Line 1376  Adjusts indentation on the current line. Line 1376  Adjusts indentation on the current line.
1376       (t       (t
1377        (message "dcl-indent-line: unknown type"))        (message "dcl-indent-line: unknown type"))
1378       )))       )))
1379        
1380    
1381  ;;;-------------------------------------------------------------------------  ;;;-------------------------------------------------------------------------
1382  (defun dcl-indent-command ()  (defun dcl-indent-command ()
# Line 1406  the lines indentation; otherwise insert Line 1406  the lines indentation; otherwise insert
1406          (start-point (point)))          (start-point (point)))
1407      (cond      (cond
1408       ;; Data line : always insert tab       ;; Data line : always insert tab
1409       ((or (equal type 'data) (equal type 'empty-data))       ((or (equal type 'data) (equal type 'empty-data))
1410        (tab-to-tab-stop))        (tab-to-tab-stop))
1411       ;; Indent only at start of line       ;; Indent only at start of line
1412       ((not dcl-tab-always-indent)       ; nil       ((not dcl-tab-always-indent)       ; nil
1413        (let ((search-end-point        (let ((search-end-point
1414               (save-excursion               (save-excursion
# Line 1428  the lines indentation; otherwise insert Line 1428  the lines indentation; otherwise insert
1428  ;;;-------------------------------------------------------------------------  ;;;-------------------------------------------------------------------------
1429  (defun dcl-electric-character (arg)  (defun dcl-electric-character (arg)
1430    "Inserts a character and indents if necessary.    "Inserts a character and indents if necessary.
1431  Insert a character if the user gave a numeric argument or the flag  Insert a character if the user gave a numeric argument or the flag
1432  `dcl-electric-characters' is not set.  If an argument was given,  `dcl-electric-characters' is not set.  If an argument was given,
1433  insert that many characters.  insert that many characters.
1434    
# Line 1443  regexps in `dcl-electric-reindent-regexp Line 1443  regexps in `dcl-electric-reindent-regexp
1443      (self-insert-command 1)      (self-insert-command 1)
1444      (let ((case-fold-search t))      (let ((case-fold-search t))
1445        ;; There must be a better way than (memq t ...).        ;; There must be a better way than (memq t ...).
1446        ;; (apply 'or ...) didn't work          ;; (apply 'or ...) didn't work
1447        (if (memq t (mapcar 'dcl-was-looking-at dcl-electric-reindent-regexps))        (if (memq t (mapcar 'dcl-was-looking-at dcl-electric-reindent-regexps))
1448            (dcl-indent-line)))))            (dcl-indent-line)))))
1449    
# Line 1463  regexps in `dcl-electric-reindent-regexp Line 1463  regexps in `dcl-electric-reindent-regexp
1463          (progn          (progn
1464            (dcl-delete-chars " \t")            (dcl-delete-chars " \t")
1465            (indent-to col minimum)))))            (indent-to col minimum)))))
1466        
1467    
1468  ;;;-------------------------------------------------------------------------  ;;;-------------------------------------------------------------------------
1469  (defun dcl-split-line ()  (defun dcl-split-line ()
# Line 1511  Inserts continuation marks and splits ch Line 1511  Inserts continuation marks and splits ch
1511      (if (not done)                      ; normal M-LFD action      (if (not done)                      ; normal M-LFD action
1512          (indent-new-comment-line))))          (indent-new-comment-line))))
1513    
1514            
1515  ;;;-------------------------------------------------------------------------  ;;;-------------------------------------------------------------------------
1516  (defun dcl-delete-indentation (&optional arg)  (defun dcl-delete-indentation (&optional arg)
1517    "Join this line to previous like delete-indentation.    "Join this line to previous like delete-indentation.
# Line 1582  Returns the column offset." Line 1582  Returns the column offset."
1582  (defun dcl-option-value-margin-offset (option-assoc)  (defun dcl-option-value-margin-offset (option-assoc)
1583    "Guess a value for margin offset.    "Guess a value for margin offset.
1584  Find the column of the first non-blank character on the line, not  Find the column of the first non-blank character on the line, not
1585  counting labels.  counting labels.
1586  Returns a number as a string."  Returns a number as a string."
1587    (save-excursion    (save-excursion
1588      (beginning-of-line)      (beginning-of-line)
# Line 1610  Must return a string." Line 1610  Must return a string."
1610           (let ((regexp (buffer-substring (match-beginning 0) (match-end 0))))           (let ((regexp (buffer-substring (match-beginning 0) (match-end 0))))
1611             (concat "^" (regexp-quote regexp)))             (concat "^" (regexp-quote regexp)))
1612         dcl-comment-line-regexp))))         dcl-comment-line-regexp))))
1613          
1614    
1615  ;;;-------------------------------------------------------------------------  ;;;-------------------------------------------------------------------------
1616  (defun dcl-guess-option-value (option)  (defun dcl-guess-option-value (option)
# Line 1701  Returns the name of the option variable Line 1701  Returns the name of the option variable
1701                     (and next-indent                     (and next-indent
1702                          (/= (- this-indent next-indent) 0))))))                          (/= (- this-indent next-indent) 0))))))
1703        "dcl-basic-offset")        "dcl-basic-offset")
1704       ;; No more guesses.       ;; No more guesses.
1705       (t       (t
1706        ""))))        ""))))
1707    
# Line 1739  All variable names are available as comp Line 1739  All variable names are available as comp
1739  ;;;-------------------------------------------------------------------------  ;;;-------------------------------------------------------------------------
1740  (defun dcl-save-local-variable (var &optional def-prefix def-suffix)  (defun dcl-save-local-variable (var &optional def-prefix def-suffix)
1741    "Save a variable in a `Local Variables' list.    "Save a variable in a `Local Variables' list.
1742  Set or update the value of VAR in the current buffers  Set or update the value of VAR in the current buffers
1743  `Local Variables:' list."  `Local Variables:' list."
1744    ;; Look for "Local variables:" line in last page.    ;; Look for "Local variables:" line in last page.
1745    (save-excursion    (save-excursion
1746      (goto-char (point-max))      (goto-char (point-max))
# Line 1790  Set or update the value of VAR in the cu Line 1790  Set or update the value of VAR in the cu
1790                      ;; Not found.  Insert a new entry before this line                      ;; Not found.  Insert a new entry before this line
1791                      (setq continue nil)                      (setq continue nil)
1792                      (beginning-of-line)                      (beginning-of-line)
1793                      (insert (concat prefix-string (symbol-name var) ": "                      (insert (concat prefix-string (symbol-name var) ": "
1794                                      (prin1-to-string (eval var)) " "                                      (prin1-to-string (eval var)) " "
1795                                      suffix-string "\n")))                                      suffix-string "\n")))
1796                  ;; Is it the variable we are looking for?                  ;; Is it the variable we are looking for?
# Line 1836  Set or update the value of VAR in the cu Line 1836  Set or update the value of VAR in the cu
1836                      comment-end                      comment-end
1837                    (concat " " comment-end))))))                    (concat " " comment-end))))))
1838          (insert (concat def-prefix "Local variables:" def-suffix "\n"))          (insert (concat def-prefix "Local variables:" def-suffix "\n"))
1839          (insert (concat def-prefix (symbol-name var) ": "          (insert (concat def-prefix (symbol-name var) ": "
1840                          (prin1-to-string (eval var)) def-suffix "\n"))                          (prin1-to-string (eval var)) def-suffix "\n"))
1841          (insert (concat def-prefix "end:" def-suffix)))          (insert (concat def-prefix "end:" def-suffix)))
1842        )))        )))
# Line 1909  section at the end of the current buffer Line 1909  section at the end of the current buffer
1909  (require 'tempo)  (require 'tempo)
1910  (defvar dcl-tempo-tags nil  (defvar dcl-tempo-tags nil
1911    "Tempo tags for DCL mode.")    "Tempo tags for DCL mode.")
1912      
1913  (tempo-define-template "dcl-f$context"  (tempo-define-template "dcl-f$context"
1914                         '("f$context" dcl-tempo-left-paren                         '("f$context" dcl-tempo-left-paren
1915                           (p "context-type: ") dcl-tempo-comma                           (p "context-type: ") dcl-tempo-comma
1916                           (p "context-symbol: ") dcl-tempo-comma                           (p "context-symbol: ") dcl-tempo-comma
1917                           (p "selection-item: ") dcl-tempo-comma                           (p "selection-item: ") dcl-tempo-comma
# Line 1920  section at the end of the current buffer Line 1920  section at the end of the current buffer
1920                         "f$context" "" 'dcl-tempo-tags)                         "f$context" "" 'dcl-tempo-tags)
1921    
1922  (tempo-define-template "dcl-f$csid"  (tempo-define-template "dcl-f$csid"
1923                         '("f$csid" dcl-tempo-left-paren                         '("f$csid" dcl-tempo-left-paren
1924                           (p "context-symbol: ") dcl-tempo-right-paren)                           (p "context-symbol: ") dcl-tempo-right-paren)
1925                         "f$csid" "" 'dcl-tempo-tags)                         "f$csid" "" 'dcl-tempo-tags)
1926    
1927  (tempo-define-template "dcl-f$cvsi"  (tempo-define-template "dcl-f$cvsi"
1928                         '("f$cvsi" dcl-tempo-left-paren                         '("f$cvsi" dcl-tempo-left-paren
1929                           (p "start-bit: ") dcl-tempo-comma                           (p "start-bit: ") dcl-tempo-comma
1930                           (p "number-of-bits: ") dcl-tempo-comma                           (p "number-of-bits: ") dcl-tempo-comma
1931                           (p "string: ") dcl-tempo-right-paren)                           (p "string: ") dcl-tempo-right-paren)
1932                         "f$cvsi" "" 'dcl-tempo-tags)                         "f$cvsi" "" 'dcl-tempo-tags)
1933    
1934  (tempo-define-template "dcl-f$cvtime"  (tempo-define-template "dcl-f$cvtime"
1935                         '("f$cvtime" dcl-tempo-left-paren                         '("f$cvtime" dcl-tempo-left-paren
1936                           (p "[input_time]: ") dcl-tempo-comma                           (p "[input_time]: ") dcl-tempo-comma
1937                           (p "[output_time_format]: ") dcl-tempo-comma                           (p "[output_time_format]: ") dcl-tempo-comma
1938                           (p "[output_field]: ") dcl-tempo-right-paren)                           (p "[output_field]: ") dcl-tempo-right-paren)
1939                         "f$cvtime" "" 'dcl-tempo-tags)                         "f$cvtime" "" 'dcl-tempo-tags)
1940    
1941  (tempo-define-template "dcl-f$cvui"  (tempo-define-template "dcl-f$cvui"
1942                         '("f$cvui" dcl-tempo-left-paren                         '("f$cvui" dcl-tempo-left-paren
1943                           (p "start-bit: ") dcl-tempo-comma                           (p "start-bit: ") dcl-tempo-comma
1944                           (p "number-of-bits: ") dcl-tempo-comma                           (p "number-of-bits: ") dcl-tempo-comma
1945                           (p "string") dcl-tempo-right-paren)                           (p "string") dcl-tempo-right-paren)
1946                         "f$cvui" "" 'dcl-tempo-tags)                         "f$cvui" "" 'dcl-tempo-tags)
1947    
1948  (tempo-define-template "dcl-f$device"  (tempo-define-template "dcl-f$device"
1949                         '("f$device" dcl-tempo-left-paren                         '("f$device" dcl-tempo-left-paren
1950                           (p "[search_devnam]: ") dcl-tempo-comma                           (p "[search_devnam]: ") dcl-tempo-comma
1951                           (p "[devclass]: ") dcl-tempo-comma                           (p "[devclass]: ") dcl-tempo-comma
1952                           (p "[devtype]: ") dcl-tempo-comma                           (p "[devtype]: ") dcl-tempo-comma
# Line 1959  section at the end of the current buffer Line 1959  section at the end of the current buffer
1959                         "f$directory" "" 'dcl-tempo-tags)                         "f$directory" "" 'dcl-tempo-tags)
1960    
1961  (tempo-define-template "dcl-f$edit"  (tempo-define-template "dcl-f$edit"
1962                         '("f$edit" dcl-tempo-left-paren                         '("f$edit" dcl-tempo-left-paren
1963                           (p "string: ") dcl-tempo-comma                           (p "string: ") dcl-tempo-comma
1964                           (p "edit-list: ") dcl-tempo-right-paren)                           (p "edit-list: ") dcl-tempo-right-paren)
1965                         "f$edit" "" 'dcl-tempo-tags)                         "f$edit" "" 'dcl-tempo-tags)
1966    
1967  (tempo-define-template "dcl-f$element"  (tempo-define-template "dcl-f$element"
1968                         '("f$element" dcl-tempo-left-paren                         '("f$element" dcl-tempo-left-paren
1969                           (p "element-number: ") dcl-tempo-comma                           (p "element-number: ") dcl-tempo-comma
1970                           (p "delimiter: ") dcl-tempo-comma                           (p "delimiter: ") dcl-tempo-comma
1971                           (p "string: ") dcl-tempo-right-paren)                           (p "string: ") dcl-tempo-right-paren)
1972                         "f$element" "" 'dcl-tempo-tags)                         "f$element" "" 'dcl-tempo-tags)
1973    
1974  (tempo-define-template "dcl-f$environment"  (tempo-define-template "dcl-f$environment"
1975                         '("f$environment" dcl-tempo-left-paren                         '("f$environment" dcl-tempo-left-paren
1976                           (p "item: ") dcl-tempo-right-paren)                           (p "item: ") dcl-tempo-right-paren)
1977                         "f$environment" "" 'dcl-tempo-tags)                         "f$environment" "" 'dcl-tempo-tags)
1978    
1979  (tempo-define-template "dcl-f$extract"  (tempo-define-template "dcl-f$extract"
1980                         '("f$extract" dcl-tempo-left-paren                         '("f$extract" dcl-tempo-left-paren
1981                           (p "start: ") dcl-tempo-comma                           (p "start: ") dcl-tempo-comma
1982                           (p "length: ") dcl-tempo-comma                           (p "length: ") dcl-tempo-comma
1983                           (p "string: ") dcl-tempo-right-paren)                           (p "string: ") dcl-tempo-right-paren)
1984                         "f$extract" "" 'dcl-tempo-tags)                         "f$extract" "" 'dcl-tempo-tags)
1985    
1986  (tempo-define-template "dcl-f$fao"  (tempo-define-template "dcl-f$fao"
1987                         '("f$fao" dcl-tempo-left-paren                         '("f$fao" dcl-tempo-left-paren
1988                           (p "control-string: ") dcl-tempo-comma                           (p "control-string: ") dcl-tempo-comma
1989                           ("argument[,...]: ") dcl-tempo-right-paren)                           ("argument[,...]: ") dcl-tempo-right-paren)
1990                         "f$fao" "" 'dcl-tempo-tags)                         "f$fao" "" 'dcl-tempo-tags)
1991    
1992  (tempo-define-template "dcl-f$file_attributes"  (tempo-define-template "dcl-f$file_attributes"
1993                         '("f$file_attributes" dcl-tempo-left-paren                         '("f$file_attributes" dcl-tempo-left-paren
1994                           (p "filespec: ") dcl-tempo-comma                           (p "filespec: ") dcl-tempo-comma
1995                           (p "item: ") dcl-tempo-right-paren)                           (p "item: ") dcl-tempo-right-paren)
1996                         "f$file_attributes" "" 'dcl-tempo-tags)                         "f$file_attributes" "" 'dcl-tempo-tags)
1997    
1998  (tempo-define-template "dcl-f$getdvi"  (tempo-define-template "dcl-f$getdvi"
1999                         '("f$getdvi" dcl-tempo-left-paren                         '("f$getdvi" dcl-tempo-left-paren
2000                           (p "device-name: ") dcl-tempo-comma                           (p "device-name: ") dcl-tempo-comma
2001                           (p "item: ") dcl-tempo-right-paren)                           (p "item: ") dcl-tempo-right-paren)
2002                         "f$getdvi" "" 'dcl-tempo-tags)                         "f$getdvi" "" 'dcl-tempo-tags)
2003    
2004  (tempo-define-template "dcl-f$getjpi"  (tempo-define-template "dcl-f$getjpi"
2005                         '("f$getjpi" dcl-tempo-left-paren                         '("f$getjpi" dcl-tempo-left-paren
2006                           (p "pid: ") dcl-tempo-comma                           (p "pid: ") dcl-tempo-comma
2007                           (p "item: ") dcl-tempo-right-paren )                           (p "item: ") dcl-tempo-right-paren )
2008                         "f$getjpi" "" 'dcl-tempo-tags)                         "f$getjpi" "" 'dcl-tempo-tags)
2009    
2010  (tempo-define-template "dcl-f$getqui"  (tempo-define-template "dcl-f$getqui"
2011                         '("f$getqui" dcl-tempo-left-paren                         '("f$getqui" dcl-tempo-left-paren
2012                           (p "function: ") dcl-tempo-comma                           (p "function: ") dcl-tempo-comma
2013                           (p "[item]: ") dcl-tempo-comma                           (p "[item]: ") dcl-tempo-comma
2014                           (p "[object-id]: ") dcl-tempo-comma                           (p "[object-id]: ") dcl-tempo-comma
# Line 2016  section at the end of the current buffer Line 2016  section at the end of the current buffer
2016                         "f$getqui" "" 'dcl-tempo-tags)                         "f$getqui" "" 'dcl-tempo-tags)
2017    
2018  (tempo-define-template "dcl-f$getsyi"  (tempo-define-template "dcl-f$getsyi"
2019                         '("f$getsyi" dcl-tempo-left-paren                         '("f$getsyi" dcl-tempo-left-paren
2020                           (p "item: ") dcl-tempo-comma                           (p "item: ") dcl-tempo-comma
2021                           (p "[node-name]: ") dcl-tempo-comma                           (p "[node-name]: ") dcl-tempo-comma
2022                           (p "[cluster-id]: ") dcl-tempo-right-paren)                           (p "[cluster-id]: ") dcl-tempo-right-paren)
2023                         "f$getsyi" "" 'dcl-tempo-tags)                         "f$getsyi" "" 'dcl-tempo-tags)
2024    
2025  (tempo-define-template "dcl-f$identifier"  (tempo-define-template "dcl-f$identifier"
2026                         '("f$identifier" dcl-tempo-left-paren                         '("f$identifier" dcl-tempo-left-paren
2027                           (p "identifier: ") dcl-tempo-comma                           (p "identifier: ") dcl-tempo-comma
2028                           (p "conversion-type: ") dcl-tempo-right-paren)                           (p "conversion-type: ") dcl-tempo-right-paren)
2029                         "f$identifier" "" 'dcl-tempo-tags)                         "f$identifier" "" 'dcl-tempo-tags)
2030    
2031  (tempo-define-template "dcl-f$integer"  (tempo-define-template "dcl-f$integer"
2032                         '("f$integer" dcl-tempo-left-paren                         '("f$integer" dcl-tempo-left-paren
2033                           (p "expression: ") dcl-tempo-right-paren)                           (p "expression: ") dcl-tempo-right-paren)
2034                         "f$integer" "" 'dcl-tempo-tags)                         "f$integer" "" 'dcl-tempo-tags)
2035    
# Line 2039  section at the end of the current buffer Line 2039  section at the end of the current buffer
2039                         "f$length" "" 'dcl-tempo-tags)                         "f$length" "" 'dcl-tempo-tags)
2040    
2041  (tempo-define-template "dcl-f$locate"  (tempo-define-template "dcl-f$locate"
2042                         '("f$locate" dcl-tempo-left-paren                         '("f$locate" dcl-tempo-left-paren
2043                           (p "substring: ") dcl-tempo-comma                           (p "substring: ") dcl-tempo-comma
2044                           (p "string: ") dcl-tempo-right-paren)                           (p "string: ") dcl-tempo-right-paren)
2045                         "f$locate" "" 'dcl-tempo-tags)                         "f$locate" "" 'dcl-tempo-tags)
2046    
2047  (tempo-define-template "dcl-f$message"  (tempo-define-template "dcl-f$message"
2048                         '("f$message" dcl-tempo-left-paren                         '("f$message" dcl-tempo-left-paren
2049                           (p "status-code: ") dcl-tempo-right-paren )                           (p "status-code: ") dcl-tempo-right-paren )
2050                         "f$message" "" 'dcl-tempo-tags)                         "f$message" "" 'dcl-tempo-tags)
2051    
# Line 2054  section at the end of the current buffer Line 2054  section at the end of the current buffer
2054                         "f$mode" "" 'dcl-tempo-tags)                         "f$mode" "" 'dcl-tempo-tags)
2055    
2056  (tempo-define-template "dcl-f$parse"  (tempo-define-template "dcl-f$parse"
2057                         '("f$parse" dcl-tempo-left-paren                         '("f$parse" dcl-tempo-left-paren
2058                           (p "filespec: ") dcl-tempo-comma                           (p "filespec: ") dcl-tempo-comma
2059                           (p "[default-spec]: ") dcl-tempo-comma                           (p "[default-spec]: ") dcl-tempo-comma
2060                           (p "[related-spec]: ") dcl-tempo-comma                           (p "[related-spec]: ") dcl-tempo-comma
# Line 2063  section at the end of the current buffer Line 2063  section at the end of the current buffer
2063                         "f$parse" "" 'dcl-tempo-tags)                         "f$parse" "" 'dcl-tempo-tags)
2064    
2065  (tempo-define-template "dcl-f$pid"  (tempo-define-template "dcl-f$pid"
2066                         '("f$pid" dcl-tempo-left-paren                         '("f$pid" dcl-tempo-left-paren
2067                           (p "context-symbol: ") dcl-tempo-right-paren)                           (p "context-symbol: ") dcl-tempo-right-paren)
2068                         "f$pid" "" 'dcl-tempo-tags)                         "f$pid" "" 'dcl-tempo-tags)
2069    
2070  (tempo-define-template "dcl-f$privilege"  (tempo-define-template "dcl-f$privilege"
2071                         '("f$privilege" dcl-tempo-left-paren                         '("f$privilege" dcl-tempo-left-paren
2072                           (p "priv-states: ") dcl-tempo-right-paren)                           (p "priv-states: ") dcl-tempo-right-paren)
2073                         "f$privilege" "" 'dcl-tempo-tags)                         "f$privilege" "" 'dcl-tempo-tags)
2074    
# Line 2077  section at the end of the current buffer Line 2077  section at the end of the current buffer
2077                         "f$process" "" 'dcl-tempo-tags)                         "f$process" "" 'dcl-tempo-tags)
2078    
2079  (tempo-define-template "dcl-f$search"  (tempo-define-template "dcl-f$search"
2080                         '("f$search" dcl-tempo-left-paren                         '("f$search" dcl-tempo-left-paren
2081                           (p "filespec: ") dcl-tempo-comma                           (p "filespec: ") dcl-tempo-comma
2082                           (p "[stream-id]: ") dcl-tempo-right-paren)                           (p "[stream-id]: ") dcl-tempo-right-paren)
2083                         "f$search" "" 'dcl-tempo-tags)                         "f$search" "" 'dcl-tempo-tags)
2084    
2085  (tempo-define-template "dcl-f$setprv"  (tempo-define-template "dcl-f$setprv"
2086                         '("f$setprv" dcl-tempo-left-paren                         '("f$setprv" dcl-tempo-left-paren
2087                           (p "priv-states: ") dcl-tempo-right-paren)                           (p "priv-states: ") dcl-tempo-right-paren)
2088                         "f$setprv" "" 'dcl-tempo-tags)                         "f$setprv" "" 'dcl-tempo-tags)
2089    
2090  (tempo-define-template "dcl-f$string"  (tempo-define-template "dcl-f$string"
2091                         '("f$string" dcl-tempo-left-paren                         '("f$string" dcl-tempo-left-paren
2092                           (p "expression: ") dcl-tempo-right-paren)                           (p "expression: ") dcl-tempo-right-paren)
2093                         "f$string" "" 'dcl-tempo-tags)                         "f$string" "" 'dcl-tempo-tags)
2094    
# Line 2097  section at the end of the current buffer Line 2097  section at the end of the current buffer
2097                         "f$time" "" 'dcl-tempo-tags)                         "f$time" "" 'dcl-tempo-tags)
2098    
2099  (tempo-define-template "dcl-f$trnlnm"  (tempo-define-template "dcl-f$trnlnm"
2100                         '("f$trnlnm" dcl-tempo-left-paren                         '("f$trnlnm" dcl-tempo-left-paren
2101                           (p "logical-name: ") dcl-tempo-comma                           (p "logical-name: ") dcl-tempo-comma
2102                           (p "[table]: ") dcl-tempo-comma                           (p "[table]: ") dcl-tempo-comma
2103                           (p "[index]: ") dcl-tempo-comma                           (p "[index]: ") dcl-tempo-comma
# Line 2107  section at the end of the current buffer Line 2107  section at the end of the current buffer
2107                         "f$trnlnm" "" 'dcl-tempo-tags)                         "f$trnlnm" "" 'dcl-tempo-tags)
2108    
2109  (tempo-define-template "dcl-f$type"  (tempo-define-template "dcl-f$type"
2110                         '("f$type" dcl-tempo-left-paren                         '("f$type" dcl-tempo-left-paren
2111                           (p "symbol-name: ") dcl-tempo-right-paren)                           (p "symbol-name: ") dcl-tempo-right-paren)
2112                         "f$type" "" 'dcl-tempo-tags)                         "f$type" "" 'dcl-tempo-tags)
2113    
# Line 2116  section at the end of the current buffer Line 2116  section at the end of the current buffer
2116                         "f$user" "" 'dcl-tempo-tags)                         "f$user" "" 'dcl-tempo-tags)
2117    
2118  (tempo-define-template "dcl-f$verify"  (tempo-define-template "dcl-f$verify"
2119                         '("f$verify" dcl-tempo-left-paren                         '("f$verify" dcl-tempo-left-paren
2120                           (p "[procedure-value]: ") dcl-tempo-comma                           (p "[procedure-value]: ") dcl-tempo-comma
2121                           (p "[image-value]: ") dcl-tempo-right-paren)                           (p "[image-value]: ") dcl-tempo-right-paren)
2122                         "f$verify" "" 'dcl-tempo-tags)                         "f$verify" "" 'dcl-tempo-tags)
# Line 2171  otherwise return nil." Line 2171  otherwise return nil."
2171            ()            ()
2172          (equal start (match-end 0))))))          (equal start (match-end 0))))))
2173    
2174                            
2175  ;;;-------------------------------------------------------------------------  ;;;-------------------------------------------------------------------------
2176  (defun dcl-imenu-create-index-function ()  (defun dcl-imenu-create-index-function ()
2177    "Jacket routine to make imenu searches non case sensitive."    "Jacket routine to make imenu searches non case sensitive."

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26