dev: merge branch 'master' into emenel
This commit is contained in:
commit
0df1e0ca5d
10 changed files with 128 additions and 108 deletions
120
lisp/doom-ui.el
120
lisp/doom-ui.el
|
@ -497,65 +497,69 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original
|
|||
(cons 'custom-theme-directory
|
||||
(delq 'custom-theme-directory custom-theme-load-path)))
|
||||
|
||||
(defun doom-init-fonts-h (&optional _reload)
|
||||
(defun doom-init-fonts-h (&optional reload)
|
||||
"Loads `doom-font', `doom-serif-font', and `doom-variable-pitch-font'."
|
||||
(let ((this-frame (selected-frame)))
|
||||
(dolist (map `((default . ,doom-font)
|
||||
(fixed-pitch . ,doom-font)
|
||||
(fixed-pitch-serif . ,doom-serif-font)
|
||||
(variable-pitch . ,doom-variable-pitch-font)))
|
||||
(condition-case e
|
||||
(when-let* ((face (car map))
|
||||
(font (cdr map)))
|
||||
(dolist (frame (frame-list))
|
||||
(when (display-multi-font-p frame)
|
||||
(set-face-attribute face frame
|
||||
:width 'normal :weight 'normal
|
||||
:slant 'normal :font font)))
|
||||
(custom-push-theme
|
||||
'theme-face face 'user 'set
|
||||
(let* ((base-specs (cadr (assq 'user (get face 'theme-face))))
|
||||
(base-specs (or base-specs '((t nil))))
|
||||
(attrs '(:family :foundry :slant :weight :height :width))
|
||||
(new-specs nil))
|
||||
(dolist (spec base-specs)
|
||||
;; Each SPEC has the form (DISPLAY ATTRIBUTE-PLIST)
|
||||
(let ((display (car spec))
|
||||
(plist (copy-tree (nth 1 spec))))
|
||||
;; Alter only DISPLAY conditions matching this frame.
|
||||
(when (or (memq display '(t default))
|
||||
(face-spec-set-match-display display this-frame))
|
||||
(dolist (attr attrs)
|
||||
(setq plist (plist-put plist attr (face-attribute face attr)))))
|
||||
(push (list display plist) new-specs)))
|
||||
(nreverse new-specs)))
|
||||
(put face 'face-modified nil))
|
||||
('error
|
||||
(ignore-errors (doom--reset-inhibited-vars-h))
|
||||
(if (string-prefix-p "Font not available" (error-message-string e))
|
||||
(signal 'doom-font-error (list (font-get (cdr map) :family)))
|
||||
(signal (car e) (cdr e)))))))
|
||||
(when (fboundp 'set-fontset-font)
|
||||
(let* ((fn (doom-rpartial #'member (font-family-list)))
|
||||
(symbol-font (or doom-symbol-font
|
||||
(cl-find-if fn doom-symbol-fallback-font-families)))
|
||||
(emoji-font (or doom-emoji-font
|
||||
(cl-find-if fn doom-emoji-fallback-font-families))))
|
||||
(when symbol-font
|
||||
(dolist (script '(symbol mathematical))
|
||||
(set-fontset-font t script symbol-font)))
|
||||
(when emoji-font
|
||||
;; DEPRECATED: make unconditional when we drop 27 support
|
||||
(when (version<= "28.1" emacs-version)
|
||||
(set-fontset-font t 'emoji emoji-font))
|
||||
;; some characters in the Emacs symbol script are often covered by emoji
|
||||
;; fonts
|
||||
(set-fontset-font t 'symbol emoji-font nil 'append)))
|
||||
;; Nerd Fonts use these Private Use Areas
|
||||
(dolist (range '((#xe000 . #xf8ff) (#xf0000 . #xfffff)))
|
||||
(set-fontset-font t range "Symbols Nerd Font Mono")))
|
||||
;; Users should inject their own font logic in `after-setting-font-hook'
|
||||
(run-hooks 'after-setting-font-hook))
|
||||
(let ((initialized-frames (unless reload (get 'doom-font 'initialized-frames))))
|
||||
(dolist (frame (if reload (frame-list) (list (selected-frame))))
|
||||
(unless (member frame initialized-frames)
|
||||
(dolist (map `((default . ,doom-font)
|
||||
(fixed-pitch . ,doom-font)
|
||||
(fixed-pitch-serif . ,doom-serif-font)
|
||||
(variable-pitch . ,doom-variable-pitch-font)))
|
||||
(condition-case e
|
||||
(when-let* ((face (car map))
|
||||
(font (cdr map)))
|
||||
(when (display-multi-font-p frame)
|
||||
(set-face-attribute face frame
|
||||
:width 'normal :weight 'normal
|
||||
:slant 'normal :font font))
|
||||
(custom-push-theme
|
||||
'theme-face face 'user 'set
|
||||
(let* ((base-specs (cadr (assq 'user (get face 'theme-face))))
|
||||
(base-specs (or base-specs '((t nil))))
|
||||
(attrs '(:family :foundry :slant :weight :height :width))
|
||||
(new-specs nil))
|
||||
(dolist (spec base-specs)
|
||||
(let ((display (car spec))
|
||||
(plist (copy-tree (nth 1 spec))))
|
||||
(when (or (memq display '(t default))
|
||||
(face-spec-set-match-display display frame))
|
||||
(dolist (attr attrs)
|
||||
(setq plist (plist-put plist attr (face-attribute face attr)))))
|
||||
(push (list display plist) new-specs)))
|
||||
(nreverse new-specs)))
|
||||
(put face 'face-modified nil))
|
||||
('error
|
||||
(ignore-errors (doom--reset-inhibited-vars-h))
|
||||
(if (string-prefix-p "Font not available" (error-message-string e))
|
||||
(signal 'doom-font-error (list (font-get (cdr map) :family)))
|
||||
(signal (car e) (cdr e))))))
|
||||
(put 'doom-font 'initialized-frames
|
||||
(cons frame (cl-delete-if-not #'frame-live-p initialized-frames))))))
|
||||
;; Only do this once per session (or on `doom/reload-fonts'); superfluous
|
||||
;; `set-fontset-font' calls may segfault in some contexts.
|
||||
(when (or reload (not (get 'doom-font 'initialized)))
|
||||
(when (fboundp 'set-fontset-font) ; unavailable in emacs-nox
|
||||
(let* ((fn (doom-rpartial #'member (font-family-list)))
|
||||
(symbol-font (or doom-symbol-font
|
||||
(cl-find-if fn doom-symbol-fallback-font-families)))
|
||||
(emoji-font (or doom-emoji-font
|
||||
(cl-find-if fn doom-emoji-fallback-font-families))))
|
||||
(when symbol-font
|
||||
(dolist (script '(symbol mathematical))
|
||||
(set-fontset-font t script symbol-font)))
|
||||
(when emoji-font
|
||||
;; DEPRECATED: make unconditional when we drop 27 support
|
||||
(when (version<= "28.1" emacs-version)
|
||||
(set-fontset-font t 'emoji emoji-font))
|
||||
;; some characters in the Emacs symbol script are often covered by
|
||||
;; emoji fonts
|
||||
(set-fontset-font t 'symbol emoji-font nil 'append)))
|
||||
;; Nerd Fonts use these Private Use Areas
|
||||
(dolist (range '((#xe000 . #xf8ff) (#xf0000 . #xfffff)))
|
||||
(set-fontset-font t range "Symbols Nerd Font Mono")))
|
||||
(run-hooks 'after-setting-font-hook))
|
||||
(put 'doom-font 'initialized t))
|
||||
|
||||
(defun doom-init-theme-h (&rest _)
|
||||
"Load the theme specified by `doom-theme' in FRAME."
|
||||
|
|
|
@ -14,10 +14,6 @@
|
|||
;; buffers anyway.
|
||||
(setq-hook! 'emacs-everywhere-init-hooks doom-inhibit-local-var-hooks t)
|
||||
|
||||
;; REVIEW: Fixes tecosaur/emacs-everywhere#75. Remove when dealt with
|
||||
;; upstream.
|
||||
(define-key emacs-everywhere-mode-map "\C-c\C-c" #'emacs-everywhere-finish)
|
||||
|
||||
(after! doom-modeline
|
||||
(doom-modeline-def-segment emacs-everywhere
|
||||
(concat
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; app/everywhere/packages.el
|
||||
|
||||
(package! emacs-everywhere :pin "fbeff19825336777dccaefedf3f376dd622cd294")
|
||||
(package! emacs-everywhere :pin "bc91164151ab012ff884af92321557f9b37eeed1")
|
||||
|
|
|
@ -51,16 +51,19 @@
|
|||
:hook (flycheck-mode . +syntax-init-popups-h)
|
||||
:config
|
||||
(setq flycheck-popup-tip-error-prefix "X ")
|
||||
(after! evil
|
||||
;; Don't display popups while in insert or replace mode, as it can affect
|
||||
;; the cursor's position or cause disruptive input delays.
|
||||
(add-hook! '(evil-insert-state-entry-hook evil-replace-state-entry-hook)
|
||||
#'flycheck-popup-tip-delete-popup)
|
||||
(defadvice! +syntax--disable-flycheck-popup-tip-maybe-a (&rest _)
|
||||
:before-while #'flycheck-popup-tip-show-popup
|
||||
(if evil-local-mode
|
||||
(eq evil-state 'normal)
|
||||
(not (bound-and-true-p company-backend))))))
|
||||
|
||||
;; HACK: Only display the flycheck popup if we're in normal mode (for evil
|
||||
;; users) or if no selection or completion is active. This popup can
|
||||
;; interfere with the active evil mode, clear active regions, and other
|
||||
;; funny business (see #7242).
|
||||
(defadvice! +syntax--disable-flycheck-popup-tip-maybe-a (&rest _)
|
||||
:before-while #'flycheck-popup-tip-show-popup
|
||||
(if (and (bound-and-true-p evil-local-mode)
|
||||
(not (evil-emacs-state-p)))
|
||||
(evil-normal-state-p)
|
||||
(and (not (region-active-p))
|
||||
(not (bound-and-true-p company-backend))
|
||||
(not (ignore-errors (>= corfu--index 0)))))))
|
||||
|
||||
|
||||
(use-package! flycheck-posframe
|
||||
|
|
|
@ -138,10 +138,12 @@ TAB/S-TAB.")
|
|||
(after! dabbrev
|
||||
(setq dabbrev-friend-buffer-function #'+dabbrev-friend-buffer-p
|
||||
dabbrev-ignored-buffer-regexps
|
||||
'("^ "
|
||||
'("\\` "
|
||||
"\\(TAGS\\|tags\\|ETAGS\\|etags\\|GTAGS\\|GRTAGS\\|GPATH\\)\\(<[0-9]+>\\)?")
|
||||
dabbrev-upcase-means-case-search t)
|
||||
(add-to-list 'dabbrev-ignored-buffer-modes 'pdf-view-mode)))
|
||||
(add-to-list 'dabbrev-ignored-buffer-modes 'pdf-view-mode)
|
||||
(add-to-list 'dabbrev-ignored-buffer-modes 'doc-view-mode)
|
||||
(add-to-list 'dabbrev-ignored-buffer-modes 'tags-table-mode)))
|
||||
|
||||
;; Make these capfs composable.
|
||||
(advice-add #'lsp-completion-at-point :around #'cape-wrap-noninterruptible)
|
||||
|
|
|
@ -44,7 +44,9 @@ Can be negative.")
|
|||
;; symbol at point.
|
||||
helm-imenu-execute-action-at-once-if-one nil
|
||||
;; Disable special behavior for left/right, M-left/right keys.
|
||||
helm-ff-lynx-style-map nil)
|
||||
helm-ff-lynx-style-map nil
|
||||
;; Don't commandeer the entire frame for helm commands.
|
||||
helm-always-two-windows nil)
|
||||
|
||||
(map! [remap apropos] #'helm-apropos
|
||||
[remap find-library] #'helm-locate-library
|
||||
|
@ -189,7 +191,13 @@ Can be negative.")
|
|||
|
||||
|
||||
(use-package! helm-descbinds
|
||||
:hook (helm-mode . helm-descbinds-mode))
|
||||
:hook (helm-mode . helm-descbinds-mode)
|
||||
:config
|
||||
;; HACK: Upstream claims that the two packages are incompatible, but changing
|
||||
;; `prefix-help-command' seems to smooth the incompatibility over. More
|
||||
;; testing is needed...
|
||||
(setq helm-descbinds-disable-which-key nil
|
||||
prefix-help-command #'helm-descbinds))
|
||||
|
||||
|
||||
(use-package! helm-icons
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/snippets/packages.el
|
||||
|
||||
(package! yasnippet :pin "33587a8551b8f6991b607d3532062a384c010ce1")
|
||||
(package! yasnippet :pin "eb5ba2664c3a68ae4a53bb38b85418dd131b208f")
|
||||
(package! auto-yasnippet :pin "6a9e406d0d7f9dfd6dff7647f358cb05a0b1637e")
|
||||
(package! doom-snippets
|
||||
:recipe (:host github
|
||||
:repo "doomemacs/snippets"
|
||||
:files (:defaults "*"))
|
||||
:pin "07b3bdaf60b74080f899b12c3d46594c7fa75e04")
|
||||
:pin "c1384cc7975ee7ca7d551eb56c104d768440c3cb")
|
||||
|
|
|
@ -23,8 +23,7 @@
|
|||
(cond ((and (string-prefix-p "jupyter-" lang)
|
||||
(require 'jupyter nil t))
|
||||
(jupyter-eval-region beg end))
|
||||
((let ((major-mode (org-src-get-lang-mode lang)))
|
||||
(+eval/region beg end))))))))
|
||||
((+eval-region-as-major-mode beg end (org-src-get-lang-mode lang))))))))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
|
|
|
@ -72,6 +72,38 @@
|
|||
output source-buffer)
|
||||
output)
|
||||
|
||||
;;;###autoload
|
||||
(defun +eval-region-as-major-mode (beg end &optional runner-major-mode)
|
||||
"Evaluate a region between BEG and END and display the output.
|
||||
|
||||
Evaluate as in RUNNER-MAJOR-MODE. If RUNNER-MAJOR-MODE is nil, use major-mode
|
||||
of the buffer instead."
|
||||
(let ((load-file-name buffer-file-name)
|
||||
(load-true-file-name
|
||||
(or buffer-file-truename
|
||||
(if buffer-file-name
|
||||
(file-truename buffer-file-name))))
|
||||
(runner-major-mode (or runner-major-mode major-mode)))
|
||||
(cond ((if (fboundp '+eval--ensure-in-repl-buffer)
|
||||
(ignore-errors
|
||||
(get-buffer-window (or (+eval--ensure-in-repl-buffer)
|
||||
t))))
|
||||
(funcall (or (plist-get (cdr (alist-get runner-major-mode +eval-repls)) :send-region)
|
||||
#'+eval/send-region-to-repl)
|
||||
beg end))
|
||||
((let (lang)
|
||||
(if-let ((runner
|
||||
(or (alist-get runner-major-mode +eval-runners)
|
||||
(and (require 'quickrun nil t)
|
||||
(equal (setq
|
||||
lang (quickrun--command-key
|
||||
(buffer-file-name (buffer-base-buffer))))
|
||||
"emacs")
|
||||
(alist-get 'emacs-lisp-mode +eval-runners)))))
|
||||
(funcall runner beg end)
|
||||
(let ((quickrun-option-cmdkey lang))
|
||||
(quickrun-region beg end))))))))
|
||||
|
||||
|
||||
;;
|
||||
;;; Commands
|
||||
|
@ -103,31 +135,7 @@
|
|||
(defun +eval/region (beg end)
|
||||
"Evaluate a region between BEG and END and display the output."
|
||||
(interactive "r")
|
||||
(let ((load-file-name buffer-file-name)
|
||||
(load-true-file-name
|
||||
(or buffer-file-truename
|
||||
(if buffer-file-name
|
||||
(file-truename buffer-file-name)))))
|
||||
(cond ((and (fboundp '+eval--ensure-in-repl-buffer)
|
||||
(ignore-errors
|
||||
(get-buffer-window (or (+eval--ensure-in-repl-buffer)
|
||||
t))))
|
||||
(funcall (or (plist-get (cdr (alist-get major-mode +eval-repls)) :send-region)
|
||||
#'+eval/send-region-to-repl)
|
||||
beg end))
|
||||
((let ((runner
|
||||
(or (alist-get major-mode +eval-runners)
|
||||
(and (require 'quickrun nil t)
|
||||
(equal (setq
|
||||
lang (quickrun--command-key
|
||||
(buffer-file-name (buffer-base-buffer))))
|
||||
"emacs")
|
||||
(alist-get 'emacs-lisp-mode +eval-runners))))
|
||||
lang)
|
||||
(if runner
|
||||
(funcall runner beg end)
|
||||
(let ((quickrun-option-cmdkey lang))
|
||||
(quickrun-region beg end))))))))
|
||||
(+eval-region-as-major-mode beg end))
|
||||
|
||||
;;;###autoload
|
||||
(defun +eval/line-or-region ()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/doom/packages.el
|
||||
|
||||
(package! doom-themes :pin "37d2182f5078d29fb22bbace346e523bb84b2c4e")
|
||||
(package! solaire-mode :pin "8af65fbdc50b25ed3214da949b8a484527c7cc14")
|
||||
(package! doom-themes :pin "3b2422b208d28e8734b300cd3cc6a7f4af5eba55")
|
||||
(package! solaire-mode :pin "8ccdceeb9298b3c4e35f630914f467bf164f39ad")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue