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 |
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 |
|
;; * Better font-lock support. |
55 |
;; * Change meaning of `left margin' when dcl-tab-always-indent is nil. |
;; * Change meaning of `left margin' when dcl-tab-always-indent is nil. |
56 |
;; Consider the following line (`_' is the cursor): |
;; Consider the following line (`_' is the cursor): |
57 |
;; $ label: _ command |
;; $ label: _ command |
72 |
|
|
73 |
;;; *** Customization ***************************************************** |
;;; *** Customization ***************************************************** |
74 |
|
|
75 |
|
|
76 |
|
;; First, font lock. This is a minimal approach, please improve! |
77 |
|
|
78 |
|
(defvar dcl-font-lock-keywords |
79 |
|
'(("\\<\\(if\\|then\\|else\\|endif\\)\\>" |
80 |
|
1 font-lock-keyword-face) |
81 |
|
("\\<f[$][a-z]+\\>" |
82 |
|
0 font-lock-builtin-face) |
83 |
|
("[.]\\(eq\\|not\\|or\\|and\\|lt\\|gt\\|le\\|ge\\|eqs\\|nes\\)[.]" |
84 |
|
0 font-lock-builtin-face)) |
85 |
|
"Font lock keyword specification for DCL mode. |
86 |
|
Presently this includes some syntax, .OP.erators, and \"f$\" lexicals.") |
87 |
|
|
88 |
|
(defvar dcl-font-lock-defaults |
89 |
|
'(dcl-font-lock-keywords nil) |
90 |
|
"Font lock specification for DCL mode.") |
91 |
|
|
92 |
|
|
93 |
|
;; Now the rest. |
94 |
|
|
95 |
(defgroup dcl nil |
(defgroup dcl nil |
96 |
"Major mode for editing DCL command files." |
"Major mode for editing DCL command files." |
97 |
:group 'languages) |
:group 'languages) |
119 |
|
|
120 |
(defcustom dcl-margin-offset 8 |
(defcustom dcl-margin-offset 8 |
121 |
"*Indentation for the first command line in DCL. |
"*Indentation for the first command line in DCL. |
122 |
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 |
123 |
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 |
124 |
the preceding command line. |
the preceding command line. |
125 |
A command line is a line that starts with `$'." |
A command line is a line that starts with `$'." |
158 |
|
|
159 |
(defcustom dcl-calc-command-indent-function nil |
(defcustom dcl-calc-command-indent-function nil |
160 |
"*Function to calculate indentation for a command line in DCL. |
"*Function to calculate indentation for a command line in DCL. |
161 |
If this variable is non-nil it is called as a function: |
If this variable is non-nil it is called as a function: |
162 |
|
|
163 |
\(func INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT) |
\(func INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT) |
164 |
|
|
165 |
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 |
166 |
nil to get the default indentation. |
nil to get the default indentation. |
167 |
|
|
168 |
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. |
171 |
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. |
172 |
first-line indentation for the first line in a buffer or SUBROUTINE. |
first-line indentation for the first line in a buffer or SUBROUTINE. |
173 |
CUR-INDENT is the indentation of the preceding command line. |
CUR-INDENT is the indentation of the preceding command line. |
174 |
EXTRA-INDENT is the default change in indentation for this line |
EXTRA-INDENT is the default change in indentation for this line |
175 |
\(a negative number for 'outdent). |
\(a negative number for 'outdent). |
176 |
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 |
177 |
previous line or nil if the current line is the first line. |
previous line or nil if the current line is the first line. |
178 |
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 |
179 |
current line. |
current line. |
180 |
|
|
181 |
If this variable is nil, the indentation is calculated as |
If this variable is nil, the indentation is calculated as |
182 |
CUR-INDENT + EXTRA-INDENT. |
CUR-INDENT + EXTRA-INDENT. |
183 |
|
|
184 |
This package includes two functions suitable for this: |
This package includes two functions suitable for this: |
190 |
|
|
191 |
(defcustom dcl-calc-cont-indent-function 'dcl-calc-cont-indent-relative |
(defcustom dcl-calc-cont-indent-function 'dcl-calc-cont-indent-relative |
192 |
"*Function to calculate indentation for a continuation line. |
"*Function to calculate indentation for a continuation line. |
193 |
If this variable is non-nil it is called as a function: |
If this variable is non-nil it is called as a function: |
194 |
|
|
195 |
\(func CUR-INDENT EXTRA-INDENT) |
\(func CUR-INDENT EXTRA-INDENT) |
196 |
|
|
197 |
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 |
198 |
nil to get the default indentation. |
nil to get the default indentation. |
199 |
|
|
200 |
If this variable is nil, the indentation is calculated as |
If this variable is nil, the indentation is calculated as |
201 |
CUR-INDENT + EXTRA-INDENT. |
CUR-INDENT + EXTRA-INDENT. |
202 |
|
|
203 |
This package includes one function suitable for this: |
This package includes one function suitable for this: |
210 |
"*Controls the operation of the TAB key in DCL mode. |
"*Controls the operation of the TAB key in DCL mode. |
211 |
If t, pressing TAB always indents the current line. |
If t, pressing TAB always indents the current line. |
212 |
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. |
213 |
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 |
214 |
never indented." |
never indented." |
215 |
:type 'boolean |
:type 'boolean |
216 |
:group 'dcl) |
:group 'dcl) |
267 |
"*Default imenu generic expression for DCL. |
"*Default imenu generic expression for DCL. |
268 |
|
|
269 |
The default includes SUBROUTINE labels in the main listing and |
The default includes SUBROUTINE labels in the main listing and |
270 |
sub-listings for other labels, CALL, GOTO and GOSUB statements. |
sub-listings for other labels, CALL, GOTO and GOSUB statements. |
271 |
See `imenu-generic-expression' for details." |
See `imenu-generic-expression' for details." |
272 |
:type '(repeat (sexp :tag "Imenu Expression")) |
:type '(repeat (sexp :tag "Imenu Expression")) |
273 |
:group 'dcl) |
:group 'dcl) |
291 |
(modify-syntax-entry ?\n ">" dcl-mode-syntax-table) ; comment end |
(modify-syntax-entry ?\n ">" dcl-mode-syntax-table) ; comment end |
292 |
(modify-syntax-entry ?< "(>" dcl-mode-syntax-table) ; < and ... |
(modify-syntax-entry ?< "(>" dcl-mode-syntax-table) ; < and ... |
293 |
(modify-syntax-entry ?> ")<" dcl-mode-syntax-table) ; > is a matching pair |
(modify-syntax-entry ?> ")<" dcl-mode-syntax-table) ; > is a matching pair |
294 |
) |
) |
295 |
|
|
296 |
|
|
297 |
(defvar dcl-mode-map () |
(defvar dcl-mode-map () |
378 |
:group 'dcl) |
:group 'dcl) |
379 |
|
|
380 |
|
|
381 |
(defcustom dcl-cmd-r |
(defcustom dcl-cmd-r |
382 |
"^\\$\\(.*-[ \t]*\\(!.*\\)*\n\\)*[^!\"\n]*\\(\".*\\(\"\".*\\)*\"\\)*[^!\"\n]*" |
"^\\$\\(.*-[ \t]*\\(!.*\\)*\n\\)*[^!\"\n]*\\(\".*\\(\"\".*\\)*\"\\)*[^!\"\n]*" |
383 |
"Regular expression describing a DCL command line up to a trailing comment. |
"Regular expression describing a DCL command line up to a trailing comment. |
384 |
A line starting with $, optionally followed by continuation lines, |
A line starting with $, optionally followed by continuation lines, |
389 |
:group 'dcl) |
:group 'dcl) |
390 |
|
|
391 |
|
|
392 |
(defcustom dcl-command-regexp |
(defcustom dcl-command-regexp |
393 |
"^\\$\\(.*-[ \t]*\\(!.*\\)*\n\\)*.*\\(\".*\\(\"\".*\\)*\"\\)*" |
"^\\$\\(.*-[ \t]*\\(!.*\\)*\n\\)*.*\\(\".*\\(\"\".*\\)*\"\\)*" |
394 |
"Regular expression describing a DCL command line. |
"Regular expression describing a DCL command line. |
395 |
A line starting with $, optionally followed by continuation lines, |
A line starting with $, optionally followed by continuation lines, |
413 |
:group 'dcl) |
:group 'dcl) |
414 |
|
|
415 |
|
|
416 |
(defvar dcl-option-alist |
(defvar dcl-option-alist |
417 |
'((dcl-basic-offset dcl-option-value-basic) |
'((dcl-basic-offset dcl-option-value-basic) |
418 |
(dcl-continuation-offset curval) |
(dcl-continuation-offset curval) |
419 |
(dcl-margin-offset dcl-option-value-margin-offset) |
(dcl-margin-offset dcl-option-value-margin-offset) |
421 |
(dcl-comment-line-regexp dcl-option-value-comment-line) |
(dcl-comment-line-regexp dcl-option-value-comment-line) |
422 |
(dcl-block-begin-regexp curval) |
(dcl-block-begin-regexp curval) |
423 |
(dcl-block-end-regexp curval) |
(dcl-block-end-regexp curval) |
424 |
(dcl-tab-always-indent toggle) |
(dcl-tab-always-indent toggle) |
425 |
(dcl-electric-characters toggle) |
(dcl-electric-characters toggle) |
426 |
(dcl-electric-reindent-regexps curval) |
(dcl-electric-reindent-regexps curval) |
427 |
(dcl-tempo-comma curval) |
(dcl-tempo-comma curval) |
428 |
(dcl-tempo-left-paren curval) |
(dcl-tempo-left-paren curval) |
429 |
(dcl-tempo-right-paren curval) |
(dcl-tempo-right-paren curval) |
430 |
(dcl-calc-command-indent-function curval) |
(dcl-calc-command-indent-function curval) |
431 |
(dcl-calc-cont-indent-function curval) |
(dcl-calc-cont-indent-function curval) |
432 |
(comment-start curval) |
(comment-start curval) |
442 |
toggle the opposite of the current value (for t/nil)") |
toggle the opposite of the current value (for t/nil)") |
443 |
|
|
444 |
|
|
445 |
(defvar dcl-option-history |
(defvar dcl-option-history |
446 |
(mapcar (lambda (option-assoc) |
(mapcar (lambda (option-assoc) |
447 |
(format "%s" (car option-assoc))) |
(format "%s" (car option-assoc))) |
448 |
dcl-option-alist) |
dcl-option-alist) |
464 |
; "*Default imenu generic expression for DCL. |
; "*Default imenu generic expression for DCL. |
465 |
|
|
466 |
;The default includes SUBROUTINE labels in the main listing and |
;The default includes SUBROUTINE labels in the main listing and |
467 |
;sub-listings for other labels, CALL, GOTO and GOSUB statements. |
;sub-listings for other labels, CALL, GOTO and GOSUB statements. |
468 |
;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 |
469 |
;for details.") |
;for details.") |
470 |
|
|
481 |
dcl-block-end-regexp.) |
dcl-block-end-regexp.) |
482 |
|
|
483 |
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. |
484 |
Whole-line comments (matching dcl-comment-line-regexp) are not indented. |
Whole-line comments (matching dcl-comment-line-regexp) are not indented. |
485 |
Data lines are not indented. |
Data lines are not indented. |
486 |
|
|
487 |
Key bindings: |
Key bindings: |
509 |
Indentation for a label. |
Indentation for a label. |
510 |
|
|
511 |
dcl-comment-line-regexp |
dcl-comment-line-regexp |
512 |
Lines matching this regexp will not be indented. |
Lines matching this regexp will not be indented. |
513 |
|
|
514 |
dcl-block-begin-regexp |
dcl-block-begin-regexp |
515 |
dcl-block-end-regexp |
dcl-block-end-regexp |
532 |
|
|
533 |
dcl-tab-always-indent |
dcl-tab-always-indent |
534 |
If t, pressing TAB always indents the current line. |
If t, pressing TAB always indents the current line. |
535 |
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 |
536 |
margin. |
margin. |
537 |
|
|
538 |
dcl-electric-characters |
dcl-electric-characters |
539 |
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 |
540 |
typed. |
typed. |
541 |
|
|
551 |
dcl-imenu-generic-expression |
dcl-imenu-generic-expression |
552 |
Default value for imenu-generic-expression. The default includes |
Default value for imenu-generic-expression. The default includes |
553 |
SUBROUTINE labels in the main listing and sub-listings for |
SUBROUTINE labels in the main listing and sub-listings for |
554 |
other labels, CALL, GOTO and GOSUB statements. |
other labels, CALL, GOTO and GOSUB statements. |
555 |
|
|
556 |
dcl-imenu-label-labels |
dcl-imenu-label-labels |
557 |
dcl-imenu-label-goto |
dcl-imenu-label-goto |
560 |
Change the text that is used as sub-listing labels in imenu. |
Change the text that is used as sub-listing labels in imenu. |
561 |
|
|
562 |
Loading this package calls the value of the variable |
Loading this package calls the value of the variable |
563 |
`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. |
564 |
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' |
565 |
with no args, if that value is non-nil. |
with no args, if that value is non-nil. |
566 |
|
|
567 |
|
|
568 |
The following example uses the default values for all variables: |
The following example uses the default values for all variables: |
569 |
|
|
570 |
$! This is a comment line that is not indented (it matches |
$! This is a comment line that is not indented (it matches |
571 |
$! dcl-comment-line-regexp) |
$! dcl-comment-line-regexp) |
572 |
$! Next follows the first command line. It is indented dcl-margin-offset. |
$! Next follows the first command line. It is indented dcl-margin-offset. |
573 |
$ i = 1 |
$ i = 1 |
574 |
$ ! Other comments are indented like command lines. |
$ ! Other comments are indented like command lines. |
575 |
$ ! A margin label indented dcl-margin-label-offset: |
$ ! A margin label indented dcl-margin-label-offset: |
576 |
$ label: |
$ label: |
577 |
$ if i.eq.1 |
$ if i.eq.1 |
578 |
$ then |
$ then |
579 |
$ ! Lines between THEN-ELSE and ELSE-ENDIF are |
$ ! Lines between THEN-ELSE and ELSE-ENDIF are |
580 |
$ ! indented dcl-basic-offset |
$ ! indented dcl-basic-offset |
581 |
$ loop1: ! This matches dcl-block-begin-regexp... |
$ loop1: ! This matches dcl-block-begin-regexp... |
582 |
$ ! ...so this line is indented dcl-basic-offset |
$ ! ...so this line is indented dcl-basic-offset |
583 |
$ text = \"This \" + - ! is a continued line |
$ text = \"This \" + - ! is a continued line |
584 |
\"lined up with the command line\" |
\"lined up with the command line\" |
585 |
$ type sys$input |
$ type sys$input |
586 |
Data lines are not indented at all. |
Data lines are not indented at all. |
587 |
$ endloop1: ! This matches dcl-block-end-regexp |
$ endloop1: ! This matches dcl-block-end-regexp |
588 |
$ endif |
$ endif |
589 |
$ |
$ |
590 |
" |
|
591 |
|
|
592 |
|
There is some minimal font-lock support (see vars |
593 |
|
`dcl-font-lock-defaults' and `dcl-font-lock-keywords')." |
594 |
(interactive) |
(interactive) |
595 |
(kill-all-local-variables) |
(kill-all-local-variables) |
596 |
(set-syntax-table dcl-mode-syntax-table) |
(set-syntax-table dcl-mode-syntax-table) |
606 |
|
|
607 |
(make-local-variable 'comment-multi-line) |
(make-local-variable 'comment-multi-line) |
608 |
(setq comment-multi-line nil) |
(setq comment-multi-line nil) |
609 |
|
|
610 |
;; This used to be "^\\$[ \t]*![ \t]*" which looks more correct. |
;; This used to be "^\\$[ \t]*![ \t]*" which looks more correct. |
611 |
;; 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 |
612 |
;; C-M-j repeatedly - only the first line became a comment line. |
;; C-M-j repeatedly - only the first line became a comment line. |
632 |
(make-local-variable 'dcl-calc-command-indent-function) |
(make-local-variable 'dcl-calc-command-indent-function) |
633 |
(make-local-variable 'dcl-calc-cont-indent-function) |
(make-local-variable 'dcl-calc-cont-indent-function) |
634 |
(make-local-variable 'dcl-electric-reindent-regexps) |
(make-local-variable 'dcl-electric-reindent-regexps) |
635 |
|
|
636 |
|
;; font lock |
637 |
|
(make-local-variable 'font-lock-defaults) |
638 |
|
(setq font-lock-defaults dcl-font-lock-defaults) |
639 |
|
|
640 |
(setq major-mode 'dcl-mode) |
(setq major-mode 'dcl-mode) |
641 |
(setq mode-name "DCL") |
(setq mode-name "DCL") |
642 |
(use-local-map dcl-mode-map) |
(use-local-map dcl-mode-map) |
696 |
"Move backward to a command. |
"Move backward to a command. |
697 |
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, |
698 |
a command line with only a comment, only contains a `$' or only |
a command line with only a comment, only contains a `$' or only |
699 |
contains a label. |
contains a label. |
700 |
|
|
701 |
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." |
702 |
(interactive) |
(interactive) |
740 |
"Move forward to a command. |
"Move forward to a command. |
741 |
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, |
742 |
a command line with only a comment, only contains a `$' or only |
a command line with only a comment, only contains a `$' or only |
743 |
contains a label. |
contains a label. |
744 |
|
|
745 |
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." |
746 |
(interactive) |
(interactive) |
790 |
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 |
791 |
in the comment. |
in the comment. |
792 |
|
|
793 |
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 |
794 |
`interesting' points closer to the left margin, and then back to the |
`interesting' points closer to the left margin, and then back to the |
795 |
rightmost point again. |
rightmost point again. |
796 |
|
|
797 |
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 |
798 |
by the numbers in order 1-2-3-1-... : |
by the numbers in order 1-2-3-1-... : |
813 |
;; $ ! text |
;; $ ! text |
814 |
;; 3 2 1 |
;; 3 2 1 |
815 |
;; |
;; |
816 |
;; $ l: command ! |
;; $ l: command ! |
817 |
;; 3 2 1 |
;; 3 2 1 |
818 |
;; |
;; |
819 |
;; text |
;; text |
835 |
(setq last-good-point (point))) |
(setq last-good-point (point))) |
836 |
|
|
837 |
(cond |
(cond |
838 |
;; Special treatment for comment lines. We are trying to allow |
;; Special treatment for comment lines. We are trying to allow |
839 |
;; things like "$ !*" as comment lines. |
;; things like "$ !*" as comment lines. |
840 |
((looking-at dcl-comment-line-regexp) |
((looking-at dcl-comment-line-regexp) |
841 |
(re-search-forward (concat dcl-comment-line-regexp "[ \t]*") limit t) |
(re-search-forward (concat dcl-comment-line-regexp "[ \t]*") limit t) |
929 |
(dcl-back-to-indentation) |
(dcl-back-to-indentation) |
930 |
(point))) |
(point))) |
931 |
|
|
932 |
|
|
933 |
;;;--------------------------------------------------------------------------- |
;;;--------------------------------------------------------------------------- |
934 |
(defun dcl-show-line-type () |
(defun dcl-show-line-type () |
935 |
"Test dcl-get-line-type." |
"Test dcl-get-line-type." |
1007 |
|
|
1008 |
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 |
1009 |
dcl-electric-reindent-regexps and define the key \"n\" as |
dcl-electric-reindent-regexps and define the key \"n\" as |
1010 |
dcl-electric-character. |
dcl-electric-character. |
1011 |
" |
" |
1012 |
(let ((case-fold-search t)) |
(let ((case-fold-search t)) |
1013 |
(save-excursion |
(save-excursion |
1031 |
(- (+ cur-indent extra-indent) 2)) |
(- (+ cur-indent extra-indent) 2)) |
1032 |
((looking-at "\\belse\\b") |
((looking-at "\\belse\\b") |
1033 |
(- (+ cur-indent extra-indent) 2)))) |
(- (+ cur-indent extra-indent) 2)))) |
1034 |
;; Outdent, this word is `endif' or `else': + 2 |
;; Outdent, this word is `endif' or `else': + 2 |
1035 |
((equal indent-type 'outdent) |
((equal indent-type 'outdent) |
1036 |
(goto-char this-point) |
(goto-char this-point) |
1037 |
(cond |
(cond |
1056 |
|
|
1057 |
If the current line should be outdented, calculate its indentation, |
If the current line should be outdented, calculate its indentation, |
1058 |
either with the default method or by calling |
either with the default method or by calling |
1059 |
dcl-calc-command-indent-function if it is non-nil. |
dcl-calc-command-indent-function if it is non-nil. |
1060 |
|
|
1061 |
|
|
1062 |
Rules for default indentation: |
Rules for default indentation: |
1063 |
|
|
1064 |
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. |
1065 |
|
|
1066 |
Go to the previous command line with a command on it. |
Go to the previous command line with a command on it. |
1067 |
Find out how much it is indented (cur-indent). |
Find out how much it is indented (cur-indent). |
1068 |
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 |
1069 |
adjusted. Skip margin-label, continuations and comments while looking for |
adjusted. Skip margin-label, continuations and comments while looking for |
1070 |
the first word. Save this buffer position as `last-point'. |
the first word. Save this buffer position as `last-point'. |
1071 |
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 |
1072 |
dcl-margin-offset. |
dcl-margin-offset. |
1073 |
|
|
1074 |
First word extra-indent |
First word extra-indent |
1078 |
|
|
1079 |
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 |
1080 |
indentation should be adjusted again. Save this buffer position as |
indentation should be adjusted again. Save this buffer position as |
1081 |
`this-point'. |
`this-point'. |
1082 |
|
|
1083 |
First word extra-indent |
First word extra-indent |
1084 |
ELSE -dcl-basic-offset |
ELSE -dcl-basic-offset |
1091 |
|
|
1092 |
If an extra adjustment is necessary and if |
If an extra adjustment is necessary and if |
1093 |
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 |
1094 |
to cur-indent+extra-indent. |
to cur-indent+extra-indent. |
1095 |
|
|
1096 |
See also documentation for dcl-calc-command-indent-function. |
See also documentation for dcl-calc-command-indent-function. |
1097 |
The indent-type classification could probably be expanded upon. |
The indent-type classification could probably be expanded upon. |
1134 |
;; We couldn't go further back, so this must have been the |
;; We couldn't go further back, so this must have been the |
1135 |
;; first line. |
;; first line. |
1136 |
(setq cur-indent dcl-margin-offset |
(setq cur-indent dcl-margin-offset |
1137 |
last-point (dcl-indentation-point)) |
last-point (dcl-indentation-point)) |
1138 |
(setq done t))) |
(setq done t))) |
1139 |
;; Examine the line to get current indentation and possibly a |
;; Examine the line to get current indentation and possibly a |
1140 |
;; reason to indent. |
;; reason to indent. |
1218 |
* the second word on the command line |
* the second word on the command line |
1219 |
$ set default - |
$ set default - |
1220 |
[-] |
[-] |
1221 |
* the word after an asignment |
* the word after an assignment |
1222 |
$ a = b + - |
$ a = b + - |
1223 |
d |
d |
1224 |
* the third word if it's a qualifier |
* the third word if it's a qualifier |
1230 |
yyy))) |
yyy))) |
1231 |
" |
" |
1232 |
(let ((case-fold-search t) |
(let ((case-fold-search t) |
1233 |
indent) |
indent) |
1234 |
(save-excursion |
(save-excursion |
1235 |
(dcl-beginning-of-statement) |
(dcl-beginning-of-statement) |
1236 |
(let ((end (save-excursion (forward-line 1) (point)))) |
(let ((end (save-excursion (forward-line 1) (point)))) |
1249 |
(skip-chars-forward " \t:=" end))) |
(skip-chars-forward " \t:=" end))) |
1250 |
;; This could be the position to indent to |
;; This could be the position to indent to |
1251 |
(setq indent (current-column)) |
(setq indent (current-column)) |
1252 |
|
|
1253 |
;; Move to the next word unless we have seen an |
;; Move to the next word unless we have seen an |
1254 |
;; assignment. If it starts with `/' it's a |
;; assignment. If it starts with `/' it's a |
1255 |
;; qualifier and we will indent to that position |
;; qualifier and we will indent to that position |
1356 |
(re-search-forward dcl-label-r))) |
(re-search-forward dcl-label-r))) |
1357 |
(dcl-indent-to indent 1) |
(dcl-indent-to indent 1) |
1358 |
) |
) |
1359 |
;; |
;; |
1360 |
(if (> (- (point-max) pos) (point)) |
(if (> (- (point-max) pos) (point)) |
1361 |
(goto-char (- (point-max) pos))) |
(goto-char (- (point-max) pos))) |
1362 |
)) |
)) |
1404 |
(t |
(t |
1405 |
(message "dcl-indent-line: unknown type")) |
(message "dcl-indent-line: unknown type")) |
1406 |
))) |
))) |
1407 |
|
|
1408 |
|
|
1409 |
;;;------------------------------------------------------------------------- |
;;;------------------------------------------------------------------------- |
1410 |
(defun dcl-indent-command () |
(defun dcl-indent-command () |
1434 |
(start-point (point))) |
(start-point (point))) |
1435 |
(cond |
(cond |
1436 |
;; Data line : always insert tab |
;; Data line : always insert tab |
1437 |
((or (equal type 'data) (equal type 'empty-data)) |
((or (equal type 'data) (equal type 'empty-data)) |
1438 |
(tab-to-tab-stop)) |
(tab-to-tab-stop)) |
1439 |
;; Indent only at start of line |
;; Indent only at start of line |
1440 |
((not dcl-tab-always-indent) ; nil |
((not dcl-tab-always-indent) ; nil |
1441 |
(let ((search-end-point |
(let ((search-end-point |
1442 |
(save-excursion |
(save-excursion |
1456 |
;;;------------------------------------------------------------------------- |
;;;------------------------------------------------------------------------- |
1457 |
(defun dcl-electric-character (arg) |
(defun dcl-electric-character (arg) |
1458 |
"Inserts a character and indents if necessary. |
"Inserts a character and indents if necessary. |
1459 |
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 |
1460 |
`dcl-electric-characters' is not set. If an argument was given, |
`dcl-electric-characters' is not set. If an argument was given, |
1461 |
insert that many characters. |
insert that many characters. |
1462 |
|
|
1471 |
(self-insert-command 1) |
(self-insert-command 1) |
1472 |
(let ((case-fold-search t)) |
(let ((case-fold-search t)) |
1473 |
;; There must be a better way than (memq t ...). |
;; There must be a better way than (memq t ...). |
1474 |
;; (apply 'or ...) didn't work |
;; (apply 'or ...) didn't work |
1475 |
(if (memq t (mapcar 'dcl-was-looking-at dcl-electric-reindent-regexps)) |
(if (memq t (mapcar 'dcl-was-looking-at dcl-electric-reindent-regexps)) |
1476 |
(dcl-indent-line))))) |
(dcl-indent-line))))) |
1477 |
|
|
1491 |
(progn |
(progn |
1492 |
(dcl-delete-chars " \t") |
(dcl-delete-chars " \t") |
1493 |
(indent-to col minimum))))) |
(indent-to col minimum))))) |
1494 |
|
|
1495 |
|
|
1496 |
;;;------------------------------------------------------------------------- |
;;;------------------------------------------------------------------------- |
1497 |
(defun dcl-split-line () |
(defun dcl-split-line () |
1539 |
(if (not done) ; normal M-LFD action |
(if (not done) ; normal M-LFD action |
1540 |
(indent-new-comment-line)))) |
(indent-new-comment-line)))) |
1541 |
|
|
1542 |
|
|
1543 |
;;;------------------------------------------------------------------------- |
;;;------------------------------------------------------------------------- |
1544 |
(defun dcl-delete-indentation (&optional arg) |
(defun dcl-delete-indentation (&optional arg) |
1545 |
"Join this line to previous like delete-indentation. |
"Join this line to previous like delete-indentation. |
1610 |
(defun dcl-option-value-margin-offset (option-assoc) |
(defun dcl-option-value-margin-offset (option-assoc) |
1611 |
"Guess a value for margin offset. |
"Guess a value for margin offset. |
1612 |
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 |
1613 |
counting labels. |
counting labels. |
1614 |
Returns a number as a string." |
Returns a number as a string." |
1615 |
(save-excursion |
(save-excursion |
1616 |
(beginning-of-line) |
(beginning-of-line) |
1638 |
(let ((regexp (buffer-substring (match-beginning 0) (match-end 0)))) |
(let ((regexp (buffer-substring (match-beginning 0) (match-end 0)))) |
1639 |
(concat "^" (regexp-quote regexp))) |
(concat "^" (regexp-quote regexp))) |
1640 |
dcl-comment-line-regexp)))) |
dcl-comment-line-regexp)))) |
1641 |
|
|
1642 |
|
|
1643 |
;;;------------------------------------------------------------------------- |
;;;------------------------------------------------------------------------- |
1644 |
(defun dcl-guess-option-value (option) |
(defun dcl-guess-option-value (option) |
1729 |
(and next-indent |
(and next-indent |
1730 |
(/= (- this-indent next-indent) 0)))))) |
(/= (- this-indent next-indent) 0)))))) |
1731 |
"dcl-basic-offset") |
"dcl-basic-offset") |
1732 |
;; No more guesses. |
;; No more guesses. |
1733 |
(t |
(t |
1734 |
"")))) |
"")))) |
1735 |
|
|
1767 |
;;;------------------------------------------------------------------------- |
;;;------------------------------------------------------------------------- |
1768 |
(defun dcl-save-local-variable (var &optional def-prefix def-suffix) |
(defun dcl-save-local-variable (var &optional def-prefix def-suffix) |
1769 |
"Save a variable in a `Local Variables' list. |
"Save a variable in a `Local Variables' list. |
1770 |
Set or update the value of VAR in the current buffers |
Set or update the value of VAR in the current buffers |
1771 |
`Local Variables:' list." |
`Local Variables:' list." |
1772 |
;; Look for "Local variables:" line in last page. |
;; Look for "Local variables:" line in last page. |
1773 |
(save-excursion |
(save-excursion |
1774 |
(goto-char (point-max)) |
(goto-char (point-max)) |
1818 |
;; Not found. Insert a new entry before this line |
;; Not found. Insert a new entry before this line |
1819 |
(setq continue nil) |
(setq continue nil) |
1820 |
(beginning-of-line) |
(beginning-of-line) |
1821 |
(insert (concat prefix-string (symbol-name var) ": " |
(insert (concat prefix-string (symbol-name var) ": " |
1822 |
(prin1-to-string (eval var)) " " |
(prin1-to-string (eval var)) " " |
1823 |
suffix-string "\n"))) |
suffix-string "\n"))) |
1824 |
;; Is it the variable we are looking for? |
;; Is it the variable we are looking for? |
1864 |
comment-end |
comment-end |
1865 |
(concat " " comment-end)))))) |
(concat " " comment-end)))))) |
1866 |
(insert (concat def-prefix "Local variables:" def-suffix "\n")) |
(insert (concat def-prefix "Local variables:" def-suffix "\n")) |
1867 |
(insert (concat def-prefix (symbol-name var) ": " |
(insert (concat def-prefix (symbol-name var) ": " |
1868 |
(prin1-to-string (eval var)) def-suffix "\n")) |
(prin1-to-string (eval var)) def-suffix "\n")) |
1869 |
(insert (concat def-prefix "end:" def-suffix))) |
(insert (concat def-prefix "end:" def-suffix))) |
1870 |
))) |
))) |
1937 |
(require 'tempo) |
(require 'tempo) |
1938 |
(defvar dcl-tempo-tags nil |
(defvar dcl-tempo-tags nil |
1939 |
"Tempo tags for DCL mode.") |
"Tempo tags for DCL mode.") |
1940 |
|
|
1941 |
(tempo-define-template "dcl-f$context" |
(tempo-define-template "dcl-f$context" |
1942 |
'("f$context" dcl-tempo-left-paren |
'("f$context" dcl-tempo-left-paren |
1943 |
(p "context-type: ") dcl-tempo-comma |
(p "context-type: ") dcl-tempo-comma |
1944 |
(p "context-symbol: ") dcl-tempo-comma |
(p "context-symbol: ") dcl-tempo-comma |
1945 |
(p "selection-item: ") dcl-tempo-comma |
(p "selection-item: ") dcl-tempo-comma |
1948 |
"f$context" "" 'dcl-tempo-tags) |
"f$context" "" 'dcl-tempo-tags) |
1949 |
|
|
1950 |
(tempo-define-template "dcl-f$csid" |
(tempo-define-template "dcl-f$csid" |
1951 |
'("f$csid" dcl-tempo-left-paren |
'("f$csid" dcl-tempo-left-paren |
1952 |
(p "context-symbol: ") dcl-tempo-right-paren) |
(p "context-symbol: ") dcl-tempo-right-paren) |
1953 |
"f$csid" "" 'dcl-tempo-tags) |
"f$csid" "" 'dcl-tempo-tags) |
1954 |
|
|
1955 |
(tempo-define-template "dcl-f$cvsi" |
(tempo-define-template "dcl-f$cvsi" |
1956 |
'("f$cvsi" dcl-tempo-left-paren |
'("f$cvsi" dcl-tempo-left-paren |
1957 |
(p "start-bit: ") dcl-tempo-comma |
(p "start-bit: ") dcl-tempo-comma |
1958 |
(p "number-of-bits: ") dcl-tempo-comma |
(p "number-of-bits: ") dcl-tempo-comma |
1959 |
(p "string: ") dcl-tempo-right-paren) |
(p "string: ") dcl-tempo-right-paren) |
1960 |
"f$cvsi" "" 'dcl-tempo-tags) |
"f$cvsi" "" 'dcl-tempo-tags) |
1961 |
|
|
1962 |
(tempo-define-template "dcl-f$cvtime" |
(tempo-define-template "dcl-f$cvtime" |
1963 |
'("f$cvtime" dcl-tempo-left-paren |
'("f$cvtime" dcl-tempo-left-paren |
1964 |
(p "[input_time]: ") dcl-tempo-comma |
(p "[input_time]: ") dcl-tempo-comma |
1965 |
(p "[output_time_format]: ") dcl-tempo-comma |
(p "[output_time_format]: ") dcl-tempo-comma |
1966 |
(p "[output_field]: ") dcl-tempo-right-paren) |
(p "[output_field]: ") dcl-tempo-right-paren) |
1967 |
"f$cvtime" "" 'dcl-tempo-tags) |
"f$cvtime" "" 'dcl-tempo-tags) |
1968 |
|
|
1969 |
(tempo-define-template "dcl-f$cvui" |
(tempo-define-template "dcl-f$cvui" |
1970 |
'("f$cvui" dcl-tempo-left-paren |
'("f$cvui" dcl-tempo-left-paren |
1971 |
(p "start-bit: ") dcl-tempo-comma |
(p "start-bit: ") dcl-tempo-comma |
1972 |
(p "number-of-bits: ") dcl-tempo-comma |
(p "number-of-bits: ") dcl-tempo-comma |
1973 |
(p "string") dcl-tempo-right-paren) |
(p "string") dcl-tempo-right-paren) |
1974 |
"f$cvui" "" 'dcl-tempo-tags) |
"f$cvui" "" 'dcl-tempo-tags) |
1975 |
|
|
1976 |
(tempo-define-template "dcl-f$device" |
(tempo-define-template "dcl-f$device" |
1977 |
'("f$device" dcl-tempo-left-paren |
'("f$device" dcl-tempo-left-paren |
1978 |
(p "[search_devnam]: ") dcl-tempo-comma |
(p "[search_devnam]: ") dcl-tempo-comma |
1979 |
(p "[devclass]: ") dcl-tempo-comma |
(p "[devclass]: ") dcl-tempo-comma |
1980 |
(p "[devtype]: ") dcl-tempo-comma |
(p "[devtype]: ") dcl-tempo-comma |
1987 |
"f$directory" "" 'dcl-tempo-tags) |
"f$directory" "" 'dcl-tempo-tags) |
1988 |
|
|
1989 |
(tempo-define-template "dcl-f$edit" |
(tempo-define-template "dcl-f$edit" |
1990 |
'("f$edit" dcl-tempo-left-paren |
'("f$edit" dcl-tempo-left-paren |
1991 |
(p "string: ") dcl-tempo-comma |
(p "string: ") dcl-tempo-comma |
1992 |
(p "edit-list: ") dcl-tempo-right-paren) |
(p "edit-list: ") dcl-tempo-right-paren) |
1993 |
"f$edit" "" 'dcl-tempo-tags) |
"f$edit" "" 'dcl-tempo-tags) |
1994 |
|
|
1995 |
(tempo-define-template "dcl-f$element" |
(tempo-define-template "dcl-f$element" |
1996 |
'("f$element" dcl-tempo-left-paren |
'("f$element" dcl-tempo-left-paren |
1997 |
(p "element-number: ") dcl-tempo-comma |
(p "element-number: ") dcl-tempo-comma |
1998 |
(p "delimiter: ") dcl-tempo-comma |
(p "delimiter: ") dcl-tempo-comma |
1999 |
(p "string: ") dcl-tempo-right-paren) |
(p "string: ") dcl-tempo-right-paren) |
2000 |
"f$element" "" 'dcl-tempo-tags) |
"f$element" "" 'dcl-tempo-tags) |
2001 |
|
|
2002 |
(tempo-define-template "dcl-f$environment" |
(tempo-define-template "dcl-f$environment" |
2003 |
'("f$environment" dcl-tempo-left-paren |
'("f$environment" dcl-tempo-left-paren |
2004 |
(p "item: ") dcl-tempo-right-paren) |
(p "item: ") dcl-tempo-right-paren) |
2005 |
"f$environment" "" 'dcl-tempo-tags) |
"f$environment" "" 'dcl-tempo-tags) |
2006 |
|
|
2007 |
(tempo-define-template "dcl-f$extract" |
(tempo-define-template "dcl-f$extract" |
2008 |
'("f$extract" dcl-tempo-left-paren |
'("f$extract" dcl-tempo-left-paren |
2009 |
(p "start: ") dcl-tempo-comma |
(p "start: ") dcl-tempo-comma |
2010 |
(p "length: ") dcl-tempo-comma |
(p "length: ") dcl-tempo-comma |
2011 |
(p "string: ") dcl-tempo-right-paren) |
(p "string: ") dcl-tempo-right-paren) |
2012 |
"f$extract" "" 'dcl-tempo-tags) |
"f$extract" "" 'dcl-tempo-tags) |
2013 |
|
|
2014 |
(tempo-define-template "dcl-f$fao" |
(tempo-define-template "dcl-f$fao" |
2015 |
'("f$fao" dcl-tempo-left-paren |
'("f$fao" dcl-tempo-left-paren |
2016 |
(p "control-string: ") dcl-tempo-comma |
(p "control-string: ") dcl-tempo-comma |
2017 |
("argument[,...]: ") dcl-tempo-right-paren) |
("argument[,...]: ") dcl-tempo-right-paren) |
2018 |
"f$fao" "" 'dcl-tempo-tags) |
"f$fao" "" 'dcl-tempo-tags) |
2019 |
|
|
2020 |
(tempo-define-template "dcl-f$file_attributes" |
(tempo-define-template "dcl-f$file_attributes" |
2021 |
'("f$file_attributes" dcl-tempo-left-paren |
'("f$file_attributes" dcl-tempo-left-paren |
2022 |
(p "filespec: ") dcl-tempo-comma |
(p "filespec: ") dcl-tempo-comma |
2023 |
(p "item: ") dcl-tempo-right-paren) |
(p "item: ") dcl-tempo-right-paren) |
2024 |
"f$file_attributes" "" 'dcl-tempo-tags) |
"f$file_attributes" "" 'dcl-tempo-tags) |
2025 |
|
|
2026 |
(tempo-define-template "dcl-f$getdvi" |
(tempo-define-template "dcl-f$getdvi" |
2027 |
'("f$getdvi" dcl-tempo-left-paren |
'("f$getdvi" dcl-tempo-left-paren |
2028 |
(p "device-name: ") dcl-tempo-comma |
(p "device-name: ") dcl-tempo-comma |
2029 |
(p "item: ") dcl-tempo-right-paren) |
(p "item: ") dcl-tempo-right-paren) |
2030 |
"f$getdvi" "" 'dcl-tempo-tags) |
"f$getdvi" "" 'dcl-tempo-tags) |
2031 |
|
|
2032 |
(tempo-define-template "dcl-f$getjpi" |
(tempo-define-template "dcl-f$getjpi" |
2033 |
'("f$getjpi" dcl-tempo-left-paren |
'("f$getjpi" dcl-tempo-left-paren |
2034 |
(p "pid: ") dcl-tempo-comma |
(p "pid: ") dcl-tempo-comma |
2035 |
(p "item: ") dcl-tempo-right-paren ) |
(p "item: ") dcl-tempo-right-paren ) |
2036 |
"f$getjpi" "" 'dcl-tempo-tags) |
"f$getjpi" "" 'dcl-tempo-tags) |
2037 |
|
|
2038 |
(tempo-define-template "dcl-f$getqui" |
(tempo-define-template "dcl-f$getqui" |
2039 |
'("f$getqui" dcl-tempo-left-paren |
'("f$getqui" dcl-tempo-left-paren |
2040 |
(p "function: ") dcl-tempo-comma |
(p "function: ") dcl-tempo-comma |
2041 |
(p "[item]: ") dcl-tempo-comma |
(p "[item]: ") dcl-tempo-comma |
2042 |
(p "[object-id]: ") dcl-tempo-comma |
(p "[object-id]: ") dcl-tempo-comma |
2044 |
"f$getqui" "" 'dcl-tempo-tags) |
"f$getqui" "" 'dcl-tempo-tags) |
2045 |
|
|
2046 |
(tempo-define-template "dcl-f$getsyi" |
(tempo-define-template "dcl-f$getsyi" |
2047 |
'("f$getsyi" dcl-tempo-left-paren |
'("f$getsyi" dcl-tempo-left-paren |
2048 |
(p "item: ") dcl-tempo-comma |
(p "item: ") dcl-tempo-comma |
2049 |
(p "[node-name]: ") dcl-tempo-comma |
(p "[node-name]: ") dcl-tempo-comma |
2050 |
(p "[cluster-id]: ") dcl-tempo-right-paren) |
(p "[cluster-id]: ") dcl-tempo-right-paren) |
2051 |
"f$getsyi" "" 'dcl-tempo-tags) |
"f$getsyi" "" 'dcl-tempo-tags) |
2052 |
|
|
2053 |
(tempo-define-template "dcl-f$identifier" |
(tempo-define-template "dcl-f$identifier" |
2054 |
'("f$identifier" dcl-tempo-left-paren |
'("f$identifier" dcl-tempo-left-paren |
2055 |
(p "identifier: ") dcl-tempo-comma |
(p "identifier: ") dcl-tempo-comma |
2056 |
(p "conversion-type: ") dcl-tempo-right-paren) |
(p "conversion-type: ") dcl-tempo-right-paren) |
2057 |
"f$identifier" "" 'dcl-tempo-tags) |
"f$identifier" "" 'dcl-tempo-tags) |
2058 |
|
|
2059 |
(tempo-define-template "dcl-f$integer" |
(tempo-define-template "dcl-f$integer" |
2060 |
'("f$integer" dcl-tempo-left-paren |
'("f$integer" dcl-tempo-left-paren |
2061 |
(p "expression: ") dcl-tempo-right-paren) |
(p "expression: ") dcl-tempo-right-paren) |
2062 |
"f$integer" "" 'dcl-tempo-tags) |
"f$integer" "" 'dcl-tempo-tags) |
2063 |
|
|
2067 |
"f$length" "" 'dcl-tempo-tags) |
"f$length" "" 'dcl-tempo-tags) |
2068 |
|
|
2069 |
(tempo-define-template "dcl-f$locate" |
(tempo-define-template "dcl-f$locate" |
2070 |
'("f$locate" dcl-tempo-left-paren |
'("f$locate" dcl-tempo-left-paren |
2071 |
(p "substring: ") dcl-tempo-comma |
(p "substring: ") dcl-tempo-comma |
2072 |
(p "string: ") dcl-tempo-right-paren) |
(p "string: ") dcl-tempo-right-paren) |
2073 |
"f$locate" "" 'dcl-tempo-tags) |
"f$locate" "" 'dcl-tempo-tags) |
2074 |
|
|
2075 |
(tempo-define-template "dcl-f$message" |
(tempo-define-template "dcl-f$message" |
2076 |
'("f$message" dcl-tempo-left-paren |
'("f$message" dcl-tempo-left-paren |
2077 |
(p "status-code: ") dcl-tempo-right-paren ) |
(p "status-code: ") dcl-tempo-right-paren ) |
2078 |
"f$message" "" 'dcl-tempo-tags) |
"f$message" "" 'dcl-tempo-tags) |
2079 |
|
|
2082 |
"f$mode" "" 'dcl-tempo-tags) |
"f$mode" "" 'dcl-tempo-tags) |
2083 |
|
|
2084 |
(tempo-define-template "dcl-f$parse" |
(tempo-define-template "dcl-f$parse" |
2085 |
'("f$parse" dcl-tempo-left-paren |
'("f$parse" dcl-tempo-left-paren |
2086 |
(p "filespec: ") dcl-tempo-comma |
(p "filespec: ") dcl-tempo-comma |
2087 |
(p "[default-spec]: ") dcl-tempo-comma |
(p "[default-spec]: ") dcl-tempo-comma |
2088 |
(p "[related-spec]: ") dcl-tempo-comma |
(p "[related-spec]: ") dcl-tempo-comma |
2091 |
"f$parse" "" 'dcl-tempo-tags) |
"f$parse" "" 'dcl-tempo-tags) |
2092 |
|
|
2093 |
(tempo-define-template "dcl-f$pid" |
(tempo-define-template "dcl-f$pid" |
2094 |
'("f$pid" dcl-tempo-left-paren |
'("f$pid" dcl-tempo-left-paren |
2095 |
(p "context-symbol: ") dcl-tempo-right-paren) |
(p "context-symbol: ") dcl-tempo-right-paren) |
2096 |
"f$pid" "" 'dcl-tempo-tags) |
"f$pid" "" 'dcl-tempo-tags) |
2097 |
|
|
2098 |
(tempo-define-template "dcl-f$privilege" |
(tempo-define-template "dcl-f$privilege" |
2099 |
'("f$privilege" dcl-tempo-left-paren |
'("f$privilege" dcl-tempo-left-paren |
2100 |
(p "priv-states: ") dcl-tempo-right-paren) |
(p "priv-states: ") dcl-tempo-right-paren) |
2101 |
"f$privilege" "" 'dcl-tempo-tags) |
"f$privilege" "" 'dcl-tempo-tags) |
2102 |
|
|
2105 |
"f$process" "" 'dcl-tempo-tags) |
"f$process" "" 'dcl-tempo-tags) |
2106 |
|
|
2107 |
(tempo-define-template "dcl-f$search" |
(tempo-define-template "dcl-f$search" |
2108 |
'("f$search" dcl-tempo-left-paren |
'("f$search" dcl-tempo-left-paren |
2109 |
(p "filespec: ") dcl-tempo-comma |
(p "filespec: ") dcl-tempo-comma |
2110 |
(p "[stream-id]: ") dcl-tempo-right-paren) |
(p "[stream-id]: ") dcl-tempo-right-paren) |
2111 |
"f$search" "" 'dcl-tempo-tags) |
"f$search" "" 'dcl-tempo-tags) |
2112 |
|
|
2113 |
(tempo-define-template "dcl-f$setprv" |
(tempo-define-template "dcl-f$setprv" |
2114 |
'("f$setprv" dcl-tempo-left-paren |
'("f$setprv" dcl-tempo-left-paren |
2115 |
(p "priv-states: ") dcl-tempo-right-paren) |
(p "priv-states: ") dcl-tempo-right-paren) |
2116 |
"f$setprv" "" 'dcl-tempo-tags) |
"f$setprv" "" 'dcl-tempo-tags) |
2117 |
|
|
2118 |
(tempo-define-template "dcl-f$string" |
(tempo-define-template "dcl-f$string" |
2119 |
'("f$string" dcl-tempo-left-paren |
'("f$string" dcl-tempo-left-paren |
2120 |
(p "expression: ") dcl-tempo-right-paren) |
(p "expression: ") dcl-tempo-right-paren) |
2121 |
"f$string" "" 'dcl-tempo-tags) |
"f$string" "" 'dcl-tempo-tags) |
2122 |
|
|
2125 |
"f$time" "" 'dcl-tempo-tags) |
"f$time" "" 'dcl-tempo-tags) |
2126 |
|
|
2127 |
(tempo-define-template "dcl-f$trnlnm" |
(tempo-define-template "dcl-f$trnlnm" |
2128 |
'("f$trnlnm" dcl-tempo-left-paren |
'("f$trnlnm" dcl-tempo-left-paren |
2129 |
(p "logical-name: ") dcl-tempo-comma |
(p "logical-name: ") dcl-tempo-comma |
2130 |
(p "[table]: ") dcl-tempo-comma |
(p "[table]: ") dcl-tempo-comma |
2131 |
(p "[index]: ") dcl-tempo-comma |
(p "[index]: ") dcl-tempo-comma |
2135 |
"f$trnlnm" "" 'dcl-tempo-tags) |
"f$trnlnm" "" 'dcl-tempo-tags) |
2136 |
|
|
2137 |
(tempo-define-template "dcl-f$type" |
(tempo-define-template "dcl-f$type" |
2138 |
'("f$type" dcl-tempo-left-paren |
'("f$type" dcl-tempo-left-paren |
2139 |
(p "symbol-name: ") dcl-tempo-right-paren) |
(p "symbol-name: ") dcl-tempo-right-paren) |
2140 |
"f$type" "" 'dcl-tempo-tags) |
"f$type" "" 'dcl-tempo-tags) |
2141 |
|
|
2144 |
"f$user" "" 'dcl-tempo-tags) |
"f$user" "" 'dcl-tempo-tags) |
2145 |
|
|
2146 |
(tempo-define-template "dcl-f$verify" |
(tempo-define-template "dcl-f$verify" |
2147 |
'("f$verify" dcl-tempo-left-paren |
'("f$verify" dcl-tempo-left-paren |
2148 |
(p "[procedure-value]: ") dcl-tempo-comma |
(p "[procedure-value]: ") dcl-tempo-comma |
2149 |
(p "[image-value]: ") dcl-tempo-right-paren) |
(p "[image-value]: ") dcl-tempo-right-paren) |
2150 |
"f$verify" "" 'dcl-tempo-tags) |
"f$verify" "" 'dcl-tempo-tags) |
2199 |
() |
() |
2200 |
(equal start (match-end 0)))))) |
(equal start (match-end 0)))))) |
2201 |
|
|
2202 |
|
|
2203 |
;;;------------------------------------------------------------------------- |
;;;------------------------------------------------------------------------- |
2204 |
(defun dcl-imenu-create-index-function () |
(defun dcl-imenu-create-index-function () |
2205 |
"Jacket routine to make imenu searches non case sensitive." |
"Jacket routine to make imenu searches non case sensitive." |