aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1995-07-20 20:28:45 +0000
committerRichard M. Stallman1995-07-20 20:28:45 +0000
commitbc35d5b39b6c3c6db543d6e56e87530fd436b9ef (patch)
treeb658d9c8be235851476481a46cedd06ffabd2408
parentcb3d1a0a4ba9f729afdc1bcac4a9ac23a7e8e780 (diff)
downloademacs-bc35d5b39b6c3c6db543d6e56e87530fd436b9ef.tar.gz
emacs-bc35d5b39b6c3c6db543d6e56e87530fd436b9ef.zip
(local-variables-section): Delete autoload cookie.
(skeleton-pair-insert-maybe): Renamed from pair-insert-maybe. (skeleton-pair, skeleton-pair-filter, skeleton-pair-alist) (skeleton-pair-on-word): Renamed from pair-... (mirror-mode): Commented out.
-rw-r--r--lisp/skeleton.el134
1 files changed, 66 insertions, 68 deletions
diff --git a/lisp/skeleton.el b/lisp/skeleton.el
index 21ea76c3b8d..7ee3c8fff6c 100644
--- a/lisp/skeleton.el
+++ b/lisp/skeleton.el
@@ -110,7 +110,7 @@ This command can also be an abbrev expansion (3rd and 4th columns in
110 (setq function (nth 1 (backtrace-frame 2))))) 110 (setq function (nth 1 (backtrace-frame 2)))))
111 (if (not (setq function (funcall skeleton-filter (symbol-value function)))) 111 (if (not (setq function (funcall skeleton-filter (symbol-value function))))
112 (if (or (eq this-command 'self-insert-command) 112 (if (or (eq this-command 'self-insert-command)
113 (eq this-command 'pair-insert-maybe) 113 (eq this-command 'skeleton-pair-insert-maybe)
114 (eq this-command 'expand-abbrev)) 114 (eq this-command 'expand-abbrev))
115 (setq buffer-undo-list 115 (setq buffer-undo-list
116 (primitive-undo 1 buffer-undo-list))) 116 (primitive-undo 1 buffer-undo-list)))
@@ -118,7 +118,7 @@ This command can also be an abbrev expansion (3rd and 4th columns in
118 nil 118 nil
119 (if (setq skeleton-abbrev-cleanup 119 (if (setq skeleton-abbrev-cleanup
120 (or (eq this-command 'self-insert-command) 120 (or (eq this-command 'self-insert-command)
121 (eq this-command 'pair-insert-maybe))) 121 (eq this-command 'skeleton-pair-insert-maybe)))
122 () 122 ()
123 ;; Pretend C-x a e passed the prefix arg to us 123 ;; Pretend C-x a e passed the prefix arg to us
124 (if (or arg current-prefix-arg) 124 (if (or arg current-prefix-arg)
@@ -345,7 +345,6 @@ automatically, and you are prompted to fill in the variable parts."))))
345 345
346;; Maybe belongs into simple.el or elsewhere 346;; Maybe belongs into simple.el or elsewhere
347 347
348;;;###autoload
349(define-skeleton local-variables-section 348(define-skeleton local-variables-section
350 "Insert a local variables section. Use current comment syntax if any." 349 "Insert a local variables section. Use current comment syntax if any."
351 () 350 ()
@@ -373,54 +372,53 @@ automatically, and you are prompted to fill in the variable parts."))))
373 resume: 372 resume:
374 comment-start "End:" comment-end) 373 comment-start "End:" comment-end)
375 374
376;; variables and command for automatically inserting pairs like () or "" 375;; Variables and command for automatically inserting pairs like () or "".
377 376
378(defvar pair nil 377(defvar skeleton-pair nil
379 "*If this is nil pairing is turned off, no matter what else is set. 378 "*If this is nil pairing is turned off, no matter what else is set.
380Otherwise modes with `pair-insert-maybe' on some keys will attempt this.") 379Otherwise modes with `skeleton-pair-insert-maybe' on some keys
380will attempt to insert pairs of matching characters.")
381 381
382 382
383(defvar pair-on-word nil 383(defvar skeleton-pair-on-word nil
384 "*If this is nil pairing is not attempted before or inside a word.") 384 "*If this is nil, paired insertion is inhibited before or inside a word.")
385 385
386 386
387(defvar pair-filter (lambda ()) 387(defvar skeleton-pair-filter (lambda ())
388 "Attempt pairing if this function returns nil, before inserting. 388 "Attempt paired insertion if this function returns nil, before inserting.
389This allows for context-sensitive checking whether pairing is appropriate.") 389This allows for context-sensitive checking whether pairing is appropriate.")
390 390
391 391
392(defvar pair-alist () 392(defvar skeleton-pair-alist ()
393 "An override alist of pairing partners matched against 393 "An override alist of pairing partners matched against `last-command-char'.
394`last-command-char'. Each alist element, which looks like (ELEMENT 394Each alist element, which looks like (ELEMENT ...), is passed to
395...), is passed to `skeleton-insert' with no interactor. Variable `str' 395`skeleton-insert' with no interactor. Variable `str' does nothing.
396does nothing.
397 396
398Elements might be (?` ?` _ \"''\"), (?\\( ? _ \" )\") or (?{ \\n > _ \\n ?} >).") 397Elements might be (?` ?` _ \"''\"), (?\\( ? _ \" )\") or (?{ \\n > _ \\n ?} >).")
399 398
400 399
401
402;;;###autoload 400;;;###autoload
403(defun pair-insert-maybe (arg) 401(defun skeleton-pair-insert-maybe (arg)
404 "Insert the character you type ARG times. 402 "Insert the character you type ARG times.
405 403
406With no ARG, if `pair' is non-nil, and if 404With no ARG, if `skeleton-pair' is non-nil, and if
407`pair-on-word' is non-nil or we are not before or inside a 405`skeleton-pair-on-word' is non-nil or we are not before or inside a
408word, and if `pair-filter' returns nil, pairing is performed. 406word, and if `skeleton-pair-filter' returns nil, pairing is performed.
409 407
410If a match is found in `pair-alist', that is inserted, else 408If a match is found in `skeleton-pair-alist', that is inserted, else
411the defaults are used. These are (), [], {}, <> and `' for the 409the defaults are used. These are (), [], {}, <> and `' for the
412symmetrical ones, and the same character twice for the others." 410symmetrical ones, and the same character twice for the others."
413 (interactive "*P") 411 (interactive "*P")
414 (if (or arg 412 (if (or arg
415 (not pair) 413 (not skeleton-pair)
416 (if (not pair-on-word) (looking-at "\\w")) 414 (if (not skeleton-pair-on-word) (looking-at "\\w"))
417 (funcall pair-filter)) 415 (funcall skeleton-pair-filter))
418 (self-insert-command (prefix-numeric-value arg)) 416 (self-insert-command (prefix-numeric-value arg))
419 (self-insert-command 1) 417 (self-insert-command 1)
420 (if skeleton-abbrev-cleanup 418 (if skeleton-abbrev-cleanup
421 () 419 ()
422 ;; (preceding-char) is stripped of any Meta-stuff in last-command-char 420 ;; (preceding-char) is stripped of any Meta-stuff in last-command-char
423 (if (setq arg (assq (preceding-char) pair-alist)) 421 (if (setq arg (assq (preceding-char) skeleton-pair-alist))
424 ;; typed char is inserted, and car means no interactor 422 ;; typed char is inserted, and car means no interactor
425 (skeleton-insert arg t) 423 (skeleton-insert arg t)
426 (save-excursion 424 (save-excursion
@@ -433,48 +431,48 @@ symmetrical ones, and the same character twice for the others."
433 last-command-char))))))) 431 last-command-char)))))))
434 432
435 433
436;; A more serious example can be found in sh-script.el 434;;; ;; A more serious example can be found in sh-script.el
437;; The quote before (defun prevents this from being byte-compiled. 435;;; ;; The quote before (defun prevents this from being byte-compiled.
438'(defun mirror-mode () 436;;;(defun mirror-mode ()
439 "This major mode is an amusing little example of paired insertion. 437;;; "This major mode is an amusing little example of paired insertion.
440All printable characters do a paired self insert, while the other commands 438;;;All printable characters do a paired self insert, while the other commands
441work normally." 439;;;work normally."
442 (interactive) 440;;; (interactive)
443 (kill-all-local-variables) 441;;; (kill-all-local-variables)
444 (make-local-variable 'pair) 442;;; (make-local-variable 'pair)
445 (make-local-variable 'pair-on-word) 443;;; (make-local-variable 'pair-on-word)
446 (make-local-variable 'pair-filter) 444;;; (make-local-variable 'pair-filter)
447 (make-local-variable 'pair-alist) 445;;; (make-local-variable 'pair-alist)
448 (setq major-mode 'mirror-mode 446;;; (setq major-mode 'mirror-mode
449 mode-name "Mirror" 447;;; mode-name "Mirror"
450 pair-on-word t 448;;; pair-on-word t
451 ;; in the middle column insert one or none if odd window-width 449;;; ;; in the middle column insert one or none if odd window-width
452 pair-filter (lambda () 450;;; pair-filter (lambda ()
453 (if (>= (current-column) 451;;; (if (>= (current-column)
454 (/ (window-width) 2)) 452;;; (/ (window-width) 2))
455 ;; insert both on next line 453;;; ;; insert both on next line
456 (next-line 1) 454;;; (next-line 1)
457 ;; insert one or both? 455;;; ;; insert one or both?
458 (= (* 2 (1+ (current-column))) 456;;; (= (* 2 (1+ (current-column)))
459 (window-width)))) 457;;; (window-width))))
460 ;; mirror these the other way round as well 458;;; ;; mirror these the other way round as well
461 pair-alist '((?) _ ?() 459;;; pair-alist '((?) _ ?()
462 (?] _ ?[) 460;;; (?] _ ?[)
463 (?} _ ?{) 461;;; (?} _ ?{)
464 (?> _ ?<) 462;;; (?> _ ?<)
465 (?/ _ ?\\) 463;;; (?/ _ ?\\)
466 (?\\ _ ?/) 464;;; (?\\ _ ?/)
467 (?` ?` _ "''") 465;;; (?` ?` _ "''")
468 (?' ?' _ "``")) 466;;; (?' ?' _ "``"))
469 ;; in this mode we exceptionally ignore the user, else it's no fun 467;;; ;; in this mode we exceptionally ignore the user, else it's no fun
470 pair t) 468;;; pair t)
471 (let ((map (make-keymap)) 469;;; (let ((map (make-keymap))
472 (i ? )) 470;;; (i ? ))
473 (use-local-map map) 471;;; (use-local-map map)
474 (setq map (car (cdr map))) 472;;; (setq map (car (cdr map)))
475 (while (< i ?\^?) 473;;; (while (< i ?\^?)
476 (aset map i 'pair-insert-maybe) 474;;; (aset map i 'skeleton-pair-insert-maybe)
477 (setq i (1+ i)))) 475;;; (setq i (1+ i))))
478 (run-hooks 'mirror-mode-hook)) 476;;; (run-hooks 'mirror-mode-hook))
479 477
480;; skeleton.el ends here 478;; skeleton.el ends here