这样更好,方便修改
等我研究一下startdict的格式
再提一个 issue
输入 good 弹出候选词:
输入 good-
然后候选词都没用了:
应该将连字符也纳入 prefix
Edit:
亲测将 company-grab-word
换成 company-grab-symbol
可以解决问题:
你说的几个问题都修复了:
- 错误的加入 prefix 到补全列表中
- 词典中有的例句现在可以补全一句话了
- good-bye 连接符不能补全的问题
除此之外我写了一个 python 脚本: https://github.com/manateelazycat/lazycat-emacs/tree/master/site-lisp/extensions/english-helper
现在大家可以自己用 stardict.py 脚本导入自己喜欢的 stardict 词典进行补全了, stardict.py 脚本运行完了, 会自动在当前目录下生成新的 company-english-helper-data.el
最后不要打开 company-english-helper-data.el 这个文件, 11万行单词, emacs会卡死的
可以在第一行指定打开的mode
;; -*- mode: fundamental; -*-
Good idea, 已经实现了
为什么不用sqlite3
没必要啊, 直接内存查词典多快啊, 不用每次都要读取数据库
可 以 缓 存
真的没有必要了, 英文补全怎么简单怎么来, 用合适的技术就好。
英文补全就字典就刚刚好, sqlite 都重了。
我想改个解释
我是从 stardict 字典中直接转换的, 如果想要深度自定义解释, 可以直接修改 stardict.py 这个脚本, 很简单的, 前后 20 行。
搭车问:我在web-mode里想让company补全包括-
,现在是modify-syntax-entry
把-
看作word的,我想把它看作symbol,这样更正确一点,那么就要改company让它补全symbol而非word,该怎么写才能办到呢?
方便把代码贴出来吗?
(modify-syntax-entry ?- "w" web-mode-syntax-table)
describe-syntax
可以看到"w"
表示word-constituent
。希望改成
(modify-syntax-entry ?- "\_" web-mode-syntax-table) ;; \好像是多余的
这样-
是symbol的一部分,但不是word的一部分。
第二种写法company不会补全-
,所以暂时用的第一种,怎么告诉company:“为我补全symbol,而不止是word”?
用的 company-web-html
backend?
company-backends:
((company-dabbrev-code company-gtags company-etags company-keywords)
company-files company-dabbrev)
先搞清楚是哪个 backend 在起作用,如果是第一个 dabbrev-code 的话,它本身就是 grab-symbol 的:
(prefix (and (or (eq t company-dabbrev-code-modes)
(apply #'derived-mode-p company-dabbrev-code-modes))
(or company-dabbrev-code-everywhere
(not (company-in-string-or-comment)))
(or (company-grab-symbol) 'stop)))
用的 spacemacs 吗?编辑什么文件?web-mode 第一个 backend 不应该是这个啊?用 html layer 的话,第一个 backend 是 company-web-html
company-css & company-html在osx上很卡,我去掉了。起作用的似乎是company-dabbrev
如果是 dabbrev, 补全symbol的方式很简单:
(setq company-dabbrev-char-regexp "[\\.0-9a-z-_'/]") ;adjust regexp make `company-dabbrev' search words like `dabbrev-expand'
(setq company-dabbrev-code-other-buffers 'all) ;search completion from all buffers, not just same mode buffers.
(setq company-dabbrev-downcase nil) ;don't downcase completion result from dabbrev.