3c8e6f0cc5
Finally ported my up-to-date emacs configuration here. I was putting this off for a long while, unsure of how to handle all of the work. All it took was my laptop being fried to force me to do this. So... voila!
41 lines
1,013 B
EmacsLisp
41 lines
1,013 B
EmacsLisp
;; functions.el --- String helper functions for my Emacs development -*- lexical-binding: t -*-
|
|
;; Author: William Carroll <wpcarro@gmail.com>
|
|
|
|
;;; Commentary:
|
|
;; String & Symbol helpers!
|
|
|
|
;;; Code:
|
|
|
|
(require 'dash)
|
|
(require 's)
|
|
|
|
;; Strings
|
|
(defun string/hookify (x)
|
|
"Append \"-hook\" to X."
|
|
(s-append "-hook" x))
|
|
|
|
(defun string/ensure-hookified (x)
|
|
"Ensure that X has \"-hook\" appended to it."
|
|
(if (s-ends-with? "-hook" x)
|
|
x
|
|
(string/hookify x)))
|
|
|
|
;; Symbols
|
|
(defun symbol/as-string (callback x)
|
|
"Treat the symbol, X, as a string while applying CALLBACK to it.
|
|
Coerce back to a symbol on the way out."
|
|
(->> x
|
|
symbol-name
|
|
callback
|
|
intern))
|
|
|
|
(defun symbol/hookify (x)
|
|
"Append \"-hook\" to X when X is a symbol."
|
|
(symbol/as-string #'string/hookify x))
|
|
|
|
(defun symbol/ensure-hookified (x)
|
|
"Ensure that X has \"-hook\" appended to it when X is a symbol."
|
|
(symbol/as-string #'string/ensure-hookified x))
|
|
|
|
(provide 'string-functions)
|
|
;;; string-functions.el ends here
|