2021 年 11 月 8 日,微软宣布在 VS Code 中加入 Notebook APIs ,以支持自定义 Notebooks 功能,且将大力支持 VS Code 中 Notebook 的生态发展。
Notebook 是一种混合文档,包含 REPL(交互式应用,可以编写几行代码,并立即执行代码查看输出)功能和 Markdown 元素(如文本、图像、数学公式等),这些内容以模块的形式混合在一起,可以随便调换顺序,不会相互影响。
目前最流行的 Notebook 是 Jupyter Notebook,它在数据科学社区中被广泛使用,具有丰富的 Python 支持。Jupyter Notebook 也支持其他语言,如 Julia 或 R,通过 Jupyter 内核,程序遵循特定的协议在 Notebook 上运行代码。
VS Code 已经支持 Jupyter Notebook 好几年了,不过之前 VS Code 中的 Jupyter Notebook 支持完全来自 Jupyter 扩展 ,相当于在一个独立的网页里面运行,跟 VS Code 其他组件或扩展没什么交互。
Notebooks 加入核心功能!
近日, VS Code 核心加入了对本地 Notebook 的支持:在 VS Code 中提供了 Notebook API,任何人都可以制作支持自定义语言和丰富输出的 VS Code Notebook 扩展,这些 Notebook 扩展开发的过程跟与创作其他扩展差不多,而且可以跟其他的扩展发生交互。
VS Code 开发团队在审查 Notebook API 的过程中已经开发了很多自定义的 Notebook 应用,比如:
GitHub Issues Notebook(Github 问题笔记本)
这个 Notebook 正在帮助 VS Code 团队对 GitHub 的数千个问题进行分类和组织,它可以一次检查多个存储库。
GitHub Issues Notebook 支持使用 “找到所有标记为 bug
且分配给我的 Issues ” 这种查询方法,一次性查找所有符合条件的 Issues ,可谓是非常方便了。
GitHub Issues Notebook 在 VS Code Marketplace 上供所有人使用,可以通过安装扩展来试用。先为 Notebook 创建一个扩展名为 .github-issues
的文件: my-notebook.github-issues
,然后创建查询,例如:
$repo=repo:microsoft/vscode-github-issue-notebooks $repo is:open no:assignee
用于创建查询的 Notebook 语言 github-issues
和 GitHub.com
上使用的语法几乎相同,且包含一项附加功能:允许创建变量,并在任何其他单元格中使用。
点此查看 GitHub Issues Notebook 源代码 。
REST Book
REST Book 允许在 Notebook 中进行 HTTP 调用,还可以多次调用并在一页上比较结果。
可以在 VS Code 安装 REST Book 扩展,创建带有 .restbook
结尾的文件,然后执行任何 HTTP 查询,例如GET github.com
.
点此查看 REST Book 的源代码 。
现在,所有用户都可以使用 VS Code Notebook UI 来创建这些类似 REPL 的 Notebook 体验,无需设计和维护 UI,只需专注于功能设计。关于构建自定义 Notebook 的教程可点此查看。
猜你喜欢: