TL;DR: - prefer WPCARRO env-var to BRIEFCASE - remove repository URLs from Emacs libraries - prefer tvl-depot-path where possible - reduce the scope of constants.el - prune (some not all) stale CI configuration Change-Id: I21e9130402502ec6fa2fc4b46753c890069be62d Reviewed-on: https://cl.tvl.fyi/c/depot/+/4545 Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com>
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
| ;;; macros.el --- Helpful variables for making my ELisp life more enjoyable -*- lexical-binding: t -*-
 | |
| 
 | |
| ;; Author: William Carroll <wpcarro@gmail.com>
 | |
| ;; Version: 0.0.1
 | |
| ;; Package-Requires: ((emacs "24"))
 | |
| 
 | |
| ;;; Commentary:
 | |
| ;; This file contains helpful variables that I use in my ELisp development.
 | |
| 
 | |
| ;; TODO: Consider a macro solution for mimmicking OCaml's auto resolution of
 | |
| ;; dependencies using `load-path' and friends.
 | |
| 
 | |
| ;;; Code:
 | |
| 
 | |
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | |
| ;; Dependencies
 | |
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | |
| 
 | |
| (require 'f)
 | |
| (require 'string)
 | |
| (require 'symbol)
 | |
| 
 | |
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | |
| ;; Library
 | |
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | |
| 
 | |
| (defmacro macros-enable (mode)
 | |
|   "Helper for enabling `MODE'.
 | |
| Useful in `add-hook' calls.  Some modes, like `linum-mode' need to be called as
 | |
| `(linum-mode 1)', so `(add-hook mode #'linum-mode)' won't work."
 | |
|   `#'(lambda nil (,mode 1)))
 | |
| 
 | |
| (defmacro macros-disable (mode)
 | |
|   "Helper for disabling `MODE'.
 | |
| Useful in `add-hook' calls."
 | |
|   `#'(lambda nil (,mode -1)))
 | |
| 
 | |
| (defmacro macros-add-hook-before-save (mode f)
 | |
|   "Register a hook, `F', for a mode, `MODE' more conveniently.
 | |
| Usage: (macros-add-hook-before-save 'reason-mode-hook #'refmt-before-save)"
 | |
|   `(add-hook ,mode
 | |
|              (lambda ()
 | |
|                (add-hook 'before-save-hook ,f))))
 | |
| 
 | |
| ;; TODO: Privatize?
 | |
| (defun macros--namespace ()
 | |
|   "Return the namespace for a function based on the filename."
 | |
|   (->> (buffer-file-name)
 | |
|        f-filename
 | |
|        f-base))
 | |
| 
 | |
| (defmacro macros-comment (&rest _)
 | |
|   "Empty comment s-expresion where `BODY' is ignored."
 | |
|   `nil)
 | |
| 
 | |
| (defmacro macros-support-file-extension (ext mode)
 | |
|   "Register MODE to automatically load with files ending with EXT extension.
 | |
| Usage: (macros-support-file-extension \"pb\" protobuf-mode)"
 | |
|   (let ((extension (string-format "\\.%s\\'" ext)))
 | |
|     `(add-to-list 'auto-mode-alist '(,extension . ,mode))))
 | |
| 
 | |
| (provide 'macros)
 | |
| ;;; macros.el ends here
 |