From: Stefan Monnier Date: Mon, 25 Jan 2016 13:24:41 +0000 (-0500) Subject: * sm-c-mode/sm-c-mode.el (sm-c-smie-rules): Improve indent of enum's {...} X-Git-Url: https://code.delx.au/gnu-emacs-elpa/commitdiff_plain/ad2214a5ea10ea8d5e5075bc0a518d9c474321d6 * sm-c-mode/sm-c-mode.el (sm-c-smie-rules): Improve indent of enum's {...} --- 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)