Editor Support / Emacs DMode /
Else Static If
Difference (last change) (no other diffs, normal page display)
Changed: 1c1,30
Describe the new page here. |
If you're using the emacs D mode, you may have noticed that indentation of "else static if" clauses isn't handled properly. There's a quick fix if you have access to the cc-mode files that come with your emacs installation. This was tested with CC-mode 5.31.4. (see M-x c-version to get your version). So to the main emacs lisp directory. And find lisp/progmodes/cc-engine.el. Open it and search for this comment: [[code] ;; Special case to avoid deeper and deeper indentation ;; of "else if" clauses. ] Add an 'or' clause to that block of code that checks for 'static' following else. Should now look basically like this: [[code] ((and (eq step-type 'up) (>= (point) old-boi) (looking-at "else\\>[^_]") (save-excursion (goto-char old-pos) (or (looking-at "if\\>[^_]") (looking-at "static\\>[^_]")))) ;; Special case to avoid deeper and deeper indentation ;; of "else if" clauses. // or "else static if" ) ] Now M-x byte-compile-file the file, and restart emacs. Should be fixed now. |
If you're using the emacs D mode, you may have noticed that indentation of "else static if" clauses isn't handled properly.
There's a quick fix if you have access to the cc-mode files that come with your emacs installation.
This was tested with CC-mode 5.31.4. (see M-x c-version to get your version).
So to the main emacs lisp directory. And find lisp/progmodes/cc-engine.el. Open it and search for this comment:
![]() |
|
Add an 'or' clause to that block of code that checks for 'static' following else. Should now look basically like this:
![]() |
|
Now M-x byte-compile-file the file, and restart emacs.
Should be fixed now.