dev: merge from master
This commit is contained in:
commit
1f75958e90
11 changed files with 91 additions and 53 deletions
|
@ -74,31 +74,23 @@ orderless."
|
|||
(completion-styles +vertico-company-completion-styles))
|
||||
(apply fn args)))
|
||||
|
||||
(setq orderless-affix-dispatch-alist
|
||||
`((?! . ,#'orderless-without-literal)
|
||||
(?& . ,#'orderless-annotation)
|
||||
(?% . ,#'char-fold-to-regexp)
|
||||
(?` . ,#'orderless-initialism)
|
||||
(?= . ,#'orderless-literal)
|
||||
(?^ . ,#'orderless-literal-prefix)
|
||||
(?~ . ,#'orderless-flex)))
|
||||
|
||||
(defun +vertico-orderless-dispatch (pattern _index _total)
|
||||
(cond
|
||||
;; Ensure $ works with Consult commands, which add disambiguation suffixes
|
||||
((string-suffix-p "$" pattern)
|
||||
`(orderless-regexp . ,(concat (substring pattern 0 -1) "[\x200000-\x300000]*$")))
|
||||
;; Ignore single !
|
||||
((string= "!" pattern) `(orderless-literal . ""))
|
||||
;; Without literal
|
||||
((string-prefix-p "!" pattern) `(orderless-without-literal . ,(substring pattern 1)))
|
||||
;; Annotation
|
||||
((string-prefix-p "&" pattern) `(orderless-annotation . ,(substring pattern 1)))
|
||||
((string-suffix-p "&" pattern) `(orderless-annotation . ,(substring pattern 0 -1)))
|
||||
;; Character folding
|
||||
((string-prefix-p "%" pattern) `(char-fold-to-regexp . ,(substring pattern 1)))
|
||||
((string-suffix-p "%" pattern) `(char-fold-to-regexp . ,(substring pattern 0 -1)))
|
||||
;; Initialism matching
|
||||
((string-prefix-p "`" pattern) `(orderless-initialism . ,(substring pattern 1)))
|
||||
((string-suffix-p "`" pattern) `(orderless-initialism . ,(substring pattern 0 -1)))
|
||||
;; Literal matching
|
||||
((string-prefix-p "=" pattern) `(orderless-literal . ,(substring pattern 1)))
|
||||
((string-suffix-p "=" pattern) `(orderless-literal . ,(substring pattern 0 -1)))
|
||||
;; Flex matching
|
||||
((string-prefix-p "~" pattern) `(orderless-flex . ,(substring pattern 1)))
|
||||
((string-suffix-p "~" pattern) `(orderless-flex . ,(substring pattern 0 -1)))))
|
||||
;; TODO: Find a way to deduplicate this code from the corfu module.
|
||||
`(orderless-regexp . ,(concat (substring pattern 0 -1) "[\x200000-\x300000]*$")))))
|
||||
|
||||
(add-to-list 'orderless-style-dispatchers '+vertico-orderless-dispatch)
|
||||
|
||||
(add-to-list
|
||||
'completion-styles-alist
|
||||
'(+vertico-basic-remote
|
||||
|
@ -110,7 +102,6 @@ orderless."
|
|||
;; note that despite override in the name orderless can still be used in
|
||||
;; find-file etc.
|
||||
completion-category-overrides '((file (styles +vertico-basic-remote orderless partial-completion)))
|
||||
orderless-style-dispatchers '(+vertico-orderless-dispatch)
|
||||
orderless-component-separator #'orderless-escapable-split-on-space)
|
||||
;; ...otherwise find-file gets different highlighting than other commands
|
||||
(set-face-attribute 'completions-first-difference nil :inherit nil))
|
||||
|
|
|
@ -39,6 +39,18 @@ It also provides easy font configuration for Hebrew and Arabic-derived scripts
|
|||
See [[Fonts]] for more information. If you use an RTL language that isn't covered by
|
||||
these characters, open an issue requesting support for it.
|
||||
|
||||
To resize fonts, don't include a ~:size~ parameter in ~+bidi-hebrew-font~ or
|
||||
~+bidi-arabic-font~, set ~+bidi-hebrew-font-scale~ or ~+bidi-arabic-font-scale~
|
||||
instead, or add an entry to ~face-font-rescale-alist~ for your font. E.g.
|
||||
#+begin_src emacs-lisp
|
||||
;;; Add to $DOOMDIR/config.el
|
||||
(setq +bidi-arabic-font-scale 1.5)
|
||||
;; or
|
||||
(setq +bidi-hebrew-font-scale 2.5)
|
||||
;; or
|
||||
(add-to-list 'face-font-rescale-alist '("DejaVu Sans" . 1.2))
|
||||
#+end_src
|
||||
|
||||
* Configuration
|
||||
** Using ~+bidi-mode~
|
||||
~+bidi-mode~ is a local minor mode, meaning it has to be turned on a per-buffer
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
;;; input/bidi/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(defvar +bidi-mode-map (make-sparse-keymap)
|
||||
"Keymap for `+bidi-mode'.")
|
||||
|
||||
(defvar +bidi-hebrew-font (font-spec :family "DejaVu Sans")
|
||||
"Overriding font for hebrew script.
|
||||
Must be a `font-spec', see `doom-font' for examples.
|
||||
|
||||
WARNING: if you specify a size for this font it will hard-lock any usage of this
|
||||
font to that size. It's rarely a good idea to do so!")
|
||||
font to that size. It's rarely a good idea to do so! Set
|
||||
`+bidi-hebrew-font-scale' to scale the font up or down.")
|
||||
|
||||
(defcustom +bidi-hebrew-font-scale 1.0
|
||||
"What scale to display `+bidi-hebrew-font' at."
|
||||
:type 'float)
|
||||
|
||||
(defface +bidi-hebrew-face `((t :font ,+bidi-hebrew-font)) "")
|
||||
|
||||
|
@ -17,7 +19,12 @@ font to that size. It's rarely a good idea to do so!")
|
|||
Must be a `font-spec', see `doom-font' for examples.
|
||||
|
||||
WARNING: if you specify a size for this font it will hard-lock any usage of this
|
||||
font to that size. It's rarely a good idea to do so!")
|
||||
font to that size. It's rarely a good idea to do so! Set
|
||||
`+bidi-arabic-font-scale' to scale the font up or down.")
|
||||
|
||||
(defcustom +bidi-arabic-font-scale 1.0
|
||||
"What scale to display `+bidi-arabic-font' at."
|
||||
:type 'float)
|
||||
|
||||
(defface +bidi-arabic-face `((t :font ,+bidi-arabic-font)) "")
|
||||
|
||||
|
@ -51,7 +58,10 @@ Warning: do not change this if you are using `+bidi-global-mode'.'"
|
|||
(const :tag "Right to Left" right-to-left)
|
||||
(const :tag "Dynamic, according to paragraph text" nil)))
|
||||
|
||||
;;;###autoload
|
||||
|
||||
(defvar +bidi-mode-map (make-sparse-keymap)
|
||||
"Keymap for `+bidi-mode'.")
|
||||
|
||||
(define-minor-mode +bidi-mode
|
||||
"Minor mode for using bidirectional text in a buffer.
|
||||
|
||||
|
@ -85,9 +95,24 @@ easier."
|
|||
|
||||
(define-globalized-minor-mode +bidi-global-mode +bidi-mode +bidi-mode)
|
||||
|
||||
|
||||
(defun +bidi--set-font (name)
|
||||
(when-let* ((font-name (format "+bidi-%s-font" name))
|
||||
(font-var (or (intern-soft font-name) (error "Invalid font: %s" name)))
|
||||
(font (symbol-value font-var)))
|
||||
(condition-case e
|
||||
(let ((scale (symbol-value (intern (format "+bidi-%s-font-scale" name)))))
|
||||
(set-fontset-font t 'hebrew font)
|
||||
(set-face-font (intern (format "+bidi-%s-face" name)) font)
|
||||
(when (/= scale 1.0)
|
||||
(setf (alist-get (font-get font :family) face-font-rescale-alist nil nil #'equal)
|
||||
scale)))
|
||||
('error
|
||||
(if (string-prefix-p "Font not available" (error-message-string e))
|
||||
(warn "Missing font for `%s': %s" font-name (font-get font :family))
|
||||
(signal (car e) (cdr e)))))))
|
||||
|
||||
(add-hook! 'after-setting-font-hook
|
||||
(defun +bidi-set-fonts-h ()
|
||||
(set-fontset-font t 'hebrew +bidi-hebrew-font)
|
||||
(set-fontset-font t 'arabic +bidi-arabic-font)
|
||||
(set-face-font '+bidi-arabic-face +bidi-arabic-font)
|
||||
(set-face-font '+bidi-hebrew-face +bidi-hebrew-font)))
|
||||
(defun +bidi-init-fonts-h ()
|
||||
(+bidi--set-font 'hebrew)
|
||||
(+bidi--set-font 'arabic)))
|
||||
|
|
|
@ -1207,19 +1207,23 @@ between the two."
|
|||
(map! :map evil-org-mode-map
|
||||
:ni [C-return] #'+org/insert-item-below
|
||||
:ni [C-S-return] #'+org/insert-item-above
|
||||
;; navigate table cells (from insert-mode)
|
||||
:i Cright (cmds! (org-at-table-p) #'org-table-next-field
|
||||
#'org-end-of-line)
|
||||
:i Cleft (cmds! (org-at-table-p) #'org-table-previous-field
|
||||
#'org-beginning-of-line)
|
||||
:i Cup (cmds! (org-at-table-p) #'+org/table-previous-row
|
||||
#'org-up-element)
|
||||
:i Cdown (cmds! (org-at-table-p) #'org-table-next-row
|
||||
#'org-down-element)
|
||||
:ni CSright #'org-shiftright
|
||||
:ni CSleft #'org-shiftleft
|
||||
:ni CSup #'org-shiftup
|
||||
:ni CSdown #'org-shiftdown
|
||||
(:unless evil-disable-insert-state-bindings
|
||||
:i Cright (cmds! (org-at-table-p) #'org-table-next-field
|
||||
#'org-end-of-line)
|
||||
:i Cleft (cmds! (org-at-table-p) #'org-table-previous-field
|
||||
#'org-beginning-of-line)
|
||||
:i Cup (cmds! (org-at-table-p) #'+org/table-previous-row
|
||||
#'org-up-element)
|
||||
:i Cdown (cmds! (org-at-table-p) #'org-table-next-row
|
||||
#'org-down-element)
|
||||
:i CSright #'org-shiftright
|
||||
:i CSleft #'org-shiftleft
|
||||
:i CSup #'org-shiftup
|
||||
:i CSdown #'org-shiftdown)
|
||||
:n CSright #'org-shiftright
|
||||
:n CSleft #'org-shiftleft
|
||||
:n CSup #'org-shiftup
|
||||
:n CSdown #'org-shiftdown
|
||||
;; more intuitive RET keybinds
|
||||
:n [return] #'+org/dwim-at-point
|
||||
:n "RET" #'+org/dwim-at-point
|
||||
|
|
|
@ -34,7 +34,4 @@
|
|||
(unless (bound-and-true-p jupyter-org-interaction-mode)
|
||||
(jupyter-org-interaction-mode)))
|
||||
|
||||
;; Remove text/html since it's not human readable
|
||||
(delq! :text/html jupyter-org-mime-types)
|
||||
|
||||
(require 'tramp))
|
||||
|
|
|
@ -34,7 +34,7 @@ This function is called by `org-babel-execute-src-block'."
|
|||
(concat (shell-quote-argument (executable-find plantuml-executable-path))
|
||||
" --headless"))
|
||||
((not (file-exists-p plantuml-jar-path))
|
||||
(error "Could not find plantuml.jar at %s" org-plantuml-jar-path))
|
||||
(error "Could not find plantuml.jar at %s" plantuml-jar-path))
|
||||
((concat "java " (cdr (assoc :java params)) " -jar "
|
||||
(shell-quote-argument
|
||||
(expand-file-name plantuml-jar-path)))))
|
||||
|
|
|
@ -11,6 +11,7 @@ This module configures Emacs for use in the terminal, by providing:
|
|||
- Cursor-shape changing across evil states (requires a terminal that supports
|
||||
it).
|
||||
- Mouse support in the terminal.
|
||||
- Support for the [[https://sw.kovidgoyal.net/kitty/keyboard-protocol/][Kitty keyboard protocol]] in supported terminals.
|
||||
|
||||
** Maintainers
|
||||
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
|
||||
|
@ -25,6 +26,7 @@ This module configures Emacs for use in the terminal, by providing:
|
|||
** Packages
|
||||
- [[doom-package:clipetty]] if [[doom-module:+osc]]
|
||||
- [[doom-package:evil-terminal-cursor-changer]] if [[doom-module::editor evil]]
|
||||
- [[doom-package:kkp]]
|
||||
- [[doom-package:xclip]] unless [[doom-module:+osc]]
|
||||
|
||||
** Hacks
|
||||
|
|
|
@ -41,4 +41,9 @@
|
|||
;; http://www.culater.net/software/SIMBL/SIMBL.php and
|
||||
;; https://github.com/saitoha/mouseterm-plus/releases. That makes to support
|
||||
;; VT's DECSCUSR sequence.
|
||||
(add-hook 'tty-setup-hook #'evil-terminal-cursor-changer-activate)
|
||||
(use-package! evil-terminal-cursor-changer
|
||||
:hook (tty-setup . evil-terminal-cursor-changer-activate))
|
||||
|
||||
;; Add support for the Kitty keyboard protocol.
|
||||
(use-package! kkp
|
||||
:hook (after-init . global-kkp-mode))
|
||||
|
|
|
@ -11,3 +11,5 @@
|
|||
;; NOTE Despite the evil-* prefix, evil-terminal-cursor-changer does not depend
|
||||
;; on evil (anymore).
|
||||
(package! evil-terminal-cursor-changer :pin "2358f3e27d89128361cf80fcfa092fdfe5b52fd8")
|
||||
|
||||
(package! kkp :pin "ed9214329f11b095fc7bad06feb329b9f232258d")
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
:recipe (:host github
|
||||
:repo "doomelpa/code-review"
|
||||
:files ("graphql" "code-review*.el"))
|
||||
:pin "e4c34fa284da25d8e0bafbae4300f1db5bdcda44"))
|
||||
:pin "eeffdd9e20ad133e5981f216965445bfae20292a"))
|
||||
|
|
|
@ -7,4 +7,4 @@
|
|||
|
||||
(when (modulep! :editor evil +everywhere)
|
||||
(package! evil-textobj-tree-sitter
|
||||
:pin "a19ab9d89a00f4a04420f9b5d61b66f04fea5261"))
|
||||
:pin "041fcb9fbb00deac92a4e58b5fca03f7dc0a32e8"))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue