Guess basic indent rules from the buffer content. You can add this to the c-mode hook, works good enough.
(defun guess-c-indent-rules () (interactive) (save-excursion (goto-char (point-min)) (cond ;; check GNU first (1-level indent is 2 space) ((search-forward-regexp (rx bol " " (or "if" "do" "while" "for" "return")) nil t) (message "GNU style detected, setting it...") (c-set-style "gnu")) ;; linux style tab indent (samba) ((search-forward-regexp (rx bol (+ "\t") (or "if" "do" "while" "for")) nil t) (message "indenting with 8-spaces tabs detected, linux style...") (c-set-style "linux") (setq indent-tabs-mode t c-basic-offset 8)) ;; 4 space mode ((search-forward-regexp (rx bol (+ " ") (or "if" "do" "while" "for")) nil t) (message "indenting with 4 spaces...") (setq indent-tabs-mode nil c-basic-offset 4)) (t (message "cannot guess indentation, you're on your own!")))))
Aucun commentaire:
Enregistrer un commentaire