跳到主要内容

一起发布3款 Semo REPL 插件

· 阅读需 4 分钟
Random Image
图片与正文无关

Node REPL 里的命令就是那些点开头的命令:

可能大家还不太习惯在 REPL 里做更多的事情,希望读过本文之后,部分同学可以习惯,并且爱上在 Semo REPL 里做扩展和使用扩展。今天给大家带来了 3 款插件,每个插件扩展了一个命令,先来一个总览:

下面分别给大家介绍:

准备阶段

所有的插件都需要安装 @semo/cli 这个命令行工具:

npm i -g @semo/cli

接下来的安装过程只写安装插件的部分。

在 REPL 里查 Javascript 文档:semo-plugin-repl-doc

npm i -g semo-plugin-repl-doc
semo repl --hook
>>> .doc string.trim

很容易理解不是嘛,这里文档比较长,只截取了一部分。大家有没有觉得很神奇,竟然在 REPL 里做到了这件事,感兴趣的同学可以去看看源码,原理十分简单,这里就当工具给大家介绍了。

那么,这里都支持查看哪些文档类型呢?

  • 最常见的就是看函数的 API: .doc string.trim,这里也支持 .doc string.trim() 或者 string.trim(str) 这样的风格,如果你愿意多敲几个字符的话。
  • 当然,你也可以去看看方法索引: .doc string,这样的化,页面可能会有好几屏
  • 也支持查一些语句用法:.doc while
  • 还支持比如部分运算符:.doc new
  • 还支持几个中文关键字:.doc 运算符
  • 默认会读取当前机器的语言设置,如果想看指定语言可以传参:.doc array.concat --lang=en
  • 如果你想执行任意关键字搜索,只会给出第一页的链接:.doc foo bar --type=search
  • 如果忘记了用法可以查看帮助: .doc help 或者 .doc --help

希望这个查看 Javascript 文档的功能可以帮助大家提高一点点工作效率。大家可以很容易发现,这里的数据是抓的 MDN 的,实时做的页面解构分析,在一个 REPL 的运行期间,相同的查询会被缓存,稍微做了点性能优化。

在 REPL 里查单词:semo-plugin-repl-translate

当然,大家有很多方式查单词,但是在一个 REPL 里难道不可以做的事情越多越好嘛?可能部分同学会喜欢呢!

npm i -g semo-plugin-repl-translate
semo repl --hook
>>> .translate hello

这里没有太多好解释的,特性都是依赖的包带来的,感谢 fanyi 这个 npm 包的作者,这里支持单词的英译中和中译英(不支持句子)

在 REPL 里查 Wiki: semo-plugin-repl-wiki

当然,这里就要感谢百度百科了,想了一下,国内应该还是百度百科最全吧。

npm i -g semo-plugin-repl-wiki
semo repl --hook
>>> .wiki javascript

小结

如果大家感兴趣去看每个插件的代码的话,就会发现实现都很简单,使用了 Semo 的一个钩子 hook_repl_command。如果大家有什么好的想法,可以参考这几个插件的代码仿写一下,希望看到更多好玩功能的出现。如果有疑问可以留言哈