From ad2214a5ea10ea8d5e5075bc0a518d9c474321d6 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 25 Jan 2016 08:24:41 -0500 Subject: [PATCH] * sm-c-mode/sm-c-mode.el (sm-c-smie-rules): Improve indent of enum's {...} --- packages/sm-c-mode/sm-c-mode.el | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/sm-c-mode/sm-c-mode.el b/packages/sm-c-mode/sm-c-mode.el index a64382973..54b9a54ee 100644 --- a/packages/sm-c-mode/sm-c-mode.el +++ b/packages/sm-c-mode/sm-c-mode.el @@ -640,6 +640,16 @@ if INNER is non-nil, it stops at the innermost one." 0 (funcall smie-rules-function :elem 'basic)) (smie-indent-virtual)))) + ((and (member tok '("enum" "struct")) + ;; Make sure that the {...} is about this struct/enum, as + ;; opposed to "struct foo *get_foo () {...}"! + (save-excursion + (smie-indent-forward-token) + (smie-indent-forward-token) + (forward-comment (point-max)) + (>= (point) pos))) + `(column . ,(+ (funcall smie-rules-function :elem 'basic) + (smie-indent-virtual)))) ((or (member tok sm-c-paren-block-keywords) (equal tok "do")) nil) -- 2.39.2