Mercurial > hg > xemacs-beta
comparison lisp/abbrev.el @ 404:2f8bb876ab1d r21-2-32
Import from CVS: tag r21-2-32
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:16:07 +0200 |
parents | c5d627a313b1 |
children | 697ef44129c6 |
comparison
equal
deleted
inserted
replaced
403:9f011ab08d48 | 404:2f8bb876ab1d |
---|---|
417 (insert-abbrev-table-description (car tables) nil) | 417 (insert-abbrev-table-description (car tables) nil) |
418 (setq tables (cdr tables)))) | 418 (setq tables (cdr tables)))) |
419 (write-region 1 (point-max) file) | 419 (write-region 1 (point-max) file) |
420 (erase-buffer))) | 420 (erase-buffer))) |
421 | 421 |
422 (defun abbrev-string-to-be-defined (arg) | |
423 "Return the string for which an abbrev will be defined. | |
424 ARG is the argument to `add-global-abbrev' or `add-mode-abbrev'." | |
425 (if (and (not arg) (region-active-p)) (setq arg 0) | |
426 (setq arg (prefix-numeric-value arg))) | |
427 (and (>= arg 0) | |
428 (buffer-substring | |
429 (point) | |
430 (if (= arg 0) (mark) | |
431 (save-excursion (forward-word (- arg)) (point)))))) | |
432 | |
422 (defun add-mode-abbrev (arg) | 433 (defun add-mode-abbrev (arg) |
423 "Define mode-specific abbrev for last word(s) before point. | 434 "Define mode-specific abbrev for last word(s) before point. |
424 Argument is how many words before point form the expansion; | 435 Argument is how many words before point form the expansion; |
425 or zero means the region is the expansion. | 436 or zero means the region is the expansion. |
426 A negative argument means to undefine the specified abbrev. | 437 A negative argument means to undefine the specified abbrev. |
448 (interactive "P") | 459 (interactive "P") |
449 (add-abbrev global-abbrev-table "Global" arg)) | 460 (add-abbrev global-abbrev-table "Global" arg)) |
450 | 461 |
451 (defun add-abbrev (table type arg) | 462 (defun add-abbrev (table type arg) |
452 ;; XEmacs change: | 463 ;; XEmacs change: |
453 (if (and (not arg) (region-active-p)) (setq arg 0) | 464 (let ((exp (abbrev-string-to-be-defined arg)) |
454 (setq arg (prefix-numeric-value arg))) | |
455 (let ((exp (and (>= arg 0) | |
456 (buffer-substring | |
457 (point) | |
458 (if (= arg 0) (mark) | |
459 (save-excursion (forward-word (- arg)) (point)))))) | |
460 name) | 465 name) |
461 (setq name | 466 (setq name |
462 (read-string (format (if exp "%s abbrev for \"%s\": " | 467 (read-string (format (if exp "%s abbrev for \"%s\": " |
463 "Undefine %s abbrev: ") | 468 "Undefine %s abbrev: ") |
464 type exp))) | 469 type exp))) |
466 (if (or (null exp) | 471 (if (or (null exp) |
467 (not (abbrev-expansion name table)) | 472 (not (abbrev-expansion name table)) |
468 (y-or-n-p (format "%s expands to \"%s\"; redefine? " | 473 (y-or-n-p (format "%s expands to \"%s\"; redefine? " |
469 name (abbrev-expansion name table)))) | 474 name (abbrev-expansion name table)))) |
470 (define-abbrev table (downcase name) exp)))) | 475 (define-abbrev table (downcase name) exp)))) |
476 | |
477 (defun inverse-abbrev-string-to-be-defined (arg) | |
478 "Return the string for which an inverse abbrev will be defined. | |
479 ARG is the argument to `inverse-add-global-abbrev' or | |
480 `inverse-add-mode-abbrev'." | |
481 (save-excursion | |
482 (forward-word (- arg)) | |
483 (buffer-substring (point) (progn (forward-word 1) (point))))) | |
471 | 484 |
472 (defun inverse-add-mode-abbrev (arg) | 485 (defun inverse-add-mode-abbrev (arg) |
473 "Define last word before point as a mode-specific abbrev. | 486 "Define last word before point as a mode-specific abbrev. |
474 With prefix argument N, defines the Nth word before point. | 487 With prefix argument N, defines the Nth word before point. |
475 This command uses the minibuffer to read the expansion. | 488 This command uses the minibuffer to read the expansion. |