(let* ((parse-status
(save-excursion (syntax-ppss (point-at-bol))))
(offset (- (point) (save-excursion (back-to-indentation) (point)))))
- (indent-line-to (js--proper-indentation parse-status))
- (when (> offset 0) (forward-char offset))))
+ (unless (nth 3 parse-status)
+ (indent-line-to (js--proper-indentation parse-status))
+ (when (> offset 0) (forward-char offset)))))
;;; Filling
(defsubst js--js-true (value)
(not (js--js-not value)))
-;; The somewhat complex code layout confuses the byte-compiler into
-;; thinking this function "might not be defined at runtime".
-(declare-function js--optimize-arglist "js" (arglist))
-
(eval-and-compile
(defun js--optimize-arglist (arglist)
"Convert immediate js< and js! references to deferred ones."
;;; Main Function
;;;###autoload
-(define-derived-mode js-mode prog-mode "Javascript"
+(define-derived-mode js-mode prog-mode "JavaScript"
"Major mode for editing JavaScript."
:group 'js
(setq-local indent-line-function 'js-indent-line)
;; for filling, pretend we're cc-mode
(setq c-comment-prefix-regexp "//+\\|\\**"
- c-paragraph-start "$"
+ c-paragraph-start "\\(@[[:alpha:]]+\\>\\|$\\)"
c-paragraph-separate "$"
c-block-comment-prefix "* "
c-line-comment-starter "//"