Because whatever comes with Emacs is too slow.
This mode does not try to be as featureful as c-mode
, c++-mode
,
cc-mode
, etc. Instead we are trying to implement a bare minimum
syntax highlighting and indentation to maintain high performance on
big files with long lines.
The goal is to be able to comfortably browse and modify the following files:
Right now the only way to work with these files in Emacs is to use
text-mode
. Which is actually a good evidence that Emacs itself can
handles such files! It's c-mode
(and others) that cannot.
Right now the only way to use this mode is to
C-x C-f simpc-mode.el RET
M-x eval-buffer RET
M-x simpc-mode RET
Right now the mode supports only very simple indentations based on the analysing the previous non-empty line and its surrounding curly braces. Anything more complicated is outside of the scope of the project.
It is recommended to use an external formatter such as indent, astyle, clang-format, etc.
Here is how I use astyle:
(defun astyle-buffer ()
(interactive)
(let ((saved-line-number (line-number-at-pos)))
(shell-command-on-region
(point-min)
(point-max)
"astyle --style=kr"
nil
t)
(goto-line saved-line-number)))
Then I bind astyle-buffer
to some key combination and invoke it
periodically to reformat the whole current buffer.