Lint string, macros.el
More of the same type of linting... basically preferring `namespace-` instead of `namespace/`.
This commit is contained in:
parent
158f810981
commit
a638e15c0d
36 changed files with 176 additions and 204 deletions
|
@ -2,4 +2,4 @@
|
||||||
# name: redux-action
|
# name: redux-action
|
||||||
# key: rax
|
# key: rax
|
||||||
# --
|
# --
|
||||||
export const ${1:$$(string/lower->caps yas-text)} = '`(downcase (buffer-dirname))`/${1:$(string/caps->kebab yas-text)}'
|
export const ${1:$$(string-lower->caps yas-text)} = '`(downcase (buffer-dirname))`/${1:$(string-caps->kebab yas-text)}'
|
|
@ -2,4 +2,4 @@
|
||||||
# name: typed-redux-action
|
# name: typed-redux-action
|
||||||
# key: trax
|
# key: trax
|
||||||
# --
|
# --
|
||||||
export const ${1:$$(string/lower->caps yas-text)}: '`(downcase (buffer-dirname))`/${1:$(string/caps->kebab yas-text)}' = '`(downcase (buffer-dirname))`/${1:$(string/caps->kebab yas-text)}'
|
export const ${1:$$(string-lower->caps yas-text)}: '`(downcase (buffer-dirname))`/${1:$(string-caps->kebab yas-text)}' = '`(downcase (buffer-dirname))`/${1:$(string-caps->kebab yas-text)}'
|
|
@ -233,7 +233,7 @@ In this case, the last writer wins, which is B."
|
||||||
;; - update-all
|
;; - update-all
|
||||||
|
|
||||||
;; Scratch-pad
|
;; Scratch-pad
|
||||||
(macros/comment
|
(macros-comment
|
||||||
(progn
|
(progn
|
||||||
(setq person '((first-name . "William")
|
(setq person '((first-name . "William")
|
||||||
(first-name . "William")
|
(first-name . "William")
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
(alist/has-key? x (bag-xs xs)))
|
(alist/has-key? x (bag-xs xs)))
|
||||||
|
|
||||||
;; TODO: Tabling this for now since working with structs seems to be
|
;; TODO: Tabling this for now since working with structs seems to be
|
||||||
;; disappointingly difficult. Where is `struct/update'?
|
;; disappointingly difficult. Where is `struct-update'?
|
||||||
;; (defun bag/add (x xs)
|
;; (defun bag/add (x xs)
|
||||||
;; "Add X to XS.")
|
;; "Add X to XS.")
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ Otherwise, open with `counsel-find-file'."
|
||||||
(general-define-key
|
(general-define-key
|
||||||
:prefix "<SPC>"
|
:prefix "<SPC>"
|
||||||
:states '(normal)
|
:states '(normal)
|
||||||
(string/concat "j" (bookmark-kbd b))
|
(string-concat "j" (bookmark-kbd b))
|
||||||
;; TODO: Consider `cl-labels' so `which-key' minibuffer is more
|
;; TODO: Consider `cl-labels' so `which-key' minibuffer is more
|
||||||
;; helpful.
|
;; helpful.
|
||||||
(lambda () (interactive) (bookmark/open b)))))))
|
(lambda () (interactive) (bookmark/open b)))))))
|
||||||
|
|
|
@ -121,7 +121,7 @@ Return a reference to that buffer."
|
||||||
(if (> (ts-diff (ts-now) last-called)
|
(if (> (ts-diff (ts-now) last-called)
|
||||||
buffer/source-code-timeout)
|
buffer/source-code-timeout)
|
||||||
(progn
|
(progn
|
||||||
(struct/set! source-code-cycle
|
(struct-set! source-code-cycle
|
||||||
cycle
|
cycle
|
||||||
(cycle/from-list (buffer/source-code-buffers))
|
(cycle/from-list (buffer/source-code-buffers))
|
||||||
buffer/source-code-cycle-state)
|
buffer/source-code-cycle-state)
|
||||||
|
@ -129,7 +129,7 @@ Return a reference to that buffer."
|
||||||
buffer/source-code-cycle-state)))
|
buffer/source-code-cycle-state)))
|
||||||
(funcall cycle-fn cycle)
|
(funcall cycle-fn cycle)
|
||||||
(switch-to-buffer (cycle/current cycle)))
|
(switch-to-buffer (cycle/current cycle)))
|
||||||
(struct/set! source-code-cycle
|
(struct-set! source-code-cycle
|
||||||
last-called
|
last-called
|
||||||
(ts-now)
|
(ts-now)
|
||||||
buffer/source-code-cycle-state))
|
buffer/source-code-cycle-state))
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
('gigabyte (tuple/from bytes/gb "GB"))
|
('gigabyte (tuple/from bytes/gb "GB"))
|
||||||
('terabyte (tuple/from bytes/tb "TB"))
|
('terabyte (tuple/from bytes/tb "TB"))
|
||||||
('petabyte (tuple/from bytes/pb "PB")))))
|
('petabyte (tuple/from bytes/pb "PB")))))
|
||||||
(string/format "%d%s"
|
(string-format "%d%s"
|
||||||
(round x (tuple/first base-and-unit))
|
(round x (tuple/first base-and-unit))
|
||||||
(tuple/second base-and-unit))))
|
(tuple/second base-and-unit))))
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
(defun cache/touch (x xs)
|
(defun cache/touch (x xs)
|
||||||
"Ensure value X in cache, XS, is front of the list.
|
"Ensure value X in cache, XS, is front of the list.
|
||||||
If X isn't in XS (using `equal'), insert it at the front."
|
If X isn't in XS (using `equal'), insert it at the front."
|
||||||
(struct/update
|
(struct-update
|
||||||
cache
|
cache
|
||||||
xs
|
xs
|
||||||
(>> (list/reject (lambda (y) (equal x y)))
|
(>> (list/reject (lambda (y) (equal x y)))
|
||||||
|
|
|
@ -72,7 +72,7 @@ Cycle prev otherwise."
|
||||||
(cycle/next colorscheme/whitelist)
|
(cycle/next colorscheme/whitelist)
|
||||||
(cycle/prev colorscheme/whitelist))))
|
(cycle/prev colorscheme/whitelist))))
|
||||||
(colorscheme/set theme)
|
(colorscheme/set theme)
|
||||||
(message (s-concat "Active theme: " (symbol/to-string theme)))))
|
(message (s-concat "Active theme: " (symbol-to-string theme)))))
|
||||||
|
|
||||||
(defun colorscheme/next ()
|
(defun colorscheme/next ()
|
||||||
"Disable the currently active theme and load the next theme."
|
"Disable the currently active theme and load the next theme."
|
||||||
|
|
|
@ -94,16 +94,16 @@ underlying struct."
|
||||||
"Return the next value in `XS' and update `current-index'."
|
"Return the next value in `XS' and update `current-index'."
|
||||||
(let* ((current-index (cycle-current-index xs))
|
(let* ((current-index (cycle-current-index xs))
|
||||||
(next-index (next-index-> 0 (cycle/count xs) current-index)))
|
(next-index (next-index-> 0 (cycle/count xs) current-index)))
|
||||||
(struct/set! cycle previous-index current-index xs)
|
(struct-set! cycle previous-index current-index xs)
|
||||||
(struct/set! cycle current-index next-index xs)
|
(struct-set! cycle current-index next-index xs)
|
||||||
(nth next-index (cycle-xs xs))))
|
(nth next-index (cycle-xs xs))))
|
||||||
|
|
||||||
(defun cycle/prev (xs)
|
(defun cycle/prev (xs)
|
||||||
"Return the previous value in `XS' and update `current-index'."
|
"Return the previous value in `XS' and update `current-index'."
|
||||||
(let* ((current-index (cycle-current-index xs))
|
(let* ((current-index (cycle-current-index xs))
|
||||||
(next-index (next-index<- 0 (cycle/count xs) current-index)))
|
(next-index (next-index<- 0 (cycle/count xs) current-index)))
|
||||||
(struct/set! cycle previous-index current-index xs)
|
(struct-set! cycle previous-index current-index xs)
|
||||||
(struct/set! cycle current-index next-index xs)
|
(struct-set! cycle current-index next-index xs)
|
||||||
(nth next-index (cycle-xs xs))))
|
(nth next-index (cycle-xs xs))))
|
||||||
|
|
||||||
(defun cycle/current (cycle)
|
(defun cycle/current (cycle)
|
||||||
|
@ -118,8 +118,8 @@ underlying struct."
|
||||||
"Jump to the I index of XS."
|
"Jump to the I index of XS."
|
||||||
(let ((current-index (cycle-current-index xs))
|
(let ((current-index (cycle-current-index xs))
|
||||||
(next-index (math/mod i (cycle/count xs))))
|
(next-index (math/mod i (cycle/count xs))))
|
||||||
(struct/set! cycle previous-index current-index xs)
|
(struct-set! cycle previous-index current-index xs)
|
||||||
(struct/set! cycle current-index next-index xs))
|
(struct-set! cycle current-index next-index xs))
|
||||||
xs)
|
xs)
|
||||||
|
|
||||||
(defun cycle/focus (p cycle)
|
(defun cycle/focus (p cycle)
|
||||||
|
@ -155,19 +155,19 @@ ITEM is the first item in XS that t for `equal'."
|
||||||
If there is no currently focused item, add X to the beginning of XS."
|
If there is no currently focused item, add X to the beginning of XS."
|
||||||
(if (cycle/empty? xs)
|
(if (cycle/empty? xs)
|
||||||
(progn
|
(progn
|
||||||
(struct/set! cycle xs (list x) xs)
|
(struct-set! cycle xs (list x) xs)
|
||||||
(struct/set! cycle current-index 0 xs)
|
(struct-set! cycle current-index 0 xs)
|
||||||
(struct/set! cycle previous-index nil xs))
|
(struct-set! cycle previous-index nil xs))
|
||||||
(let ((curr-i (cycle-current-index xs))
|
(let ((curr-i (cycle-current-index xs))
|
||||||
(prev-i (cycle-previous-index xs)))
|
(prev-i (cycle-previous-index xs)))
|
||||||
(if curr-i
|
(if curr-i
|
||||||
(progn
|
(progn
|
||||||
(struct/set! cycle xs (-insert-at curr-i x (cycle-xs xs)) xs)
|
(struct-set! cycle xs (-insert-at curr-i x (cycle-xs xs)) xs)
|
||||||
(when (>= prev-i curr-i) (struct/set! cycle previous-index (1+ prev-i) xs))
|
(when (>= prev-i curr-i) (struct-set! cycle previous-index (1+ prev-i) xs))
|
||||||
(when curr-i (struct/set! cycle current-index (1+ curr-i) xs)))
|
(when curr-i (struct-set! cycle current-index (1+ curr-i) xs)))
|
||||||
(progn
|
(progn
|
||||||
(struct/set! cycle xs (cons x (cycle-xs xs)) xs)
|
(struct-set! cycle xs (cons x (cycle-xs xs)) xs)
|
||||||
(when prev-i (struct/set! cycle previous-index (1+ prev-i) xs))))
|
(when prev-i (struct-set! cycle previous-index (1+ prev-i) xs))))
|
||||||
xs)))
|
xs)))
|
||||||
|
|
||||||
(defun cycle/remove (x xs)
|
(defun cycle/remove (x xs)
|
||||||
|
@ -181,13 +181,13 @@ If X is the currently focused value, after it's deleted, current-index will be
|
||||||
(let ((curr-i (cycle-current-index xs))
|
(let ((curr-i (cycle-current-index xs))
|
||||||
(prev-i (cycle-previous-index xs))
|
(prev-i (cycle-previous-index xs))
|
||||||
(rm-i (-elem-index x (cycle-xs xs))))
|
(rm-i (-elem-index x (cycle-xs xs))))
|
||||||
(struct/set! cycle xs (-remove-at rm-i (cycle-xs xs)) xs)
|
(struct-set! cycle xs (-remove-at rm-i (cycle-xs xs)) xs)
|
||||||
(when prev-i
|
(when prev-i
|
||||||
(when (> prev-i rm-i) (struct/set! cycle previous-index (1- prev-i) xs))
|
(when (> prev-i rm-i) (struct-set! cycle previous-index (1- prev-i) xs))
|
||||||
(when (= prev-i rm-i) (struct/set! cycle previous-index nil xs)))
|
(when (= prev-i rm-i) (struct-set! cycle previous-index nil xs)))
|
||||||
(when curr-i
|
(when curr-i
|
||||||
(when (> curr-i rm-i) (struct/set! cycle current-index (1- curr-i) xs))
|
(when (> curr-i rm-i) (struct-set! cycle current-index (1- curr-i) xs))
|
||||||
(when (= curr-i rm-i) (struct/set! cycle current-index nil xs)))
|
(when (= curr-i rm-i) (struct-set! cycle current-index nil xs)))
|
||||||
xs))
|
xs))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
|
@ -48,7 +48,7 @@ The car models the enabled state of my laptop display; the cdr models the
|
||||||
(interactive)
|
(interactive)
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "display/enable-4k"
|
:name "display/enable-4k"
|
||||||
:command (string/format
|
:command (string-format
|
||||||
"xrandr --output %s --above %s --primary --auto --size 3840x2160 --rate 30.00 --dpi 144"
|
"xrandr --output %s --above %s --primary --auto --size 3840x2160 --rate 30.00 --dpi 144"
|
||||||
display/4k-monitor
|
display/4k-monitor
|
||||||
display/laptop-monitor)))
|
display/laptop-monitor)))
|
||||||
|
@ -58,7 +58,7 @@ The car models the enabled state of my laptop display; the cdr models the
|
||||||
(interactive)
|
(interactive)
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "display/disable-4k"
|
:name "display/disable-4k"
|
||||||
:command (string/format "xrandr --output %s --off"
|
:command (string-format "xrandr --output %s --off"
|
||||||
display/4k-monitor)))
|
display/4k-monitor)))
|
||||||
|
|
||||||
(defun display/enable-laptop ()
|
(defun display/enable-laptop ()
|
||||||
|
@ -68,7 +68,7 @@ Sometimes this is useful when I'm sharing my screen in a Google Hangout and I
|
||||||
(interactive)
|
(interactive)
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "display/disable-laptop"
|
:name "display/disable-laptop"
|
||||||
:command (string/format "xrandr --output %s --auto"
|
:command (string-format "xrandr --output %s --auto"
|
||||||
display/laptop-monitor)))
|
display/laptop-monitor)))
|
||||||
|
|
||||||
(defun display/disable-laptop ()
|
(defun display/disable-laptop ()
|
||||||
|
@ -78,7 +78,7 @@ Sometimes this is useful when I'm sharing my screen in a Google Hangout and I
|
||||||
(interactive)
|
(interactive)
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "display/disable-laptop"
|
:name "display/disable-laptop"
|
||||||
:command (string/format "xrandr --output %s --off"
|
:command (string-format "xrandr --output %s --off"
|
||||||
display/laptop-monitor)))
|
display/laptop-monitor)))
|
||||||
|
|
||||||
(defun display/cycle-display-states ()
|
(defun display/cycle-display-states ()
|
||||||
|
|
|
@ -87,7 +87,7 @@
|
||||||
(defun fonts/set (font &optional size)
|
(defun fonts/set (font &optional size)
|
||||||
"Change the font to `FONT' with option integer, SIZE, in pixels."
|
"Change the font to `FONT' with option integer, SIZE, in pixels."
|
||||||
(if (maybe-some? size)
|
(if (maybe-some? size)
|
||||||
(set-frame-font (string/format "%s %s" font size) nil t)
|
(set-frame-font (string-format "%s %s" font size) nil t)
|
||||||
(set-frame-font font nil t)))
|
(set-frame-font font nil t)))
|
||||||
|
|
||||||
(defun fonts/whitelist-set (font)
|
(defun fonts/whitelist-set (font)
|
||||||
|
@ -107,7 +107,7 @@ The size of the font is determined by `fonts/size'."
|
||||||
"Message the currently enabled font."
|
"Message the currently enabled font."
|
||||||
(interactive)
|
(interactive)
|
||||||
(message
|
(message
|
||||||
(string/format "[fonts] Current font: \"%s\""
|
(string-format "[fonts] Current font: \"%s\""
|
||||||
(fonts/current))))
|
(fonts/current))))
|
||||||
|
|
||||||
(defun fonts/current ()
|
(defun fonts/current ()
|
||||||
|
|
|
@ -111,7 +111,7 @@
|
||||||
(defun wpc/evil-replace-under-point ()
|
(defun wpc/evil-replace-under-point ()
|
||||||
"Faster than typing %s//thing/g."
|
"Faster than typing %s//thing/g."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((term (s-replace "/" "\\/" (symbol/to-string (symbol-at-point)))))
|
(let ((term (s-replace "/" "\\/" (symbol-to-string (symbol-at-point)))))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(evil-ex (concat "%s/\\b" term "\\b/")))))
|
(evil-ex (concat "%s/\\b" term "\\b/")))))
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@
|
||||||
|
|
||||||
(defun irc/message (x)
|
(defun irc/message (x)
|
||||||
"Print message X in a structured way."
|
"Print message X in a structured way."
|
||||||
(message (string/format "[irc.el] %s" x)))
|
(message (string-format "[irc.el] %s" x)))
|
||||||
|
|
||||||
;; TODO: Integrate Google setup with Freenode setup.
|
;; TODO: Integrate Google setup with Freenode setup.
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@
|
||||||
(erc-join-channel
|
(erc-join-channel
|
||||||
(cycle/next cycle))
|
(cycle/next cycle))
|
||||||
(irc/message
|
(irc/message
|
||||||
(string/format "Current IRC channel: %s" (cycle/current cycle))))))
|
(string-format "Current IRC channel: %s" (cycle/current cycle))))))
|
||||||
|
|
||||||
(defun irc/prev-channel ()
|
(defun irc/prev-channel ()
|
||||||
"Join the previous channel for the active server."
|
"Join the previous channel for the active server."
|
||||||
|
@ -146,10 +146,10 @@
|
||||||
(erc-join-channel
|
(erc-join-channel
|
||||||
(cycle/prev cycle))
|
(cycle/prev cycle))
|
||||||
(irc/message
|
(irc/message
|
||||||
(string/format "Current IRC channel: %s" (cycle/current cycle))))))
|
(string-format "Current IRC channel: %s" (cycle/current cycle))))))
|
||||||
|
|
||||||
(add-hook 'erc-mode-hook (disable auto-fill-mode))
|
(add-hook 'erc-mode-hook (macros-disable auto-fill-mode))
|
||||||
(add-hook 'erc-mode-hook (disable company-mode))
|
(add-hook 'erc-mode-hook (macros-disable company-mode))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Keybindings
|
;; Keybindings
|
||||||
|
|
|
@ -50,7 +50,7 @@ Values for F include:
|
||||||
- workspace
|
- workspace
|
||||||
- x11"
|
- x11"
|
||||||
(prelude-assert (alist/has-key? f kbd/prefixes))
|
(prelude-assert (alist/has-key? f kbd/prefixes))
|
||||||
(string/format
|
(string-format
|
||||||
"%s-%s"
|
"%s-%s"
|
||||||
(alist/get f kbd/prefixes)
|
(alist/get f kbd/prefixes)
|
||||||
x))
|
x))
|
||||||
|
@ -69,14 +69,14 @@ Values for F include:
|
||||||
(interactive)
|
(interactive)
|
||||||
(message "[kbd] Awaiting keypress...")
|
(message "[kbd] Awaiting keypress...")
|
||||||
(let ((key (read-key)))
|
(let ((key (read-key)))
|
||||||
(clipboard/copy (string/format "%s" key))
|
(clipboard/copy (string-format "%s" key))
|
||||||
(message (string/format "[kbd] \"%s\" copied!" key))))
|
(message (string-format "[kbd] \"%s\" copied!" key))))
|
||||||
|
|
||||||
(defun kbd/print-keycode ()
|
(defun kbd/print-keycode ()
|
||||||
"Prints the pressed keybinding."
|
"Prints the pressed keybinding."
|
||||||
(interactive)
|
(interactive)
|
||||||
(message "[kbd] Awaiting keypress...")
|
(message "[kbd] Awaiting keypress...")
|
||||||
(message (string/format "[kbd] keycode: %s" (read-key))))
|
(message (string-format "[kbd] keycode: %s" (read-key))))
|
||||||
|
|
||||||
(provide 'kbd)
|
(provide 'kbd)
|
||||||
;;; kbd.el ends here
|
;;; kbd.el ends here
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
(defun keyboard/message (x)
|
(defun keyboard/message (x)
|
||||||
"Message X in a structured way."
|
"Message X in a structured way."
|
||||||
(message (string/format "[keyboard.el] %s" x)))
|
(message (string-format "[keyboard.el] %s" x)))
|
||||||
|
|
||||||
(cl-defun keyboard/set-key-repeat (&key
|
(cl-defun keyboard/set-key-repeat (&key
|
||||||
(rate keyboard/repeat-rate)
|
(rate keyboard/repeat-rate)
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
"Use xset to set the key-repeat RATE and DELAY."
|
"Use xset to set the key-repeat RATE and DELAY."
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "keyboard/set-key-repeat"
|
:name "keyboard/set-key-repeat"
|
||||||
:command (string/format "xset r rate %s %s" delay rate)))
|
:command (string-format "xset r rate %s %s" delay rate)))
|
||||||
|
|
||||||
;; NOTE: Settings like this are machine-dependent. For instance I only need to
|
;; NOTE: Settings like this are machine-dependent. For instance I only need to
|
||||||
;; do this on my laptop and other devices where I don't have access to my split
|
;; do this on my laptop and other devices where I don't have access to my split
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
(setq keyboard/repeat-rate (number/inc keyboard/repeat-rate))
|
(setq keyboard/repeat-rate (number/inc keyboard/repeat-rate))
|
||||||
(keyboard/set-key-repeat :rate keyboard/repeat-rate)
|
(keyboard/set-key-repeat :rate keyboard/repeat-rate)
|
||||||
(keyboard/message
|
(keyboard/message
|
||||||
(string/format "Rate: %s" keyboard/repeat-rate)))
|
(string-format "Rate: %s" keyboard/repeat-rate)))
|
||||||
|
|
||||||
(defun keyboard/dec-repeat-rate ()
|
(defun keyboard/dec-repeat-rate ()
|
||||||
"Decrement `keyboard/repeat-rate'."
|
"Decrement `keyboard/repeat-rate'."
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
(setq keyboard/repeat-rate (number/dec keyboard/repeat-rate))
|
(setq keyboard/repeat-rate (number/dec keyboard/repeat-rate))
|
||||||
(keyboard/set-key-repeat :rate keyboard/repeat-rate)
|
(keyboard/set-key-repeat :rate keyboard/repeat-rate)
|
||||||
(keyboard/message
|
(keyboard/message
|
||||||
(string/format "Rate: %s" keyboard/repeat-rate)))
|
(string-format "Rate: %s" keyboard/repeat-rate)))
|
||||||
|
|
||||||
(defun keyboard/inc-repeat-delay ()
|
(defun keyboard/inc-repeat-delay ()
|
||||||
"Increment `keyboard/repeat-delay'."
|
"Increment `keyboard/repeat-delay'."
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
(setq keyboard/repeat-delay (number/inc keyboard/repeat-delay))
|
(setq keyboard/repeat-delay (number/inc keyboard/repeat-delay))
|
||||||
(keyboard/set-key-repeat :delay keyboard/repeat-delay)
|
(keyboard/set-key-repeat :delay keyboard/repeat-delay)
|
||||||
(keyboard/message
|
(keyboard/message
|
||||||
(string/format "Delay: %s" keyboard/repeat-delay)))
|
(string-format "Delay: %s" keyboard/repeat-delay)))
|
||||||
|
|
||||||
(defun keyboard/dec-repeat-delay ()
|
(defun keyboard/dec-repeat-delay ()
|
||||||
"Decrement `keyboard/repeat-delay'."
|
"Decrement `keyboard/repeat-delay'."
|
||||||
|
@ -102,13 +102,13 @@
|
||||||
(setq keyboard/repeat-delay (number/dec keyboard/repeat-delay))
|
(setq keyboard/repeat-delay (number/dec keyboard/repeat-delay))
|
||||||
(keyboard/set-key-repeat :delay keyboard/repeat-delay)
|
(keyboard/set-key-repeat :delay keyboard/repeat-delay)
|
||||||
(keyboard/message
|
(keyboard/message
|
||||||
(string/format "Delay: %s" keyboard/repeat-delay)))
|
(string-format "Delay: %s" keyboard/repeat-delay)))
|
||||||
|
|
||||||
(defun keyboard/print-key-repeat ()
|
(defun keyboard/print-key-repeat ()
|
||||||
"Print the currently set values for key repeat."
|
"Print the currently set values for key repeat."
|
||||||
(interactive)
|
(interactive)
|
||||||
(keyboard/message
|
(keyboard/message
|
||||||
(string/format "Rate: %s. Delay: %s"
|
(string-format "Rate: %s. Delay: %s"
|
||||||
keyboard/repeat-rate
|
keyboard/repeat-rate
|
||||||
keyboard/repeat-delay)))
|
keyboard/repeat-delay)))
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
""
|
""
|
||||||
(list/reduce (list/first xs)
|
(list/reduce (list/first xs)
|
||||||
(lambda (x acc)
|
(lambda (x acc)
|
||||||
(string/concat acc joint x))
|
(string-concat acc joint x))
|
||||||
(list/tail xs))))
|
(list/tail xs))))
|
||||||
|
|
||||||
(defun list/length (xs)
|
(defun list/length (xs)
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
;;; macros.el --- Helpful variables for making my ELisp life more enjoyable -*- lexical-binding: t -*-
|
;;; macros.el --- Helpful variables for making my ELisp life more enjoyable -*- lexical-binding: t -*-
|
||||||
;; Authpr: William Carroll <wpcarro@gmail.com>
|
|
||||||
|
;; Author: William Carroll <wpcarro@gmail.com>
|
||||||
|
;; Version: 0.0.1
|
||||||
|
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
|
||||||
|
;; Package-Requires: ((emacs "24"))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;; This file contains helpful variables that I use in my ELisp development.
|
;; This file contains helpful variables that I use in my ELisp development.
|
||||||
|
@ -9,51 +13,44 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Dependencies
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(require 'f)
|
(require 'f)
|
||||||
(require 'string)
|
(require 'string)
|
||||||
(require 'symbol)
|
(require 'symbol)
|
||||||
|
|
||||||
;; TODO: Support `xi' lambda shorthand macro.
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Library
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defmacro enable (mode)
|
(defmacro macros-enable (mode)
|
||||||
"Helper for enabling `MODE'.
|
"Helper for enabling `MODE'.
|
||||||
Useful in `add-hook' calls. Some modes, like `linum-mode' need to be called as
|
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."
|
`(linum-mode 1)', so `(add-hook mode #'linum-mode)' won't work."
|
||||||
`#'(lambda nil (,mode 1)))
|
`#'(lambda nil (,mode 1)))
|
||||||
|
|
||||||
(defmacro disable (mode)
|
(defmacro macros-disable (mode)
|
||||||
"Helper for disabling `MODE'.
|
"Helper for disabling `MODE'.
|
||||||
Useful in `add-hook' calls."
|
Useful in `add-hook' calls."
|
||||||
`#'(lambda nil (,mode -1)))
|
`#'(lambda nil (,mode -1)))
|
||||||
|
|
||||||
(defmacro add-hooks (modes callback)
|
(defmacro macros-add-hook-before-save (mode f)
|
||||||
"Add multiple `MODES' for the `CALLBACK'.
|
|
||||||
Usage: (add-hooks '(one-mode-hook 'two-mode-hook) #'fn)"
|
|
||||||
`(dolist (mode ,modes)
|
|
||||||
(add-hook mode ,callback)))
|
|
||||||
|
|
||||||
(defmacro add-hook-before-save (mode f)
|
|
||||||
"Register a hook, `F', for a mode, `MODE' more conveniently.
|
"Register a hook, `F', for a mode, `MODE' more conveniently.
|
||||||
Usage: (add-hook-before-save 'reason-mode-hook #'refmt-before-save)"
|
Usage: (add-hook-before-save 'reason-mode-hook #'refmt-before-save)"
|
||||||
`(add-hook ,mode
|
`(add-hook ,mode
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(add-hook 'before-save-hook ,f))))
|
(add-hook 'before-save-hook ,f))))
|
||||||
|
|
||||||
;; TODO: Debug.
|
|
||||||
(defmacro macros/ilambda (&rest body)
|
|
||||||
"Surrounds `BODY' with an interactive lambda function."
|
|
||||||
`(lambda ()
|
|
||||||
(interactive)
|
|
||||||
,@body))
|
|
||||||
|
|
||||||
;; TODO: Privatize?
|
;; TODO: Privatize?
|
||||||
(defun namespace ()
|
(defun macros--namespace ()
|
||||||
"Return the namespace for a function based on the filename."
|
"Return the namespace for a function based on the filename."
|
||||||
(->> (buffer-file-name)
|
(->> (buffer-file-name)
|
||||||
f-filename
|
f-filename
|
||||||
f-base))
|
f-base))
|
||||||
|
|
||||||
(defmacro macros/comment (&rest _)
|
(defmacro macros-comment (&rest _)
|
||||||
"Empty comment s-expresion where `BODY' is ignored."
|
"Empty comment s-expresion where `BODY' is ignored."
|
||||||
`nil)
|
`nil)
|
||||||
|
|
||||||
|
@ -64,31 +61,10 @@ Usage: (add-hook-before-save 'reason-mode-hook #'refmt-before-save)"
|
||||||
`(lambda (,sym)
|
`(lambda (,sym)
|
||||||
(->> ,sym ,@forms))))
|
(->> ,sym ,@forms))))
|
||||||
|
|
||||||
;; TOOD: Support this.
|
(defmacro macros-support-file-extension (ext mode)
|
||||||
(cl-defmacro macros/test
|
|
||||||
(&key function
|
|
||||||
test
|
|
||||||
args
|
|
||||||
expect
|
|
||||||
equality)
|
|
||||||
(let* ((namespace (namespace))
|
|
||||||
(test-name (string/->symbol
|
|
||||||
(s-concat namespace
|
|
||||||
"/"
|
|
||||||
"test"
|
|
||||||
"/"
|
|
||||||
(s-chop-prefix
|
|
||||||
(s-concat namespace "/")
|
|
||||||
(symbol/to-string function))))))
|
|
||||||
`(ert-deftest ,test-name ()
|
|
||||||
,test
|
|
||||||
(should (,equality (apply ,function ,args)
|
|
||||||
,expect)))))
|
|
||||||
|
|
||||||
(defmacro macros/support-file-extension (ext mode)
|
|
||||||
"Register MODE to automatically load with files ending with EXT extension.
|
"Register MODE to automatically load with files ending with EXT extension.
|
||||||
Usage: (macros/support-file-extension \"pb\" protobuf-mode)"
|
Usage: (macros-support-file-extension \"pb\" protobuf-mode)"
|
||||||
(let ((extension (string/format "\\.%s\\'" ext)))
|
(let ((extension (string-format "\\.%s\\'" ext)))
|
||||||
`(add-to-list 'auto-mode-alist '(,extension . ,mode))))
|
`(add-to-list 'auto-mode-alist '(,extension . ,mode))))
|
||||||
|
|
||||||
(provide 'macros)
|
(provide 'macros)
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
(defun pulse-audio--message (x)
|
(defun pulse-audio--message (x)
|
||||||
"Output X to *Messages*."
|
"Output X to *Messages*."
|
||||||
(message (string/format "[pulse-audio.el] %s" x)))
|
(message (string-format "[pulse-audio.el] %s" x)))
|
||||||
|
|
||||||
(defun pulse-audio-toggle-mute ()
|
(defun pulse-audio-toggle-mute ()
|
||||||
"Mute the default sink."
|
"Mute the default sink."
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
(interactive)
|
(interactive)
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "pulse-audio-decrease-volume"
|
:name "pulse-audio-decrease-volume"
|
||||||
:command (string/format "pactl set-sink-volume @DEFAULT_SINK@ -%s%%"
|
:command (string-format "pactl set-sink-volume @DEFAULT_SINK@ -%s%%"
|
||||||
pulse-audio--step-size))
|
pulse-audio--step-size))
|
||||||
(pulse-audio--message "Volume decreased."))
|
(pulse-audio--message "Volume decreased."))
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
(interactive)
|
(interactive)
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "pulse-audio-increase-volume"
|
:name "pulse-audio-increase-volume"
|
||||||
:command (string/format "pactl set-sink-volume @DEFAULT_SINK@ +%s%%"
|
:command (string-format "pactl set-sink-volume @DEFAULT_SINK@ +%s%%"
|
||||||
pulse-audio--step-size))
|
pulse-audio--step-size))
|
||||||
(pulse-audio--message "Volume increased."))
|
(pulse-audio--message "Volume increased."))
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ The newest bindings eclipse the oldest."
|
||||||
|
|
||||||
(defun scope/push-new (xs)
|
(defun scope/push-new (xs)
|
||||||
"Push a new, empty scope onto XS."
|
"Push a new, empty scope onto XS."
|
||||||
(struct/update scope
|
(struct-update scope
|
||||||
scopes
|
scopes
|
||||||
(>> (stack/push (alist/new)))
|
(>> (stack/push (alist/new)))
|
||||||
xs))
|
xs))
|
||||||
|
@ -65,7 +65,7 @@ The newest bindings eclipse the oldest."
|
||||||
|
|
||||||
(defun scope/set (k v xs)
|
(defun scope/set (k v xs)
|
||||||
"Set value, V, at key, K, in XS for the current scope."
|
"Set value, V, at key, K, in XS for the current scope."
|
||||||
(struct/update scope
|
(struct-update scope
|
||||||
scopes
|
scopes
|
||||||
(>> (stack/map-top (>> (alist/set k v))))
|
(>> (stack/map-top (>> (alist/set k v))))
|
||||||
xs))
|
xs))
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
(interactive)
|
(interactive)
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "screen-brightness/increase"
|
:name "screen-brightness/increase"
|
||||||
:command (string/format "xbacklight -inc %s" screen-brightness/step-size))
|
:command (string-format "xbacklight -inc %s" screen-brightness/step-size))
|
||||||
(message "[screen-brightness.el] Increased screen brightness."))
|
(message "[screen-brightness.el] Increased screen brightness."))
|
||||||
|
|
||||||
(defun screen-brightness/decrease ()
|
(defun screen-brightness/decrease ()
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
(interactive)
|
(interactive)
|
||||||
(prelude-start-process
|
(prelude-start-process
|
||||||
:name "screen-brightness/decrease"
|
:name "screen-brightness/decrease"
|
||||||
:command (string/format "xbacklight -dec %s" screen-brightness/step-size))
|
:command (string-format "xbacklight -dec %s" screen-brightness/step-size))
|
||||||
(message "[screen-brightness.el] Decreased screen brightness."))
|
(message "[screen-brightness.el] Decreased screen brightness."))
|
||||||
|
|
||||||
(provide 'screen-brightness)
|
(provide 'screen-brightness)
|
||||||
|
|
|
@ -34,7 +34,7 @@ See scrot's man page for more information.")
|
||||||
This currently only works for PNG files because that's what I'm outputting"
|
This currently only works for PNG files because that's what I'm outputting"
|
||||||
(call-process "xclip" nil nil nil
|
(call-process "xclip" nil nil nil
|
||||||
"-selection" "clipboard" "-t" "image/png" path)
|
"-selection" "clipboard" "-t" "image/png" path)
|
||||||
(message (string/format "[scrot.el] Image copied to clipboard!")))
|
(message (string-format "[scrot.el] Image copied to clipboard!")))
|
||||||
|
|
||||||
(defmacro scrot/call (&rest args)
|
(defmacro scrot/call (&rest args)
|
||||||
"Call scrot with ARGS."
|
"Call scrot with ARGS."
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
(defun set/add (x xs)
|
(defun set/add (x xs)
|
||||||
"Add X to set XS."
|
"Add X to set XS."
|
||||||
(struct/update set
|
(struct-update set
|
||||||
xs
|
xs
|
||||||
(lambda (table)
|
(lambda (table)
|
||||||
(let ((table-copy (ht-copy table)))
|
(let ((table-copy (ht-copy table)))
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
;;; ssh.el --- When working remotely -*- lexical-binding: t -*-
|
;;; ssh.el --- When working remotely -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; Author: William Carroll <wpcarro@gmail.com>
|
;; Author: William Carroll <wpcarro@gmail.com>
|
||||||
|
;; Version: 0.0.1
|
||||||
|
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
|
||||||
|
;; Package-Requires: ((emacs "24"))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;; Configuration to make remote work easier.
|
;; Configuration to make remote work easier.
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
;;; stack.el --- Working with stacks in Elisp -*- lexical-binding: t -*-
|
;;; stack.el --- Working with stacks in Elisp -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; Author: William Carroll <wpcarro@gmail.com>
|
;; Author: William Carroll <wpcarro@gmail.com>
|
||||||
|
;; Version: 0.0.1
|
||||||
|
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
|
||||||
|
;; Package-Requires: ((emacs "25.1"))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;; A stack is a LIFO queue.
|
;; A stack is a LIFO queue.
|
||||||
|
@ -46,7 +50,7 @@
|
||||||
|
|
||||||
(defun stack/push (x xs)
|
(defun stack/push (x xs)
|
||||||
"Push `X' on `XS'."
|
"Push `X' on `XS'."
|
||||||
(struct/update stack
|
(struct-update stack
|
||||||
xs
|
xs
|
||||||
(>> (list/cons x))
|
(>> (list/cons x))
|
||||||
xs))
|
xs))
|
||||||
|
@ -57,7 +61,7 @@
|
||||||
"Return the stack, `XS', without the top element.
|
"Return the stack, `XS', without the top element.
|
||||||
Since I cannot figure out a nice way of return tuples in Elisp, if you want to
|
Since I cannot figure out a nice way of return tuples in Elisp, if you want to
|
||||||
look at the first element, use `stack/peek' before running `stack/pop'."
|
look at the first element, use `stack/peek' before running `stack/pop'."
|
||||||
(struct/update stack
|
(struct-update stack
|
||||||
xs
|
xs
|
||||||
(>> list/tail)
|
(>> list/tail)
|
||||||
xs))
|
xs))
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
;; string.el --- Library for working with strings -*- lexical-binding: t -*-
|
;; string.el --- Library for working with strings -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; Author: William Carroll <wpcarro@gmail.com>
|
;; Author: William Carroll <wpcarro@gmail.com>
|
||||||
|
;; Version: 0.0.1
|
||||||
|
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
|
||||||
|
;; Package-Requires: ((emacs "24"))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;; Library for working with string.
|
;; Library for working with string.
|
||||||
|
@ -19,56 +23,53 @@
|
||||||
;; Library
|
;; Library
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defconst string/test? t
|
(defun string-contains? (c x)
|
||||||
"When t, run the tests.")
|
|
||||||
|
|
||||||
(defun string/contains? (c x)
|
|
||||||
"Return t if X is in C."
|
"Return t if X is in C."
|
||||||
(s-contains? c x))
|
(s-contains? c x))
|
||||||
|
|
||||||
(defun string/hookify (x)
|
(defun string-hookify (x)
|
||||||
"Append \"-hook\" to X."
|
"Append \"-hook\" to X."
|
||||||
(s-append "-hook" x))
|
(s-append "-hook" x))
|
||||||
|
|
||||||
(defun string/split (y x)
|
(defun string-split (y x)
|
||||||
"Map string X into a list of strings that were separated by Y."
|
"Map string X into a list of strings that were separated by Y."
|
||||||
(s-split y x))
|
(s-split y x))
|
||||||
|
|
||||||
(defun string/ensure-hookified (x)
|
(defun string-ensure-hookified (x)
|
||||||
"Ensure that X has \"-hook\" appended to it."
|
"Ensure that X has \"-hook\" appended to it."
|
||||||
(if (s-ends-with? "-hook" x)
|
(if (s-ends-with? "-hook" x)
|
||||||
x
|
x
|
||||||
(string/hookify x)))
|
(string-hookify x)))
|
||||||
|
|
||||||
(defun string/format (x &rest args)
|
(defun string-format (x &rest args)
|
||||||
"Format template string X with ARGS."
|
"Format template string X with ARGS."
|
||||||
(apply #'format (cons x args)))
|
(apply #'format (cons x args)))
|
||||||
|
|
||||||
(defun string/concat (&rest strings)
|
(defun string-concat (&rest strings)
|
||||||
"Joins `STRINGS' into onto string."
|
"Joins `STRINGS' into onto string."
|
||||||
(apply #'s-concat strings))
|
(apply #'s-concat strings))
|
||||||
|
|
||||||
(defun string/->symbol (string)
|
(defun string-->symbol (string)
|
||||||
"Maps `STRING' to a symbol."
|
"Maps `STRING' to a symbol."
|
||||||
(intern string))
|
(intern string))
|
||||||
|
|
||||||
(defun string/<-symbol (symbol)
|
(defun string-<-symbol (symbol)
|
||||||
"Maps `SYMBOL' into a string."
|
"Maps `SYMBOL' into a string."
|
||||||
(symbol-name symbol))
|
(symbol-name symbol))
|
||||||
|
|
||||||
(defun string/prepend (prefix x)
|
(defun string-prepend (prefix x)
|
||||||
"Prepend `PREFIX' onto `X'."
|
"Prepend `PREFIX' onto `X'."
|
||||||
(s-concat prefix x))
|
(s-concat prefix x))
|
||||||
|
|
||||||
(defun string/append (postfix x)
|
(defun string-append (postfix x)
|
||||||
"Appen `POSTFIX' onto `X'."
|
"Appen `POSTFIX' onto `X'."
|
||||||
(s-concat x postfix))
|
(s-concat x postfix))
|
||||||
|
|
||||||
(defun string/surround (s x)
|
(defun string-surround (s x)
|
||||||
"Surrounds `X' one each side with `S'."
|
"Surrounds `X' one each side with `S'."
|
||||||
(->> x
|
(->> x
|
||||||
(string/prepend s)
|
(string-prepend s)
|
||||||
(string/append s)))
|
(string-append s)))
|
||||||
|
|
||||||
;; TODO: Define a macro for defining a function and a test.
|
;; TODO: Define a macro for defining a function and a test.
|
||||||
|
|
||||||
|
@ -76,25 +77,25 @@
|
||||||
;; Casing
|
;; Casing
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defun string/caps->kebab (x)
|
(defun string-caps->kebab (x)
|
||||||
"Change the casing of `X' from CAP_CASE to kebab-case."
|
"Change the casing of `X' from CAP_CASE to kebab-case."
|
||||||
(->> x
|
(->> x
|
||||||
s-downcase
|
s-downcase
|
||||||
(s-replace "_" "-")))
|
(s-replace "_" "-")))
|
||||||
|
|
||||||
(defun string/kebab->caps (x)
|
(defun string-kebab->caps (x)
|
||||||
"Change the casing of X from CAP_CASE to kebab-case."
|
"Change the casing of X from CAP_CASE to kebab-case."
|
||||||
(->> x
|
(->> x
|
||||||
s-upcase
|
s-upcase
|
||||||
(s-replace "-" "_")))
|
(s-replace "-" "_")))
|
||||||
|
|
||||||
(defun string/lower->caps (x)
|
(defun string-lower->caps (x)
|
||||||
"Change the casing of X from lowercase to CAPS_CASE."
|
"Change the casing of X from lowercase to CAPS_CASE."
|
||||||
(->> x
|
(->> x
|
||||||
s-upcase
|
s-upcase
|
||||||
(s-replace " " "_")))
|
(s-replace " " "_")))
|
||||||
|
|
||||||
(defun string/lower->kebab (x)
|
(defun string-lower->kebab (x)
|
||||||
"Change the casing of `X' from lowercase to kebab-case."
|
"Change the casing of `X' from lowercase to kebab-case."
|
||||||
(s-replace " " "-" x))
|
(s-replace " " "-" x))
|
||||||
|
|
||||||
|
@ -102,27 +103,9 @@
|
||||||
;; Predicates
|
;; Predicates
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defun string/instance? (x)
|
(defun string-instance? (x)
|
||||||
"Return t if X is a string."
|
"Return t if X is a string."
|
||||||
(stringp x))
|
(stringp x))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; Tests
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;; (when string/test?
|
|
||||||
;; (prelude-assert
|
|
||||||
;; (string=
|
|
||||||
;; (string/surround "-*-" "surround")
|
|
||||||
;; "-*-surround-*-"))
|
|
||||||
;; (prelude-assert
|
|
||||||
;; (string=
|
|
||||||
;; (string/caps->kebab "CAPS_CASE_STRING")
|
|
||||||
;; "caps-case-string"))
|
|
||||||
;; (prelude-assert
|
|
||||||
;; (string=
|
|
||||||
;; (string/kebab->caps "kebab-case-string")
|
|
||||||
;; "KEBAB_CASE_STRING")))
|
|
||||||
|
|
||||||
(provide 'string)
|
(provide 'string)
|
||||||
;;; string.el ends here
|
;;; string.el ends here
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
;;; struct.el --- Helpers for working with structs -*- lexical-binding: t -*-
|
;;; struct.el --- Helpers for working with structs -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; Author: William Carroll <wpcarro@gmail.com>
|
;; Author: William Carroll <wpcarro@gmail.com>
|
||||||
|
;; Version: 0.0.1
|
||||||
|
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
|
||||||
|
;; Package-Requires: ((emacs "24.3"))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;; Provides new macros for working with structs. Also provides adapter
|
;; Provides new macros for working with structs. Also provides adapter
|
||||||
|
@ -10,12 +14,6 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; Wish list
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;; - TODO: Replace `symbol-name' and `intern' calls with isomorphism.
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Dependencies
|
;; Dependencies
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
@ -27,44 +25,44 @@
|
||||||
;; Library
|
;; Library
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defvar struct/enable-tests? t
|
(defvar struct--enable-tests? t
|
||||||
"When t, run the test suite defined herein.")
|
"When t, run the test suite defined herein.")
|
||||||
|
|
||||||
(defmacro struct/update (type field f xs)
|
(defmacro struct-update (type field f xs)
|
||||||
"Apply F to FIELD in XS, which is a struct of TYPE.
|
"Apply F to FIELD in XS, which is a struct of TYPE.
|
||||||
This is immutable."
|
This is immutable."
|
||||||
(let ((copier (->> type
|
(let ((copier (->> type
|
||||||
symbol-name
|
symbol-name
|
||||||
(string/prepend "copy-")
|
(string-prepend "copy-")
|
||||||
intern))
|
intern))
|
||||||
(accessor (->> field
|
(accessor (->> field
|
||||||
symbol-name
|
symbol-name
|
||||||
(string/prepend (string/concat (symbol-name type) "-"))
|
(string-prepend (string-concat (symbol-name type) "-"))
|
||||||
intern)))
|
intern)))
|
||||||
`(let ((copy (,copier ,xs)))
|
`(let ((copy (,copier ,xs)))
|
||||||
(setf (,accessor copy) (funcall ,f (,accessor copy)))
|
(setf (,accessor copy) (funcall ,f (,accessor copy)))
|
||||||
copy)))
|
copy)))
|
||||||
|
|
||||||
(defmacro struct/set (type field x xs)
|
(defmacro struct-set (type field x xs)
|
||||||
"Immutably set FIELD in XS (struct TYPE) to X."
|
"Immutably set FIELD in XS (struct TYPE) to X."
|
||||||
(let ((copier (->> type
|
(let ((copier (->> type
|
||||||
symbol-name
|
symbol-name
|
||||||
(string/prepend "copy-")
|
(string-prepend "copy-")
|
||||||
intern))
|
intern))
|
||||||
(accessor (->> field
|
(accessor (->> field
|
||||||
symbol-name
|
symbol-name
|
||||||
(string/prepend (string/concat (symbol-name type) "-"))
|
(string-prepend (string-concat (symbol-name type) "-"))
|
||||||
intern)))
|
intern)))
|
||||||
`(let ((copy (,copier ,xs)))
|
`(let ((copy (,copier ,xs)))
|
||||||
(setf (,accessor copy) ,x)
|
(setf (,accessor copy) ,x)
|
||||||
copy)))
|
copy)))
|
||||||
|
|
||||||
(defmacro struct/set! (type field x xs)
|
(defmacro struct-set! (type field x xs)
|
||||||
"Set FIELD in XS (struct TYPE) to X mutably.
|
"Set FIELD in XS (struct TYPE) to X mutably.
|
||||||
This is an adapter interface to `setf'."
|
This is an adapter interface to `setf'."
|
||||||
(let ((accessor (->> field
|
(let ((accessor (->> field
|
||||||
symbol-name
|
symbol-name
|
||||||
(string/prepend (string/concat (symbol-name type) "-"))
|
(string-prepend (string-concat (symbol-name type) "-"))
|
||||||
intern)))
|
intern)))
|
||||||
`(progn
|
`(progn
|
||||||
(setf (,accessor ,xs) ,x)
|
(setf (,accessor ,xs) ,x)
|
||||||
|
@ -74,14 +72,14 @@ This is an adapter interface to `setf'."
|
||||||
;; Tests
|
;; Tests
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(when struct/enable-tests?
|
(when struct--enable-tests?
|
||||||
(cl-defstruct dummy name age)
|
(cl-defstruct dummy name age)
|
||||||
(defvar test-dummy (make-dummy :name "Roofus" :age 19))
|
(defvar struct--test-dummy (make-dummy :name "Roofus" :age 19))
|
||||||
(struct/set! dummy name "Doofus" test-dummy)
|
(struct-set! dummy name "Doofus" struct--test-dummy)
|
||||||
(prelude-assert (string= "Doofus" (dummy-name test-dummy)))
|
(prelude-assert (string= "Doofus" (dummy-name struct--test-dummy)))
|
||||||
(let ((result (struct/set dummy name "Shoofus" test-dummy)))
|
(let ((result (struct-set dummy name "Shoofus" struct--test-dummy)))
|
||||||
;; Test the immutability of `struct/set'
|
;; Test the immutability of `struct-set'
|
||||||
(prelude-assert (string= "Doofus" (dummy-name test-dummy)))
|
(prelude-assert (string= "Doofus" (dummy-name struct--test-dummy)))
|
||||||
(prelude-assert (string= "Shoofus" (dummy-name result)))))
|
(prelude-assert (string= "Shoofus" (dummy-name result)))))
|
||||||
|
|
||||||
(provide 'struct)
|
(provide 'struct)
|
||||||
|
|
|
@ -1,17 +1,27 @@
|
||||||
;; symbol.el --- Library for working with symbols. -*- lexical-binding: t -*-
|
;; symbol.el --- Library for working with symbols. -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; Author: William Carroll <wpcarro@gmail.com>
|
;; Author: William Carroll <wpcarro@gmail.com>
|
||||||
|
;; Version: 0.0.1
|
||||||
|
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
|
||||||
|
;; Package-Requires: ((emacs "24"))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;; Library for working with symbols.
|
;; Library for working with symbols.
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;; TODO: Why is ivy mode map everywhere?
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Dependencies
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(require 'string)
|
(require 'string)
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Library
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;; Symbols
|
;; Symbols
|
||||||
(defun symbol/as-string (callback x)
|
(defun symbol-as-string (callback x)
|
||||||
"Treat the symbol, X, as a string while applying CALLBACK to it.
|
"Treat the symbol, X, as a string while applying CALLBACK to it.
|
||||||
Coerce back to a symbol on the way out."
|
Coerce back to a symbol on the way out."
|
||||||
(->> x
|
(->> x
|
||||||
|
@ -19,23 +29,19 @@ Coerce back to a symbol on the way out."
|
||||||
callback
|
callback
|
||||||
#'intern))
|
#'intern))
|
||||||
|
|
||||||
(defun symbol/to-string (x)
|
(defun symbol-to-string (x)
|
||||||
"Map `X' into a string."
|
"Map `X' into a string."
|
||||||
(string/<-symbol x))
|
(string-<-symbol x))
|
||||||
|
|
||||||
(defun symbol/hookify (x)
|
(defun symbol-hookify (x)
|
||||||
"Append \"-hook\" to X when X is a symbol."
|
"Append \"-hook\" to X when X is a symbol."
|
||||||
(symbol/as-string #'string/hookify x))
|
(symbol-as-string #'string-hookify x))
|
||||||
|
|
||||||
(defun symbol/ensure-hookified (x)
|
(defun symbol-ensure-hookified (x)
|
||||||
"Ensure that X has \"-hook\" appended to it when X is a symbol."
|
"Ensure that X has \"-hook\" appended to it when X is a symbol."
|
||||||
(symbol/as-string #'string/ensure-hookified x))
|
(symbol-as-string #'string-ensure-hookified x))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
(defun symbol-instance? (x)
|
||||||
;; Predicates
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(defun symbol/instance? (x)
|
|
||||||
"Return t if X is a symbol."
|
"Return t if X is a symbol."
|
||||||
(symbolp x))
|
(symbolp x))
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
;; Author: William Carroll <wpcarro@gmail.com>
|
;; Author: William Carroll <wpcarro@gmail.com>
|
||||||
;; Version: 0.0.1
|
;; Version: 0.0.1
|
||||||
|
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
|
||||||
;; Package-Requires: ((emacs "25.1"))
|
;; Package-Requires: ((emacs "25.1"))
|
||||||
;; Homepage: https://user.git.corp.google.com/wpcarro/briefcase
|
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
|
|
||||||
(defun window-manager--alert (x)
|
(defun window-manager--alert (x)
|
||||||
"Message X with a structured format."
|
"Message X with a structured format."
|
||||||
(alert (string/concat "[exwm] " x)))
|
(alert (string-concat "[exwm] " x)))
|
||||||
|
|
||||||
;; Use Emacs as my primary window manager.
|
;; Use Emacs as my primary window manager.
|
||||||
(use-package exwm
|
(use-package exwm
|
||||||
|
@ -274,10 +274,10 @@ Ivy is used to capture the user's input."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((name->cmd `(("Lock" . ,window-manager--xsecurelock)
|
(let* ((name->cmd `(("Lock" . ,window-manager--xsecurelock)
|
||||||
("Logout" . "sudo systemctl stop lightdm")
|
("Logout" . "sudo systemctl stop lightdm")
|
||||||
("Suspend" . ,(string/concat
|
("Suspend" . ,(string-concat
|
||||||
window-manager--xsecurelock
|
window-manager--xsecurelock
|
||||||
" && systemctl suspend"))
|
" && systemctl suspend"))
|
||||||
("Hibernate" . ,(string/concat
|
("Hibernate" . ,(string-concat
|
||||||
window-manager--xsecurelock
|
window-manager--xsecurelock
|
||||||
" && systemctl hibernate"))
|
" && systemctl hibernate"))
|
||||||
("Reboot" . "systemctl reboot")
|
("Reboot" . "systemctl reboot")
|
||||||
|
@ -313,7 +313,7 @@ Currently using super- as the prefix for switching workspaces."
|
||||||
(window-manager--named-workspace-label workspace)
|
(window-manager--named-workspace-label workspace)
|
||||||
window-manager--named-workspaces))
|
window-manager--named-workspaces))
|
||||||
(window-manager--alert
|
(window-manager--alert
|
||||||
(string/format "Switched to: %s"
|
(string-format "Switched to: %s"
|
||||||
(window-manager--named-workspace-label workspace))))
|
(window-manager--named-workspace-label workspace))))
|
||||||
|
|
||||||
(defun window-manager--switch (label)
|
(defun window-manager--switch (label)
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
nil)))
|
nil)))
|
||||||
|
|
||||||
;; TODO: Find a way to incorporate these into function documentation.
|
;; TODO: Find a way to incorporate these into function documentation.
|
||||||
(macros/comment
|
(macros-comment
|
||||||
(window-find "*scratch*"))
|
(window-find "*scratch*"))
|
||||||
|
|
||||||
(defun window-delete (window)
|
(defun window-delete (window)
|
||||||
|
|
|
@ -11,9 +11,15 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;; TODO: Ensure sorting in dired is by type.
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Dependencies
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;; TODO: Rename wpc-dired.el to file-management.el
|
(require 'macros)
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Configuration
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(progn
|
(progn
|
||||||
(require 'dired)
|
(require 'dired)
|
||||||
|
@ -32,7 +38,7 @@
|
||||||
"f" #'project-find-file
|
"f" #'project-find-file
|
||||||
"-" (lambda () (interactive) (find-alternate-file "..")))
|
"-" (lambda () (interactive) (find-alternate-file "..")))
|
||||||
(general-add-hook 'dired-mode-hook
|
(general-add-hook 'dired-mode-hook
|
||||||
(list (enable dired-hide-details-mode)
|
(list (macros-enable dired-hide-details-mode)
|
||||||
#'auto-revert-mode)))
|
#'auto-revert-mode)))
|
||||||
|
|
||||||
(progn
|
(progn
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(require 'prelude)
|
(require 'prelude)
|
||||||
|
(require 'macros)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Configuration
|
;; Configuration
|
||||||
|
@ -40,7 +41,7 @@
|
||||||
(add-hook 'go-mode-hook (lambda ()
|
(add-hook 'go-mode-hook (lambda ()
|
||||||
(set (make-local-variable 'compile-command)
|
(set (make-local-variable 'compile-command)
|
||||||
"go build -v")))
|
"go build -v")))
|
||||||
(add-hook-before-save 'go-mode-hook #'gofmt-before-save))
|
(macros-add-hook-before-save 'go-mode-hook #'gofmt-before-save))
|
||||||
|
|
||||||
(provide 'wpc-golang)
|
(provide 'wpc-golang)
|
||||||
;;; wpc-golang.el ends here
|
;;; wpc-golang.el ends here
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(require 'f)
|
(require 'f)
|
||||||
|
(require 'macros)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Configuration
|
;; Configuration
|
||||||
|
@ -24,15 +25,15 @@
|
||||||
:config
|
:config
|
||||||
(evil-set-initial-state 'org-mode 'normal)
|
(evil-set-initial-state 'org-mode 'normal)
|
||||||
(general-add-hook 'org-mode-hook
|
(general-add-hook 'org-mode-hook
|
||||||
(list (disable linum-mode)
|
(list (macros-disable linum-mode)
|
||||||
(disable company-mode)))
|
(macros-disable company-mode)))
|
||||||
(setq org-startup-folded nil)
|
(setq org-startup-folded nil)
|
||||||
(setq org-todo-keywords '((sequence "TODO" "BLOCKED" "DONE")))
|
(setq org-todo-keywords '((sequence "TODO" "BLOCKED" "DONE")))
|
||||||
(general-unbind 'normal org-mode-map "M-h" "M-j" "M-k" "M-l"))
|
(general-unbind 'normal org-mode-map "M-h" "M-j" "M-k" "M-l"))
|
||||||
|
|
||||||
(use-package org-bullets
|
(use-package org-bullets
|
||||||
:config
|
:config
|
||||||
(general-add-hook 'org-mode-hook (enable org-bullets-mode)))
|
(general-add-hook 'org-mode-hook (macros-enable org-bullets-mode)))
|
||||||
|
|
||||||
(provide 'wpc-org)
|
(provide 'wpc-org)
|
||||||
;;; wpc-org.el ends here
|
;;; wpc-org.el ends here
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
;; TODO: Notice that the .pl extension conflicts with Perl files. This may
|
;; TODO: Notice that the .pl extension conflicts with Perl files. This may
|
||||||
;; become a problem should I start working with Perl.
|
;; become a problem should I start working with Perl.
|
||||||
(macros/support-file-extension "pl" prolog-mode)
|
(macros-support-file-extension "pl" prolog-mode)
|
||||||
|
|
||||||
(provide 'wpc-prolog)
|
(provide 'wpc-prolog)
|
||||||
;;; wpc-prolog.el ends here
|
;;; wpc-prolog.el ends here
|
||||||
|
|
|
@ -69,13 +69,6 @@
|
||||||
;; disable toolbar
|
;; disable toolbar
|
||||||
(tool-bar-mode -1)
|
(tool-bar-mode -1)
|
||||||
|
|
||||||
;; TODO: Re-enable `linum-mode' when I figure out why the theming is so ugly.
|
|
||||||
;; enable line numbers
|
|
||||||
;; (general-add-hook '(prog-mode-hook
|
|
||||||
;; text-mode-hook
|
|
||||||
;; conf-mode-hook)
|
|
||||||
;; (enable linum-mode))
|
|
||||||
|
|
||||||
;; set default buffer for Emacs
|
;; set default buffer for Emacs
|
||||||
(setq initial-buffer-choice constants/current-project)
|
(setq initial-buffer-choice constants/current-project)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue