重启更新了,还是这样
我觉得最好在 deno 入口根部做 try catch, 如果有任何报错返回一个错误消息,这样 deno 还能继续跑
感觉目前要重启 emacs 才可以,目前如果 deno 端报错,就无法再连上 websocket 了
对, 就是这个原因
- 我发了个补丁支持空格检测
- 同时需要 TypeScript 端需要处理 <= end 的情况, < end 会触发
tokens[i - 1].start === NaN
的情况 - thing-at-point 的 NO-PROPERTIES 设置成 t, 避免向 TypeScript 发送字符属性
BTW, TypeScript 端有很多错误和警告, 可以清理一下。
猫哥简直效率之星。
今天有空了我清理一下 TypeScript 的错误和警告。
恩,已经注意到这个项目了。相当有启发性。我准备参照这个思路做一个类似的英文断句工具(分割英文长难句),辅助一下我看英文小说。调研中。
BTW,使用机器学习相关的工具,多半只能用python了。学习 emacs python rpc 中。
提了一个 PR,希望这个插件模拟原生的 kill-word
和 backward-kill-word
函数,这样比较方便 remap。
嗯嗯,已合并。
很好用, 特别是删除中文文章的时候。
反馈两个bug:
- 向左删除的时候,删除到行首就不能再继续往上一行删除了。
- 向右删除的时候,遇到逗号就删除不动了, 不是所有逗号都删除不动, 哈哈哈哈。
这应该是 deno-jieba 的问题,某些地方的英文逗号会被吞掉,在 token 里找不到。
原生的 forward-word
在遇到英文符号后面紧跟中文的时候会直接跳到下一个空格,而不是中文第一个词结束。
话说我刚刚在 vscode 里写了一个类似的,用的是 node binding 的 jieba-wasm。我没有根据中英文决定分词方式,而是完全交给结巴分词,这里没有出现类似的问题。所以这个 bug 应该在上游。
更新了一下 kill-word 和 backward-kill-word 的逻辑:
- 如果当前字符为标点符号或者空格,递归删除标点空格以及最近的一个word。
- 如果是单宽度字符(认为是英文)则使用原生的kill-word
- 如果是中文使用 jieba-kill-word
示例,在最右的逗号backward-kill-word 删除: 你好小明同学,,,,-> 你好小明
那估计是 deno-jieba 实现的有问题。
restart后,会弹出当前进程,看有没有正常启动
另外可以试试终端中直接去执行对应命令,例如我是用straight来接入的
deno run -A --unstable /Users/xxx/.emacs.d/.local/straight/build-28.2/deno-bridge-jieba/deno-bridge-jieba.ts deno-bridge-jieba 63613 6361
看能否正常运行
另外刚启动的时候,需要下载一些依赖,多等一会看看
谢谢,找到原因了,主要是我用的doom-emacs 配置,添加包的时候没有把 ts 文件放进来,所以默认的编译后的包目录下只有el文件,修改后可以了
(package! deno-bridege-jieba :recipe (:host github :repo "ginqi7/deno-bridge-jieba" :files ("*.el" "*.ts" )))
@nailuogGG @driftcrow 二位帮了大忙!谢谢! 我这边可以正常用了,附上配置:
(use-package websocket)
(use-package deno-bridge
:straight (deno-bridge
:type git
:host github
:repo "manateelazycat/deno-bridge"))
(use-package deno-bridge-jieba
:straight (deno-bridge-jieba
:type git
:host github
:repo "ginqi7/deno-bridge-jieba"
:files ("*.el" "*.ts")))