From 852e9df2a075f4db0ef8fb12c3a9f415727120d3 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Fri, 26 May 2023 16:50:49 -0500 Subject: Uh stuff --- emacs.el | 152 ++++++++++++++++++++++++++++----------------------------------- 1 file changed, 68 insertions(+), 84 deletions(-) diff --git a/emacs.el b/emacs.el index 6a2e13b..f6cec48 100644 --- a/emacs.el +++ b/emacs.el @@ -2,7 +2,7 @@ ;; by Case Duckworth ;; Bankruptcy 10: "Annoyance" ;; -;; License: GPLv3+ +;; License: GPLv3 ;;; Commentary: @@ -67,40 +67,6 @@ basically." (mapcar (lambda (ev) (cons t ev)) (listify-key-sequence kv))))) -(defun renz/sort-by-alpha-length (elems) - "Sort ELEMS first alphabetically, then by length." - (sort elems (lambda (c1 c2) - (or (string-version-lessp c1 c2) - (< (length c1) (length c2)))))) - -(defun renz/sort-by-history (elems) - "Sort ELEMS by minibuffer history. -Use `mct-sort-sort-by-alpha-length' if no history is available." - (if-let ((hist (and (not (eq minibuffer-history-variable t)) - (symbol-value minibuffer-history-variable)))) - (minibuffer--sort-by-position hist elems) - (renz/sort-by-alpha-length elems))) - -(defun renz/completion-category () - "Return completion category." - (when-let ((window (active-minibuffer-window))) - (with-current-buffer (window-buffer window) - (completion-metadata-get - (completion-metadata (buffer-substring-no-properties - (minibuffer-prompt-end) - (max (minibuffer-prompt-end) (point))) - minibuffer-completion-table - minibuffer-completion-predicate) - 'category)))) - -(defun renz/sort-multi-category (elems) - "Sort ELEMS per completion category." - (pcase (renz/completion-category) - ('nil elems) ; no sorting - ('kill-ring elems) - ('project-file (renz/sort-by-alpha-length elems)) - (_ (renz/sort-by-history elems)))) - (defun reset-faces () (dolist (face '(font-lock-regexp-face font-lock-builtin-face @@ -115,7 +81,6 @@ Use `mct-sort-sort-by-alpha-length' if no history is available." font-lock-number-face font-lock-keyword-face font-lock-set-face - font-lock-warning-face font-lock-punctuation-face font-lock-constant-face font-lock-type-face @@ -125,12 +90,14 @@ Use `mct-sort-sort-by-alpha-length' if no history is available." font-lock-bracket-face)) (face-spec-set face '((t :foreground unspecified :background unspecified)))) - (dolist (face '(font-lock-comment-face - font-lock-doc-face + (dolist (face '(font-lock-doc-face font-lock-string-face)) (face-spec-set face '((t :foreground unspecified :background unspecified - :slant italic))))) + :slant italic)))) + (face-spec-set 'font-lock-comment-face + `((t :foreground ; :inherit doesn't work for some reason?? + ,(face-foreground font-lock-doc-markup-face))))) (defun electric-pair-local-mode-disable () "Disable `electric-pair-mode', locally." @@ -204,8 +171,8 @@ buffer instead." ;; `cycle-spacing' is wildly different in 29.1 over 28. "Negate N argument on `cycle-spacing'. That is, with a positive N, deletes newlines as well, leaving -N -spaces. If N is negative, it will not delete newlines and leave -N spaces." +spaces. If N is negative, it will not delete newlines and leave N +spaces." (interactive "*p") (cycle-spacing (- n))) @@ -278,6 +245,10 @@ N spaces." (defun call-with-region-or-buffer (fn &rest _r) "Call function FN with current region or buffer. Good to use for :around advice." + ;; This `interactive' form is needed to override the advised function's form, + ;; to avoid errors when the region isn't active. This means that FN must take + ;; 2 arguments, the beginning and the end of the region to act on. + (interactive) (if (region-active-p) (funcall fn (region-beginning) (region-end)) (funcall fn (point-min) (point-max)))) @@ -430,7 +401,7 @@ If REQUIRE is a non-nil value, require the package after adding it." :underline nil))) (setopt jabber-auto-reconnect t) -(setopt jabber-last-read-marker "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~") +(setopt jabber-last-read-marker " ") (setopt jabber-muc-decorate-presence-patterns '(("\\( enters the room ([^)]+)\\| has left the chatroom\\)$" . nil) ("Mode #.*" . jabber-muc-presence-dim) @@ -454,7 +425,6 @@ disconnect first." (interactive "P") (when arg (jabber-disconnect)) (jabber-connect-all)) -(keymap-global-set "C-c j c" #'jabber-connect-all*) (keymap-global-set "C-c C-SPC" #'jabber-activity-switch-to) (with-eval-after-load 'jabber @@ -464,6 +434,7 @@ disconnect first." jabber-global-keymap) (keymap-global-set "C-x C-j" #'dired-jump)) (keymap-global-set "C-x C-j" #'dired-jump) +(keymap-set jabber-global-keymap "c" #'jabber-connect-all*) (with-eval-after-load 'dired (keymap-set dired-mode-map "C-j" #'dired-up-directory)) @@ -666,7 +637,7 @@ HOOK defaults to MODE-hook, and is used to trigger the hiding." (setopt use-file-dialog nil) (setopt use-short-answers t) (require 'savehist) -(setopt history-length 1024) +(setopt history-length t) (setopt history-delete-duplicates t) (setopt savehist-save-minibuffer-history t) (setopt savehist-autosave-interval 30) @@ -832,8 +803,6 @@ HOOK defaults to MODE-hook, and is used to trigger the hiding." "Timer running `persist-settings-hook'.") (add-hook 'persist-settings-hook #'save-place-kill-emacs-hook) -(add-hook 'persist-settings-hook #'recentf-save-list) -(add-hook 'persist-settings-hook #'savehist-autosave) (add-hook 'persist-settings-hook #'bookmark-exit-hook-internal) (with-eval-after-load 'em-hist (add-hook 'persist-settings-hook #'eshell-save-some-history)) @@ -867,6 +836,18 @@ HOOK defaults to MODE-hook, and is used to trigger the hiding." (setopt org-log-into-drawer t) (setopt org-clock-into-drawer t) (setopt org-special-ctrl-a/e t) +(setopt org-special-ctrl-k t) +(setopt org-archive-mark-done t) +(setopt org-agenda-window-setup 'current-window) +(setopt org-agenda-restore-windows-after-quit t) +(setopt org-agenda-skip-deadline-if-done t) +(setopt org-agenda-skip-scheduled-if-done t) +(setopt org-agenda-inhibit-startup t) +(setopt org-deadline-warning-days 0) +(setopt org-cycle-separator-lines 0) +(setopt org-agenda-span 14) + +(add-hook 'org-agenda-after-show-hook #'org-narrow-to-subtree) (defmacro org-insert-or-surround (character) (let ((c (gensym))) @@ -1201,45 +1182,19 @@ ORG-EXPORT-ARGS are passed to `org-export-to-buffer'." (add-hook 'completion-list-mode-hook #'truncate-lines-mode) (add-hook 'minibuffer-setup-hook #'truncate-lines-mode) -(ensure-package 'prescient nil t) -(setopt completion-styles '(prescient basic)) -(setopt completion-category-overrides - '((file (styles basic partial-completion)))) -(prescient-persist-mode) -(add-hook 'persist-settings-hook #'prescient--save) +(setopt completion-auto-help 'visible) +(setopt completion-auto-select 'second-tab) +(setopt completions-header-formato nil) +;; Up/down when completing in the minibuffer +(keymap-set minibuffer-local-map "C-p" #'minibuffer-previous-completion) +(keymap-set minibuffer-local-map "C-n" #'minibuffer-next-completion) +;; Up/down when competing in a normal buffer +(keymap-set completion-in-region-mode-map "C-p" + #'minibuffer-previous-completion) +(keymap-set completion-in-region-mode-map "C-n" #'minibuffer-next-completion) +(keymap-set completion-in-region-mode-map "RET" #'minibuffer-choose-completion) -(define-minor-mode good-completions-mode - "A mode for completing good." - :lighter "" - :global t - (setq completion-auto-help (when good-completions-mode 'always)) - (setq completion-auto-select (when good-completions-mode 'second-tab)) - (setq completions-format (if good-completions-mode 'one-column 'horizontal)) - (setq completions-header-format nil) - (setq completions-max-height 16) - (cond - (good-completions-mode - ;; Turn off other completion frameworks - (icomplete-mode -1) - (icomplete-vertical-mode -1) - (fido-mode -1) - (fido-vertical-mode -1) - ;; Up/down when completing in the minibuffer - (keymap-set minibuffer-local-map "C-p" - #'minibuffer-previous-completion) - (keymap-set minibuffer-local-map "C-n" - #'minibuffer-next-completion) - ;; Up/down when competing in a normal buffer - (keymap-set completion-in-region-mode-map "C-p" - #'minibuffer-previous-completion) - (keymap-set completion-in-region-mode-map "C-n" - #'minibuffer-next-completion) - (keymap-set completion-in-region-mode-map "RET" - #'minibuffer-choose-completion) - (setq completion-in-region-function #'completion--in-region)) - (t))) - -(good-completions-mode) +;;; Other stuff (comment "Unnecessary after being defined." (ensure-package 'wiki-abbrev t t) @@ -1322,7 +1277,36 @@ ORG-EXPORT-ARGS are passed to `org-export-to-buffer'." (ensure-package 'pulse-location t t) (pulse-location-mode) (hide-minor 'pulse-location-mode) +(setopt pulse-flag t) (define-advice eval-region (:around (orig start end &rest args) pulse) (apply orig start end args) (pulse-momentary-highlight-region start end)) +(put 'list-timers 'disabled nil) + +(defun string-intersperse (strings delim) + "Intersperse STRINGS with DELIM and return the concatenated result." + (cl-loop for string in strings + concat (concat delim string) into acc + finally return (substring acc (length delim)))) + +(add-to-list 'inhibit-message-regexps + (string-intersperse (map 'list #'expand-file-name + (list recentf-save-file + save-place-file)) + "\\|")) + +(add-to-list 'set-message-functions 'inhibit-message) + +(ensure-package 'web-mode) +(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode)) + +(add-hook 'help-fns-describe-function-functions + #'shortdoc-help-fns-examples-function) -- cgit 1.4.1-21-gabe81