90 lines
2.5 KiB
EmacsLisp
90 lines
2.5 KiB
EmacsLisp
;;; input/chinese/config.el -*- lexical-binding: t; -*-
|
|
|
|
(use-package! pyim
|
|
:after-call after-find-file pre-command-hook
|
|
:init
|
|
(setq pyim-dcache-directory (concat doom-cache-dir "pyim/"))
|
|
:config
|
|
(setq pyim-page-tooltip t
|
|
default-input-method "pyim")
|
|
|
|
(after! evil-escape
|
|
(defun +chinese--input-method-p ()
|
|
current-input-method)
|
|
(add-to-list 'evil-escape-inhibit-functions #'+chinese--input-method-p))
|
|
|
|
(when (modulep! +childframe)
|
|
(setq pyim-page-tooltip 'posframe))
|
|
|
|
;; allow vertico/selectrum search with pinyin
|
|
(cond ((modulep! :completion vertico)
|
|
(advice-add #'orderless-regexp
|
|
:filter-return
|
|
(if (modulep! :editor evil +everywhere)
|
|
#'evil-pinyin--build-regexp-string
|
|
#'pyim-cregexp-build)))
|
|
((modulep! :completion ivy)
|
|
(autoload 'pyim-cregexp-ivy "pyim-cregexp-utils")
|
|
(setq ivy-re-builders-alist '((t . pyim-cregexp-ivy))))))
|
|
|
|
|
|
(use-package! liberime
|
|
:when (modulep! +rime)
|
|
:after pyim
|
|
:init
|
|
(setq liberime-auto-build t
|
|
liberime-user-data-dir (file-name-concat doom-cache-dir "rime")))
|
|
|
|
|
|
(use-package! pyim-liberime
|
|
:when (modulep! +rime)
|
|
:after liberime
|
|
:config
|
|
(setq pyim-default-scheme 'rime))
|
|
|
|
|
|
(use-package! pangu-spacing
|
|
:hook (text-mode . pangu-spacing-mode)
|
|
:config
|
|
;; Always insert `real' space in org-mode.
|
|
(setq-hook! 'org-mode-hook pangu-spacing-real-insert-separtor t))
|
|
|
|
|
|
(use-package! fcitx
|
|
:after evil
|
|
:config
|
|
(when (setq fcitx-remote-command
|
|
(or (executable-find "fcitx5-remote")
|
|
(executable-find "fcitx-remote")))
|
|
(fcitx-evil-turn-on)))
|
|
|
|
|
|
(use-package! ace-pinyin
|
|
:after avy
|
|
:init (setq ace-pinyin-use-avy t)
|
|
:config (ace-pinyin-global-mode t))
|
|
|
|
|
|
(use-package! evil-pinyin
|
|
:when (modulep! :editor evil +everywhere)
|
|
:after evil
|
|
:config
|
|
(setq-default evil-pinyin-with-search-rule 'always)
|
|
(global-evil-pinyin-mode 1))
|
|
|
|
|
|
;;
|
|
;;; Hacks
|
|
|
|
(defadvice! +chinese--org-html-paragraph-a (args)
|
|
"Join consecutive Chinese lines into a single long line without unwanted space
|
|
when exporting org-mode to html."
|
|
:filter-args #'org-html-paragraph
|
|
(cl-destructuring-bind (paragraph contents info) args
|
|
(let* ((fix-regexp "[[:multibyte:]]")
|
|
(fixed-contents
|
|
(replace-regexp-in-string
|
|
(concat "\\(" fix-regexp "\\) *\n *\\(" fix-regexp "\\)")
|
|
"\\1\\2"
|
|
contents)))
|
|
(list paragraph fixed-contents info))))
|