branch: externals/pyim commit 48bc29d774c056174aa3bec44e70dc6cf4b9b95c Author: Feng Shu <tuma...@163.com> Commit: Feng Shu <tuma...@163.com>
Do not require popup in the future. --- Makefile | 11 ++++++----- README.org | 16 ++++++++++++++++ pyim-page.el | 9 +++++---- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 904ea8165c..c1b450b5ee 100644 --- a/Makefile +++ b/Makefile @@ -9,12 +9,13 @@ RM=@rm -rf XR_URL="https://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/xr.el?h=externals/xr" ASYNC_URL="https://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/async.el?h=externals/async" -POPUP_URL="https://git.savannah.gnu.org/cgit/emacs/nongnu.git/plain/popup.el?h=elpa/popup" POSFRAME_URL="https://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/posframe.el?h=externals/posframe" +POPUP_URL="https://git.savannah.gnu.org/cgit/emacs/nongnu.git/plain/popup.el?h=elpa/popup" +BASEDICT_URL="https://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/pyim-basedict.el?h=externals/pyim-basedict" -## Download pyim-basedict V0.5.0 (commit: 7495c974ada99f9fed96d8e85d8b97dabce9532c) +## Download pyim-basedict.pyim file from pyim-basedict v0.5.0, which commit +## is: 7495c974ada99f9fed96d8e85d8b97dabce9532c BASEDICT_PYIM_URL="https://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/pyim-basedict.pyim?h=externals/pyim-basedict&id=7495c974ada99f9fed96d8e85d8b97dabce9532c" -BASEDICT_URL="https://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/pyim-basedict.el?h=externals/pyim-basedict&id=7495c974ada99f9fed96d8e85d8b97dabce9532c" clean: $(RM) pyim-tests-temp-* @@ -24,10 +25,10 @@ deps: @mkdir -p .deps; @if [ ! -f .deps/xr.el ]; then curl -L $(XR_URL) > .deps/xr.el; fi; @if [ ! -f .deps/async.el ]; then curl -L $(ASYNC_URL) > .deps/async.el; fi; + @if [ ! -f .deps/posframe.el ]; then curl -L $(POSFRAME_URL) > .deps/posframe.el; fi; @if [ ! -f .deps/popup.el ]; then curl -L $(POPUP_URL) > .deps/popup.el; fi; - @if [ ! -f .deps/pyim-basedict.pyim ]; then curl -L $(BASEDICT_PYIM_URL) > .deps/pyim-basedict.pyim; fi; @if [ ! -f .deps/pyim-basedict.el ]; then curl -L $(BASEDICT_URL) > .deps/pyim-basedict.el; fi; - @if [ ! -f .deps/posframe.el ]; then curl -L $(POSFRAME_URL) > .deps/posframe.el; fi; + @if [ ! -f .deps/pyim-basedict.pyim ]; then curl -L $(BASEDICT_PYIM_URL) > .deps/pyim-basedict.pyim; fi; lint: deps @$(EMACS) $(EMACS_BATCH_OPTS) --load ./tests/pyim-elint.el 2>&1 | grep -vE "pyim-cregexp.el:[0-9]+:Warning: Empty varlist in let|pyim-indicator.el:[0-9]+:Error: Call to undefined function: posframe-show" | grep -E "([Ee]rror|[Ww]arning):" && exit 1 || exit 0 diff --git a/README.org b/README.org index f78ba68e63..7b0a9bbaa0 100644 --- a/README.org +++ b/README.org @@ -9,6 +9,14 @@ * 不兼容更新 +** <2022-06-15 Wed> Do not require popup in pyim-page.el +popup 是一个非 gnu elpa 包,pyim-page.el 不应该 require 它,需要用户自己手动 +require, 使用 popup tooltip 的用户需要在配置中添加: + +#+begin_src elisp +(require 'popup) +#+end_src + ** <2022-06-13 Mon> pyim-dcache-backend 所需的 package 需要用户手工加载了。 以前 pyim 可以根据 pyim-dcache-backend 的取值自动加载需要的 package, 这样做虽然 @@ -110,6 +118,14 @@ pyim 的目标是: *尽最大的努力成为一个好用的 Emacs 中文输入 (require 'pyim-basedict) (require 'pyim-cregexp-utils) +;; 如果使用 popup page tooltip, 就需要加载 popup 包。 +;; (require 'popup nil t) +;; (setq pyim-page-tooltip 'popup) + +;; 如果使用 pyim-dregcache dcache 后端,就需要加载 pyim-dregcache 包。 +;; (require 'pyim-dregcache) +;; (setq pyim-dcache-backend 'pyim-dregcache) + (pyim-basedict-enable) (setq default-input-method "pyim") diff --git a/pyim-page.el b/pyim-page.el index ab8275ebcc..000ca62801 100644 --- a/pyim-page.el +++ b/pyim-page.el @@ -30,7 +30,8 @@ (require 'cl-lib) ;; Emacs 26.1 之前的版本无法安装 posframe. (require 'posframe nil t) -;; popup 不是 GNU ELPA 包,所以 pyim 不能强制依赖它。 +;; popup 不是 gnu elpa 包,所以不应该在这里加载它,加载它是由于向后兼容的原因, +;; 未来可能删除。 (require 'popup nil t) (require 'pyim-common) (require 'pyim-process) @@ -297,7 +298,7 @@ page 的概念,比如,上面的 “nihao” 的 *待选词列表* 就可以 (1+ (/ (1- (pyim-process-candidates-length)) pyim-page-length))) (cl-defgeneric pyim-page-show (string position tooltip) - "在 POSITION 位置,使用 posframe 或者 popup 显示字符串 STRING.") + "在 POSITION 位置,使用 TOOLTIP 显示字符串 STRING.") (cl-defmethod pyim-page-show (string position (_tooltip (eql posframe))) "在 POSITION 位置,使用 posframe STRING." @@ -344,7 +345,7 @@ page 的概念,比如,上面的 “nihao” 的 *待选词列表* 就可以 (cl-defmethod pyim-page-show (string position (_tooltip (eql popup))) "Show STRING at POSITION with the help of popup-el." (when pyim-page-last-popup - ;; 异步获取词条的时候,如果不把已经存在的 popup 删除,就会出现两个 page. + ;; 延迟获取词条的时候,如果不把已经存在的 popup 删除,就会出现两个 page. (popup-delete pyim-page-last-popup)) (setq pyim-page-last-popup (apply #'popup-tip string @@ -360,7 +361,7 @@ page 的概念,比如,上面的 “nihao” 的 *待选词列表* 就可以 (cl-defmethod pyim-page-show (string position (_tooltip (eql popon))) "Show STRING at POSITION with the help of popon." (when pyim-page-last-popon - ;; 异步获取词条的时候,如果不把已经存在的 popon 删除,就会出现两个 page. + ;; 延迟获取词条的时候,如果不把已经存在的 popon 删除,就会出现两个 page. (popon-kill pyim-page-last-popon)) (let* ((x-y (popon-x-y-at-pos position)) (x (car x-y))