From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/6915 Path: main.gmane.org!not-for-mail From: Ed L Cashin Newsgroups: gmane.comp.tex.context Subject: Re: .emacs tricks for indenting TeX code Date: 17 Feb 2002 23:56:07 -0500 Sender: owner-ntg-context@let.uu.nl Message-ID: <86k7tb75i0.fsf@cs.uga.edu> References: <86y9hr77kb.fsf@cs.uga.edu> NNTP-Posting-Host: coloc-standby.netfonds.no Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1035397419 14967 80.91.224.250 (23 Oct 2002 18:23:39 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 23 Oct 2002 18:23:39 +0000 (UTC) Original-To: ntg-context@ntg.nl In-Reply-To: <86y9hr77kb.fsf@cs.uga.edu> Xref: main.gmane.org gmane.comp.tex.context:6915 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:6915 Ed L Cashin writes: ... > Here's some emacs lisp code that does all that (try it on > non-essential files first -- I'm no lisp guru). It's based on stuff > in indent.el, and I haven't really optimized it for style. ;) When I added a context-specific feature to indent after the opening square bracket on a preceding line, I noticed that the original was overly complex and a bit wrong. This is the last unsolicited version I'll post to the list. Any other changes will go on the web somewhere. ;;;; my indention function (defun indent-tab-stop-or-relative (&optional unindented-ok) "indent even under blank line. indent to beginning of last line if non-blank" (interactive "P") (if (and abbrev-mode (eq (char-syntax (preceding-char)) ?w)) (expand-abbrev)) (let ((indent nil)) (save-excursion (beginning-of-line) ;; if we're not on the first line (if (save-excursion (re-search-backward "\n" nil t)) (progn (forward-line -1) (if (looking-at "[[ \t]") (progn (skip-chars-forward " \t[") (setq indent (current-column))))))) (let ((opoint (point-marker))) (delete-horizontal-space) (if indent (indent-to indent) (tab-to-tab-stop)) (if (> opoint (point)) (goto-char opoint)) (move-marker opoint nil)))) ... this part was OK: > ; (setq tex-mode-hook nil) > (add-hook > 'tex-mode-hook > '(lambda () > "my own tex stuff. enough misery!!!" > ; (let ((k (make-sparse-keymap)) > (make-local-variable 'tab-stop-list) > (setq tab-stop-list ; four-space stops > '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 > 64 68 72 76 80 84 88 92 96 100 104 108 112 > 116 120 124 128 132 136 140 144 148 152 156 > 160 164 168 172 176 180 184 188 192 196 200 > 204 208 212 216 220 224 228 232 236 240)) > (make-local-variable 'indent-line-function) > (setq indent-line-function 'indent-tab-stop-or-relative) > (local-set-key "\C-j" 'newline-and-indent) > (local-set-key "\t" 'indent-tab-stop-or-relative))) -- --Ed L Cashin | PGP public key: ecashin@uga.edu | http://noserose.net/e/pgp/