them along the way."
(let ((start (point)))
(context-coloring-forward-sws)
- (context-coloring-elisp-colorize-comments-and-strings-in-region
- start (point))))
+ (context-coloring-maybe-colorize-comments-and-strings start (point))))
(defsubst context-coloring-elisp-forward-sexp ()
"Like `forward-sexp', but colorize comments and strings along
(cond
((= syntax-code context-coloring-OPEN-PARENTHESIS-CODE)
(forward-char)
- (context-coloring-forward-sws)
+ (context-coloring-elisp-forward-sws)
(setq syntax-code (context-coloring-get-syntax-code))
(when (or (= syntax-code context-coloring-WORD-CODE)
(= syntax-code context-coloring-SYMBOL-CODE))
(context-coloring-elisp-parse-arg
(lambda (var)
(push var varlist)))
- (context-coloring-forward-sws)
+ (context-coloring-elisp-forward-sws)
(setq syntax-code (context-coloring-get-syntax-code))
(when (/= syntax-code context-coloring-CLOSE-PARENTHESIS-CODE)
(context-coloring-elisp-colorize-sexp)))
- (context-coloring-forward-sws)
+ (context-coloring-elisp-forward-sws)
;; Skip past the closing parenthesis.
(forward-char))
((or (= syntax-code context-coloring-WORD-CODE)
(push var varlist)))))
(when (eq type 'let*)
(context-coloring-elisp-add-variable (pop varlist)))
- (context-coloring-forward-sws))
+ (context-coloring-elisp-forward-sws))
(when (eq type 'let)
(while varlist
(context-coloring-elisp-add-variable (pop varlist))))
(lambda (arg)
(context-coloring-elisp-add-variable arg))))
(t
- (forward-sexp)))
- (context-coloring-forward-sws))
+ (context-coloring-elisp-forward-sexp)))
+ (context-coloring-elisp-forward-sws))
;; Exit.
(forward-char)))
end
(context-coloring-elisp-current-scope-level))
(goto-char start)
+ ;; Enter.
+ (forward-char)
+ (context-coloring-elisp-forward-sws)
;; Skip past the "defun".
- (skip-syntax-forward "^w_")
(forward-sexp)
- (context-coloring-forward-sws)
+ (context-coloring-elisp-forward-sws)
(setq stop nil)
(unless anonymous-p
;; Check for the defun's name.
(forward-sexp)
(setq defun-name-end (point))
(context-coloring-colorize-region defun-name-pos defun-name-end 0)
- (context-coloring-forward-sws))
+ (context-coloring-elisp-forward-sws))
(t
(setq stop t))))
(cond
(stop
;; Skip it.
(goto-char start)
- (forward-sexp))
+ (context-coloring-elisp-forward-sexp))
(t
(setq syntax-code (context-coloring-get-syntax-code))
(cond
(t
;; Skip it.
(goto-char start)
- (forward-sexp)))))
- (context-coloring-elisp-pop-scope)
- (context-coloring-elisp-colorize-comments-and-strings-in-region start end)))
+ (context-coloring-elisp-forward-sexp)))))
+ (context-coloring-elisp-pop-scope)))
(defun context-coloring-elisp-colorize-defun ()
(context-coloring-elisp-colorize-defun-like))
(forward-char)
(context-coloring-elisp-forward-sws)
;; Skip past the "cond".
- (skip-syntax-forward "^w_")
+ (forward-sexp)
(context-coloring-elisp-forward-sws)
(while (/= (setq syntax-code (context-coloring-get-syntax-code))
context-coloring-CLOSE-PARENTHESIS-CODE)
;; Exit.
(forward-char)))
(t
- (forward-sexp)))
+ (context-coloring-elisp-forward-sexp)))
(context-coloring-elisp-forward-sws))
;; Exit.
(forward-char)))
(point)))
(syntax-code (progn (goto-char start)
(forward-char)
+ ;; Coloring is unnecessary here, it'll happen
+ ;; presently.
(context-coloring-forward-sws)
(context-coloring-get-syntax-code))))
;; Figure out if the sexp is a special form.
(defun context-coloring-elisp-colorize-expression-prefix ()
(context-coloring-elisp-increment-sexp-count)
(let ((char (char-after))
- (start (point))
- (end (progn (forward-sexp)
- (point))))
+ start
+ end)
(cond
((or (= char context-coloring-APOSTROPHE-CHAR)
(= char context-coloring-OCTOTHORPE-CHAR))
- (context-coloring-elisp-colorize-comments-and-strings-in-region start end))
+ (context-coloring-elisp-forward-sexp))
((= char context-coloring-BACKTICK-CHAR)
+ (setq start (point))
+ (setq end (progn (forward-sexp)
+ (point)))
(goto-char start)
(while (> end (progn (forward-char)
(point)))
(when (= (char-after) context-coloring-AT-CHAR)
;; If we don't do this "@" could be interpreted as a symbol.
(forward-char))
- (context-coloring-forward-sws)
+ (context-coloring-elisp-forward-sws)
(context-coloring-elisp-colorize-sexp)))
- (context-coloring-elisp-colorize-comments-and-strings-in-region start end)))))
+ ;; We could probably do this as part of the above loop but it'd be
+ ;; repetitive.
+ (context-coloring-elisp-colorize-comments-and-strings-in-region
+ start end)))))
(defun context-coloring-elisp-colorize-comment ()
(context-coloring-elisp-increment-sexp-count)
- (let ((start (point)))
- (context-coloring-forward-sws)
- (context-coloring-maybe-colorize-comments-and-strings
- start
- (point))))
+ (context-coloring-elisp-forward-sws))
(defun context-coloring-elisp-colorize-string ()
(context-coloring-elisp-increment-sexp-count)