branch: elpa/dart-mode
commit 64eb39931a4530868d61d310f3500dc70188ef1b
Author: Nathan Weizenbaum <[email protected]>
Commit: Nathan Weizenbaum <[email protected]>

    Fix array literal indentation.
---
 dart-mode.el | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/dart-mode.el b/dart-mode.el
index 807ffbe..bd489d7 100644
--- a/dart-mode.el
+++ b/dart-mode.el
@@ -86,6 +86,33 @@
   dart nil)
 
 
+;;; CC indentation support
+
+(defadvice c-guess-basic-syntax (after dart-guess-basic-syntax activate)
+  (when (c-major-mode-is 'dart-mode)
+    (setf (caar ad-return-value)
+          (save-excursion
+            (beginning-of-line)
+
+            (or
+             ;; Handle array literal indentation
+             (when (memq (caar ad-return-value)
+                         '(arglist-intro
+                           arglist-cont
+                           arglist-cont-nonempty
+                           arglist-close))
+               (save-excursion
+                 (c-safe
+                   (backward-up-list)
+                   (when (= (char-after) ?\[)
+                     (case (caar ad-return-value)
+                       (arglist-intro 'brace-list-intro)
+                       ((arglist-cont arglist-cont-nonempty) 'brace-list-entry)
+                       (arglist-close 'brace-list-close))))))
+
+             (caar ad-return-value))))))
+
+
 ;;; Boilerplate font-lock piping
 
 (defcustom dart-font-lock-extra-types nil

Reply via email to