deno-bridge

重启更新了,还是这样

我觉得最好在 deno 入口根部做 try catch, 如果有任何报错返回一个错误消息,这样 deno 还能继续跑

感觉目前要重启 emacs 才可以,目前如果 deno 端报错,就无法再连上 websocket 了

对, 就是这个原因

  1. 我发了个补丁支持空格检测
  2. 同时需要 TypeScript 端需要处理 <= end 的情况, < end 会触发 tokens[i - 1].start === NaN 的情况
  3. thing-at-point 的 NO-PROPERTIES 设置成 t, 避免向 TypeScript 发送字符属性

BTW, TypeScript 端有很多错误和警告, 可以清理一下。

1 个赞

类似的项目还有这个 新人报到,写了个中文词性高亮的小功能,请各位前辈批评

猫哥简直效率之星。

今天有空了我清理一下 TypeScript 的错误和警告。

恩,已经注意到这个项目了。相当有启发性。我准备参照这个思路做一个类似的英文断句工具(分割英文长难句),辅助一下我看英文小说。调研中。

BTW,使用机器学习相关的工具,多半只能用python了。学习 emacs python rpc 中。

提了一个 PR,希望这个插件模拟原生的 kill-wordbackward-kill-word 函数,这样比较方便 remap。

嗯嗯,已合并。

很好用, 特别是删除中文文章的时候。

反馈两个bug:

  1. 向左删除的时候,删除到行首就不能再继续往上一行删除了。
  2. 向右删除的时候,遇到逗号就删除不动了, 不是所有逗号都删除不动, 哈哈哈哈。

@stephanoskomnenos

删除,应该也可以和移动一样。判断一下字符,中文则按照分词处理。英文则使用原生的 kill-word。

然后行头,行尾,空格,标点可能需要特殊处理。

这应该是 deno-jieba 的问题,某些地方的英文逗号会被吞掉,在 token 里找不到。 image

原生的 forward-word 在遇到英文符号后面紧跟中文的时候会直接跳到下一个空格,而不是中文第一个词结束。

话说我刚刚在 vscode 里写了一个类似的,用的是 node binding 的 jieba-wasm。我没有根据中英文决定分词方式,而是完全交给结巴分词,这里没有出现类似的问题。所以这个 bug 应该在上游。

vscode-jieba

@manateelazycat

更新了一下 kill-word 和 backward-kill-word 的逻辑:

  1. 如果当前字符为标点符号或者空格,递归删除标点空格以及最近的一个word。
  2. 如果是单宽度字符(认为是英文)则使用原生的kill-word
  3. 如果是中文使用 jieba-kill-word

示例,在最右的逗号backward-kill-word 删除: 你好小明同学,,,,-> 你好小明

1 个赞

那估计是 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

看能否正常运行

另外刚启动的时候,需要下载一些依赖,多等一会看看

1 个赞

谢谢,找到原因了,主要是我用的doom-emacs 配置,添加包的时候没有把 ts 文件放进来,所以默认的编译后的包目录下只有el文件,修改后可以了

(package! deno-bridege-jieba :recipe (:host github :repo "ginqi7/deno-bridge-jieba" :files ("*.el" "*.ts" )))
1 个赞

@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")))

1 个赞