原创分享 Intellij 插件新秀【CommentShell】, 让你的注释运行起来

anqiansong · 2021年03月26日 · 最后由 anqiansong 回复于 2021年03月28日 · 425 次阅读
本帖已被设为精华帖!

CommentShell

demo

CommentShell(CSL) 一个可以在注释中运行 shell 命令的 intellij 插件。

其可以帮助开发者快速在文件内执行指定命令,而不需要在终端去敲打 shell 命令, 如:开发 golang 的 grpc 服务时,我们需要用 protoc 工具生成 pb.go,传统做法是编写完 proto 文件后在打开终端输入 shell 命令去生成 pb 文件, 但是现在,你可以用 CLS 去替代传统做法提高你的开发效率,只需要在单行注释中以 x:generate 开头, 后面跟上你需要执行的 shell 命令即可,如:我期望通过 shell 命令打印 hello proto, 你可以通过 //x:generate echo hello proto 这样一行单行注释即可实现

支持的语言

  • .gitignore
  • Antlr(g4)
  • Api(go-zero)
  • Dart
  • Dockerfile
  • Drools
  • Gherkin
  • Gradle
  • Groovy
  • Html
  • Java
  • JavaScript
  • JFlex
  • JSPX
  • Kotlin
  • Lua
  • Markdown
  • Perl
  • PHP
  • Properties
  • Proto
  • Python
  • R
  • React
  • Ruby
  • Rust
  • Scala
  • SQl
  • TypeScript
  • Vue
  • XML
  • YAML

以上语言或者文件已经经过测试,除此外,只要编程语言或者某类型文件支持单行注释语法且指定单行注释类型和语法书写规范理论均可使用(见下文)。

安装方式

方式一: 下载地址 方式二: intellij plugin 仓库搜索 CommentShell install 即可,plugin 商店还在审核中。

支持的注释类型

  • Java 风格单行注释 text //x:generate echo hello java
  • Yaml 风格单行注释 text #x:generate echo hello yaml
  • SQL 风格单行注释 text --x:generate echo hello sql
  • xml/html 风格单行注释 text <!--x:generate echo hello xml--> ## 书写规则

格式

[linePrefix]x:generate [shell] [arg...] [lineSuffix]
  • linePrefix 为单行注释开始标志,仅支持//#--<!--
  • lineSuffix 为单行注释结束标志,仅支持 --> 此为 html/xml 风格单行注释特有
  • x:generate 为关键字

注意

  • linePrefix 与 x:generate 之间不能有任何其他内容

常量

  • %DIR% 代表当前文件的文件目录,如:/foo/bar
  • %FILENAME% 代表当前文件路径,如:/foo/bar/foobar.txt
  • %PERCENT_SIGN% 代表百分号符号本身%
  • "%BASE%" 代表当前文件名称,如:foobar.txt

示例

  • 在 Java 文件注释中输出 hello java text //x:generate echo hello java output: text hello java
  • 在 proto 文件中生成 pb.go text //x:generate protoc --go_out=plugins=grpc:. %FILENAME%
  • 在 Java 代码中输出 PATH 环境变量值 text //x:generate echo $PATH

点击这里查看各主流编程语言的 shell 写法。

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
astaxie 将本帖设为了精华贴 03月26日 04:23

这个工具有意思

ningxiaofang1o GoCN 每日新闻 (2021-03-27) 中提及了此贴 03月27日 12:51
astaxie 回复

哇,能得到谢大认可备感荣幸,感谢谢大精华贴支持!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册