emacs composition-function-table 问题

想参考 emacs-mac 给 emacs-plus 加上更完善的 Emoji 显示(主要是一些 sequence 的 composition,见 Emoji, 没想到你是这样的… ),直接把 emacs-mac 的相关代码拿过来发现并不 work,发现代码中貌似给 composition-function-table 多加了个参数,比如

    (set-char-table-range
     composition-function-table '(#x1F3FB . #x1F3FF)
     `([,(concat "[" modifications "].") 1 font-shape-gstring 0]))

但是 composition-function-table 文档中 [] 中只有三个部分:

The element at index C in the table, if non-nil, is a list of
composition rules of this form: ([PATTERN PREV-CHARS FUNC] ...)

尝试把 font-shape-gstring 后面的数字删掉之后部分 work 了,但还是有一些问题,以及作者实现的几个函数 mac-compose-gstring-for-emoji-style-variation 等后面数字去掉后会报错,想请教下大家该怎么弄,或者说后面那个数字什么意思。

1 个赞

Emacs Mac Port 27 C-h o composition-function-table:

The element at index C in the table, if non-nil, is a list of composition rules where each rule is a vector of the form [PATTERN PREV-CHARS FUNC] or [PATTERN PREV-CHARS FUNC FONT-POS].

1 个赞

不知道能不能直接用harfbuzz?

谢谢,我不知道怎么用,等以后有空看看