deno-bridge

大佬,仓库能给加个截图瞅瞅效果吗

还在完善当中。可以先参考

这位大佬的项目。功能上基本是一样的。只是尝试用 deno-bridge 去实现。

主要是 TypeScript 性能就很好, 再加上 deno-jieba 是一个 wasm 模块, 性能就很好了。

再加上 TypeScript 这种脚本的开发方法比 Rust 动态模块开发效率高很多, 写插件要爽很多。

更新了一下 README ,可以看一下效果了。

1 个赞

你们脑洞是真的大啊

牛哇 zsbd

发了两个补丁,一个是typo修复,一个是默认就应该调用 (deno-bridge-jieba-start) , 保证插件加载即启用,要不是用户要手动调用这个命令。

:joy: :joy: :joy: 变量名全拼错了。我居然毫无察觉。感谢,已合。

非常好用,我写博客的时候可以快速按照中文分词移动, 而不是原来一个一个文字的选择。

反馈一个bug, 就是第一次 forward-word 的时候分词好像每生效, 直接就按照一句跳过了, 但是第二次 forward-word 的时候又可以支持中文分词移动。

我猜测是中英文混排导致的(也可能是空格、空白符的问题),由于 jieba 对英文的解析不是很好。因此。这里选择了这样的逻辑:

  1. 如果 following-char 是一个只有1个宽度的字符,那么它应该是个 ASCII 字符,那么直接使用 forward-word
  2. 如果 following-char 不是一个只有1个宽度的字符,那么是中文,才通过中文分词跳转。

估计需要再加一个逻辑:

如果 following-char 是一个空白符或者标点符号,那么 forward-char 移动一格(或者移动到下一个非空白符)。

请问出现这个错误是什么原因:

websocket-send: Cannot send message to a closed websocket: #s(websocket-frame text "[\"data\",[\"forward-word\",\"- 基本操作 :: workspace,windows,常用操作如:输入法切换、复制粘贴\\n\",39]]" nil t)

重启一下 deno-bridge-jieba-restart 试试看。看起来是 websocket 关闭了。

重启更新了,还是这样

我觉得最好在 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 的错误和警告。