;;; pyim-magic.el --- magic convert for pyim. -*- lexical-binding: t; -*- ;; * Header ;; Copyright (C) 2021 Free Software Foundation, Inc. ;; Author: Feng Shu ;; Maintainer: Feng Shu ;; URL: https://github.com/tumashu/pyim ;; Keywords: convenience, Chinese, pinyin, input-method ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;;; Code: ;; * 代码 :code: (require 'cl-lib) (defgroup pyim-magic nil "Magic converter for pyim." :group 'pyim) (defcustom pyim-magic-converter nil "将 “待选词条” 在 “上屏” 之前自动转换为其他字符串. 这个功能可以实现“简转繁”,“输入中文得到英文”之类的功能。" :type 'boolean) (defvar pyim-magic-convert-cache nil "用来临时保存 `pyim-magic-convert' 的结果. 从而加快同一个字符串第二次的转换速度。") (defun pyim-magic-convert (str) "用于处理 `pyim-magic-converter' 的函数。" (if (functionp pyim-magic-converter) (or (cdr (assoc str pyim-magic-convert-cache)) (let ((result (funcall pyim-magic-converter str))) (setq pyim-magic-convert-cache `((,str . ,result))) result)) str)) ;; * Footer (provide 'pyim-magic) ;;; pyim-magic.el ends here