X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/bf6098d462783a2ee75d031d80d3d296e4ff138a..16db967b0577c376f29e0d72cef8aa2e3a5a84f0:/packages/sm-c-mode/sm-c-mode.el 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)