ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Ark,一个 R 内核

Ark 是一个用于 Jupyter 应用的 R 内核。它旨在作为 R 与 Positron IDE 之间的接口,并兼容所有实现了 Jupyter 协议的前端。

Ark 旨在提供一套完整的、可复用且可互操作的工具,用于实现 R 的 IDE:

  • 它是一个 Jupyter 内核,提供 R 与前端之间的结构化交互(输入和输出)。

  • 它是一个 LSP 服务器,支持智能感知功能,例如补全、跳转至定义、查找引用、诊断等。它还具有一些格式化功能,我们计划在未来逐步开发。

  • 它是一个用于 R 函数高级单步调试的 DAP 服务器。它管理源引用,必要时即时创建,并与 Jupyter 内核紧密集成,以透明地单步执行 R 代码并检查局部变量。注意:目前尚不支持断点,但你可以使用 debug()debugonce()browser() 进入调试器。

LSP 和 DAP 功能目前仅在 Positron 中可用,但未来将向其他前端开放。

用法

在 Positron 中

在不进行任何安装或配置的情况下,尝试 Ark 最简单的方法是在 Positron 中运行它。目前,这是使用由我们的 LSP 和 DAP 提供的 Ark 更高级功能的唯一实用方式;随着我们继续对 Ark 进行投入,这一情况将在未来发生改变。

在 Jupyter 应用中

将 Ark 的发布版本]下载到您选择的位置,例如 macOS 或 Linux 上的 /usr/local/bin/ark。然后使用以下命令安装 Jupyter 内核规范文件:

$ ark --install

[!NOTE] Ark 目前尚未进行签名和公证,因此在 macOS 上你可能需要前往 System Settings -> Privacy and Security -> Click Allow Anyways for ark,否则 macOS 将阻止你运行它。我们正在努力改进这一点。使用 Positron 内置的 ark 版本时,此情况不适用。

Ark 现在应该可以在 jupyter 应用程序中使用,例如在 Jupyter Lab 中:

或者在命令行中(如果已安装 Jupyter Console):

$ jupyter console --kernel=ark

报告问题

我们目前使用 Positron 的问题跟踪器。请在 https://github.com/posit-dev/positron/issues 报告错误和功能请求。

相关项目

  • Positron,一个下一代数据科学 IDE。Positron 中的 R 语言包通过 Ark 内核与 R 代码的交互式求值以及输出和图表的收集进行接口交互。它还连接到 Ark LSP 以提供智能感知功能,如补全、跳转定义、查找引用等,并连接到 Ark DAP 以实现透明调试。

  • IRKernel,一个主要用 R 本身编写的 R 的 Jupyter 内核。IRkernel 是一个可以从 CRAN 轻松安装的 R 包,它提供了与 R MarkdownQuarto 类似的 R 集成级别。由于我们对 Ark 的主要目标是除了 Notebook 模式外还能在 Console 模式下使用,我们将其实现为 R 的原生前端。Ark 原生绑定到 R 的导出 C API,该 API 旨在用于 RStudio 等前端,提供了与在终端或 RStudio 中运行 R 非常接近的体验。

  • languageserver,一个为 R 实现 LSP 协议 的服务器,主要用 R 本身编写。我们决定用 Rust 编写自己的 LSP,原因有二。最初,我们需要与 Jupyter 内核紧密集成,以基于当前 R 会话的状态提供内省功能。从长远来看,我们计划转向对 R 代码进行复杂的静态分析。得益于 Tower-LSP 等框架,以及 Rust Analyzer 作者贡献的用于静态分析和增量计算的库,Rust 生态系统是构建强大语言服务器的绝佳之地。

  • vscDebugger,一个为 R 实现 DAP 协议 的服务器,同样作为 R 包用 R 编写。相比之下,我们的 DAP 服务器与我们的 Jupyter 内核紧密集成。这使得能够与当前正在运行的 R 会话无缝集成,并随时开始调试,无需任何前置步骤。

行为准则

请注意,本项目发布时附带了 贡献者行为准则。参与 本项目即表示您同意遵守其条款。

许可证

版权所有 (C) Posit Software, PBC。保留所有权利。

Ark 依据 MIT 许可证 授权。