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 |
;; * Change meaning of `left margin' when dcl-tab-always-indent is nil. |
;; * Change meaning of `left margin' when dcl-tab-always-indent is nil. |
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 `$'." |
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. |
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: |
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: |
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) |
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) |
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 () |
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, |
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, |
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) |
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) |
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) |
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 |
|
|
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: |
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 |
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 |
|
|
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 |
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 |
$ |
$ |
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. |
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) |
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) |
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) |
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-... : |
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 |
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) |
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." |
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 |
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 |
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 |
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 |
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. |
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. |
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)))) |
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 |
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 |
)) |
)) |
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 () |
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 |
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 |
|
|
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 |
|
|
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 () |
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. |
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) |
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) |
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 |
|
|
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)) |
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? |
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 |
))) |
))) |
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 |
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 |
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 |
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 |
|
|
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 |
|
|
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 |
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 |
|
|
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 |
|
|
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 |
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 |
|
|
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) |
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." |