summaryrefslogtreecommitdiff
path: root/lisp/init-abbrev.el
diff options
context:
space:
mode:
authorKyle Meyer <kyle@kyleam.com>2015-02-21 22:06:07 -0500
committerKyle Meyer <kyle@kyleam.com>2015-02-28 00:29:49 -0500
commit405a2beebbb2695efb2de6462242b1b46fb98fc6 (patch)
tree559b28583711a18fbbf5f0106e8c01ab6323c782 /lisp/init-abbrev.el
parent17a61e65d5a12e0649dfe427855131478d575e3f (diff)
downloademacs.d-405a2beebbb2695efb2de6462242b1b46fb98fc6.tar.gz
Move abbrev customization to separate file
Diffstat (limited to 'lisp/init-abbrev.el')
-rw-r--r--lisp/init-abbrev.el43
1 files changed, 43 insertions, 0 deletions
diff --git a/lisp/init-abbrev.el b/lisp/init-abbrev.el
new file mode 100644
index 0000000..22cfd0b
--- /dev/null
+++ b/lisp/init-abbrev.el
@@ -0,0 +1,43 @@
+
+(setq save-abbrevs 'silently)
+
+(defun km/abbrev-add-case-global ()
+ "Define lower abbreviation for the word before point.
+Like `add-global-abbrev', but always make the abbreviation the
+lower case variant of the word before point."
+ (interactive)
+ ;; Modified from `add-abbrev'.
+ (let* ((table global-abbrev-table)
+ (exp (buffer-substring-no-properties
+ (point)
+ (save-excursion (forward-word -1) (point))))
+ (name (downcase exp)))
+ (when (or (not (abbrev-expansion name table))
+ (y-or-n-p (format "%s expands to \"%s\"; redefine? "
+ name (abbrev-expansion name table))))
+ (define-abbrev table name exp))))
+
+(defun km/abbrev-inverse-add-uppercase-global ()
+ "Define uppercase expansion for the word before point.
+Like `inverse-add-global-abbrev', but always use the lower case
+version of the word before point as the abbreviation and the
+upper case version as the expansion."
+ (interactive)
+ ;; Modified from `inverse-add-abbrev'.
+ (let* ((table global-abbrev-table)
+ (end (point))
+ (start (save-excursion (forward-word -1) (point)))
+ (name (downcase (buffer-substring-no-properties start end)))
+ (exp (upcase name)))
+ (when (or (not (abbrev-expansion name table))
+ (y-or-n-p (format "%s expands to \"%s\"; redefine? "
+ name (abbrev-expansion name table))))
+ (define-abbrev table name exp)
+ (save-excursion
+ (goto-char end)
+ (expand-abbrev)))))
+
+(define-key abbrev-map "c" 'km/abbrev-add-case-global)
+(define-key abbrev-map "iu" 'km/abbrev-inverse-add-uppercase-global)
+
+(provide 'init-abbrev)