diff --git a/init.example.el b/init.example.el index cb323c29d..20f426af7 100644 --- a/init.example.el +++ b/init.example.el @@ -63,6 +63,7 @@ electric-indent ; smarter, keyword-based electric-indent eshell ; a consistent, cross-platform shell (WIP) gist ; interacting with github gists + impatient-mode ; show off code over HTTP ;macos ; MacOS-specific commands neotree ; a project drawer, like NERDTree for vim password-store ; password manager for nerds diff --git a/modules/private/hlissner/+bindings.el b/modules/private/hlissner/+bindings.el index 2faf5e37b..9a8896f52 100644 --- a/modules/private/hlissner/+bindings.el +++ b/modules/private/hlissner/+bindings.el @@ -281,7 +281,7 @@ :desc "Fullscreen" :n "f" #'doom/toggle-fullscreen :desc "Indent guides" :n "i" #'highlight-indentation-mode :desc "Indent guides (column)" :n "I" #'highlight-indentation-current-column-mode - :desc "Impatient mode" :n "h" #'+present/impatient-mode + :desc "Impatient mode" :n "h" #'+impatient-mode/toggle :desc "Big mode" :n "b" #'doom-big-font-mode :desc "Evil goggles" :n "g" #'+evil-goggles/toggle)) diff --git a/modules/tools/impatient-mode/autoload.el b/modules/tools/impatient-mode/autoload.el new file mode 100644 index 000000000..7973e0178 --- /dev/null +++ b/modules/tools/impatient-mode/autoload.el @@ -0,0 +1,25 @@ +;;; tools/impatient-mode/autoload.el -*- lexical-binding: t; -*- + +;;;###autoload +(defun +impatient-mode/toggle () + "TODO" + (interactive) + (require 'simple-httpd) + (unless (process-status "httpd") + (httpd-start)) + (impatient-mode) + (if impatient-mode + (add-hook 'kill-buffer-hook '+impatient-mode--cleanup-impatient-mode) + (+impatient-mode--cleanup-impatient-mode))) + +(defun +impatient-mode--cleanup-impatient-mode () + (unless (cl-loop for buf in (doom-buffer-list) + if (buffer-local-value 'impatient-mode buf) + return t) + (httpd-stop) + (cl-loop for buf in (doom-buffer-list) + if (buffer-local-value 'impatient-mode buf) + do + (with-current-buffer buf + (impatient-mode -1))) + (remove-hook 'kill-buffer-hook '+impatient-mode--cleanup-impatient-mode))) diff --git a/modules/tools/impatient-mode/config.el b/modules/tools/impatient-mode/config.el new file mode 100644 index 000000000..da036ac8a --- /dev/null +++ b/modules/tools/impatient-mode/config.el @@ -0,0 +1,6 @@ +;;; tools/impatient-mode/config.el -*- lexical-binding: t; -*- + +;; Show off code as you write it + +(def-package! impatient-mode + :commands impatient-mode) diff --git a/modules/tools/impatient-mode/packages.el b/modules/tools/impatient-mode/packages.el new file mode 100644 index 000000000..002eb1734 --- /dev/null +++ b/modules/tools/impatient-mode/packages.el @@ -0,0 +1,5 @@ +;; -*- no-byte-compile: t; -*- +;;; tools/impatient-mode/packages.el + +(package! htmlize) +(package! impatient-mode)