使用 Tree-Sitter 的语法感知任务生成 - Zed 博客

主要观点:介绍了 Zed 中的任务(Tasks)功能,包括如何运行任务、使用任务变量、定义任务、语言特定任务和可运行项等。
关键信息

  • 任务可用于执行代码,如 Go 测试等,最早在 2 月的[ v0.124.7 ]版本中出现,在最新的[ v0.136 ]预览版中更强大。
  • 运行任务可通过cmd-shift-p打开命令面板输入task: spawnopt-return启动任务,cmd-shift-p输入task: rerun可重新运行上次任务,还有快捷键opt-shift-topt-t
  • 任务变量如$ZED_SYMBOL$ZED_FILE$ZED_ROW等,$ZED_SELECTED_TEXT包含当前选中文本,可通过{ "reevaluate_context": true }重新评估变量。
  • 可通过任务模板(tasks.json)定义任务,可放在项目根目录或全局配置中,还可创建快捷键来启动特定任务。
  • 许多语言已有定义好的任务,语言扩展可定义自己的tasks.json,Rust 还动态定义了$RUST_PACKAGE变量。
  • 可在 Rust 文件的 gutter 中看到小播放按钮,通过 Tree-sitter 查询匹配可运行的语法树节点,与tasks.json中的任务定义关联,用户可点击运行。
    重要细节
  • 示例任务模板文件中的各种任务定义,如My cool loopruby evalgo test - current function等。
  • Rust 的runnables.scm文件中用于匹配可运行节点的 Tree-sitter 查询模式。
  • 展示了运行不同任务的视频,如执行 SQL 语句、运行 Rust 测试等。
阅读 13
0 条评论