File: dcl-mode.el.html

DCL mode is a package for editing
[DCL](https://en.wikipedia.org/wiki/DIGITAL_Command_Language)
command files. It helps you indent lines, add leading $ and trailing -, move around in the code and insert lexical functions.

Type C-h m when you are editing a .COM file to get more information about this mode.

Support for templates is based on the built-in tempo.el. I recommend setting (setq tempo-interactive t). This will make tempo prompt you for values to put in the blank spots in the templates.

There is limited support for imenu.

Any feedback will be welcomed. If you write functions for dcl-calc-command-indent-function or dcl-calc-cont-indent-function, please send them to the maintainer.

Ideas for improvement:
* Better font-lock support.
* Change meaning of left margin when dcl-tab-always-indent is nil.
  Consider the following line (_ is the cursor):
    $ label: _ command
  Pressing tab with the cursor at the underline now inserts a tab.
  This should be part of the left margin and pressing tab should indent
  the line.
* Make M-LFD work properly with comments in all cases. Now it only
  works on comment-only lines. But what is "properly"? New rules for
  indenting comments?
* Even smarter indentation of continuation lines.
* A delete-indentation function (M-^) that joins continued lines,
  including lines with end line comments?
* Handle DECK/EOD.
* indent list commands: C-M-q, C-u TAB. What is a list in DCL? One
  complete command line? A block? A subroutine?

Defined variables (34)

dcl-basic-offsetNumber of columns to indent a block in DCL.
dcl-block-begin-regexpRegexp describing a command that begins an indented block in DCL.
dcl-block-end-regexpRegexp describing a command that ends an indented block in DCL.
dcl-calc-command-indent-functionFunction to calculate indentation for a command line in DCL.
dcl-calc-cont-indent-functionFunction to calculate indentation for a continuation line.
dcl-cmd-rRegular expression describing a DCL command line up to a trailing comment.
dcl-command-regexpRegular expression describing a DCL command line.
dcl-comment-line-regexpRegexp describing the start of a comment line in DCL.
dcl-continuation-offsetNumber of columns to indent a continuation line in DCL.
dcl-electric-charactersNon-nil means reindent immediately when a label, ELSE or ENDIF is inserted.
dcl-electric-reindent-regexpsRegexps that can trigger an electric reindent.
dcl-font-lock-defaultsFont lock specification for DCL mode.
dcl-font-lock-keywordsFont lock keyword specification for DCL mode.
dcl-imenu-generic-expressionDefault imenu generic expression for DCL.
dcl-imenu-label-callImenu menu title for sub-listing with CALL statements.
dcl-imenu-label-gosubImenu menu title for sub-listing with GOSUB statements.
dcl-imenu-label-gotoImenu menu title for sub-listing with GOTO statements.
dcl-imenu-label-labelsImenu menu title for sub-listing with label names.
dcl-label-rRegular expression describing a label.
dcl-margin-label-offsetNumber of columns to indent a margin label in DCL.
dcl-margin-offsetIndentation for the first command line in DCL.
dcl-mode-abbrev-tableAbbrev table for ‘dcl-mode’.
dcl-mode-hookHook called by ‘dcl-mode’.
dcl-mode-mapKeymap used in DCL-mode buffers.
dcl-mode-menuMenu for DCL-mode buffers.
dcl-mode-syntax-tableSyntax table used in DCL-buffers.
dcl-option-alistOptions and default values for ‘dcl-set-option’.
dcl-option-historyThe history list for ‘dcl-set-option’.
dcl-tab-always-indentControls the operation of the TAB key in DCL mode.
dcl-tempo-commaText to insert when a comma is needed in a template, in DCL mode.
dcl-tempo-left-parenText to insert when a left parenthesis is needed in a template in DCL.
dcl-tempo-right-parenText to insert when a right parenthesis is needed in a template in DCL.
dcl-tempo-tagsTempo tags for DCL mode.
dcl-ws-rRegular expression describing white space in a DCL command line.

Defined functions (45)

dcl-back-to-indentation()
dcl-back-to-indentation-1(&optional LIMIT)
dcl-backward-command(&optional INCL-COMMENT-COMMANDS)
dcl-beginning-of-command()
dcl-beginning-of-command-p()
dcl-beginning-of-statement()
dcl-calc-command-indent()
dcl-calc-command-indent-hang(INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT)
dcl-calc-command-indent-multiple(INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT)
dcl-calc-cont-indent-relative(CUR-INDENT EXTRA-INDENT)
dcl-calc-continuation-indent()
dcl-command-p()
dcl-delete-chars(CHARS)
dcl-delete-indentation(&optional ARG)
dcl-electric-character(ARG)
dcl-end-of-command()
dcl-end-of-command-p()
dcl-end-of-statement()
dcl-forward-command(&optional INCL-COMMENT-COMMANDS)
dcl-get-line-type()
dcl-guess-option()
dcl-guess-option-value(OPTION)
dcl-imenu-create-index-function()
dcl-indent-command()
dcl-indent-command-line()
dcl-indent-continuation-line()
dcl-indent-line()
dcl-indent-to(COL &optional MINIMUM)
dcl-indentation-point()
dcl-mode()
dcl-mode-menu(ARG1)
dcl-option-value-basic(OPTION-ASSOC)
dcl-option-value-comment-line(OPTION-ASSOC)
dcl-option-value-margin-offset(OPTION-ASSOC)
dcl-option-value-offset(OPTION-ASSOC)
dcl-save-all-options()
dcl-save-local-variable(VAR &optional DEF-PREFIX DEF-SUFFIX)
dcl-save-mode()
dcl-save-nondefault-options()
dcl-save-option(OPTION)
dcl-set-option(OPTION-SYM OPTION-VALUE)
dcl-show-line-type()
dcl-split-line()
dcl-tab()
dcl-was-looking-at(REGEXP)

Defined faces (0)