diff options
Diffstat (limited to 'emacs.d/site-lisp/smarttabs.el')
-rw-r--r-- | emacs.d/site-lisp/smarttabs.el | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/emacs.d/site-lisp/smarttabs.el b/emacs.d/site-lisp/smarttabs.el deleted file mode 100644 index ee64815..0000000 --- a/emacs.d/site-lisp/smarttabs.el +++ /dev/null @@ -1,57 +0,0 @@ -;; -;; Emacs smart tabs functionality -;; Intelligently indent with tabs, align with spaces! -;; -;; Note: Indenting only uses tabs when indent-tabs-mode is non-nil, -;; otherwise it uses spaces as usual. -;; -;; To use: save as smarttabs.el in your .emacs.d directory, and add -;; "(require 'smarttabs)" to your .emacs file. -;; -;; Code is GPLv2, derived from http://www.emacswiki.org/emacs/SmartTabs -;; -;; Modifications by John Croisant: -;; * Remembers and re-applies window start, so that indenting doesn't -;; cause the window to visibly scroll. (2009-09-18) -;; - - -(defadvice align (around smart-tabs activate) - (let ((indent-tabs-mode nil)) ad-do-it)) - -(defadvice align-regexp (around smart-tabs activate) - (let ((indent-tabs-mode nil)) ad-do-it)) - -(defadvice indent-relative (around smart-tabs activate) - (let ((indent-tabs-mode nil)) ad-do-it)) - -(defadvice indent-according-to-mode (around smart-tabs activate) - (let ((indent-tabs-mode indent-tabs-mode)) - (if (memq indent-line-function - '(indent-relative - indent-relative-maybe)) - (setq indent-tabs-mode nil)) - ad-do-it)) - -(defmacro smart-tabs-advice (function offset) - `(defadvice ,function (around smart-tabs activate) - (cond - (indent-tabs-mode - (save-excursion - (beginning-of-line) - (while (looking-at "\t*\\( +\\)\t+") - (replace-match "" nil nil nil 1))) - (setq tab-width tab-width) - (let ((tab-width fill-column) - (,offset fill-column) - (wstart (window-start))) - ad-do-it - (set-window-start (selected-window) wstart))) - (t - ad-do-it)))) - -(smart-tabs-advice c-indent-line c-basic-offset) -(smart-tabs-advice c-indent-region c-basic-offset) - - -(provide 'smarttabs) |