Function: antlr-insert-option-space
antlr-insert-option-space is a byte-compiled function defined in
antlr-mode.el.gz.
Signature
(antlr-insert-option-space AREA OLD)
Documentation
Find appropriate place to insert option, insert newlines/spaces.
For AREA and OLD, see antlr-insert-option-do.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/antlr-mode.el.gz
(defun antlr-insert-option-space (area old)
"Find appropriate place to insert option, insert newlines/spaces.
For AREA and OLD, see `antlr-insert-option-do'."
(let ((orig (point))
(open t))
(skip-chars-backward " \t")
(unless (bolp)
(let ((before (char-after (1- (point)))))
(goto-char orig)
(and old ; with existing options area
(consp area) ; if point inside existing area
(not (eq before ?\;)) ; if not at beginning of option
; => skip to end of option
(if (and (search-forward ";" (cdr area) t)
(let ((context (antlr-syntactic-context)))
(or (null context) (numberp context))))
(setq orig (point))
(goto-char orig)))
(skip-chars-forward " \t")
(if (looking-at "$\\|//")
;; just comment after point => skip (+ lines w/ same col comment)
(let ((same (if (> (match-end 0) (match-beginning 0))
(current-column))))
(beginning-of-line 2)
(or (bolp) (insert "\n"))
(when (and same (null area)) ; or (consp area)?
(while (and (looking-at "[ \t]*\\(//\\)")
(goto-char (match-beginning 1))
(= (current-column) same))
(beginning-of-line 2)
(or (bolp) (insert "\n")))))
(goto-char orig)
(if (null old)
(progn (insert "\n") (antlr-indent-line))
(unless (eq (char-after (1- (point))) ?\ )
(insert " "))
(unless (eq (char-after (point)) ?\ )
(insert " ")
(backward-char))
(setq open nil)))))
(when open
(beginning-of-line 1)
(insert "\n")
(backward-char)
(antlr-indent-line))))