了解rstudioapi包中的getActiveDocumentContext()函数

时间:2017-09-08 10:19:32

标签: r rstudio

我试图理解getActiveDocumentContext()函数应该做什么。当我在我的控制台中运行它时,我获得以下输出,

> getActiveDocumentContext()
Document Context: 
- id:        '#console'
- path:      ''
- contents:  <1 rows>
Document Selection:
- [1, 1] -- [1, 1]: ''

当我阅读与功能

相关的文档时
  

详情

     

返回的选择字段是文档选择对象的列表。   文档选择只是文档范围和文档范围的配对   该范围内的文字。

     

     

包含元素的列表:

     

id文档ID。 path磁盘上文档的路径。   内容文档的内容。选择选择列表。   有关详细信息,请参阅详细信息。

这使我推断返回是指向控制台,路径是空白区域,文档中包含某种文档和文本。

但是,当我在函数内部以调试模式运行此函数时,返回值会有所不同。 enter image description here

这是因为范围不同吗?

1 个答案:

答案 0 :(得分:2)

您可以将getActiveDocumentContext视为提供有关用户光标所在位置的信息(即有焦点的窗格)。

如果用户碰巧将光标放在R控制台而不是源编辑器中,您将获得有关R控制台的信息。这就是为什么你总能看到&#34; console&#34;当你在控制台上运行它时。

它的设计主要是为了帮助加载项,这些加载项通常在当前编辑选项卡上运行和/或在其中进行选择。请参阅此示例,该版本使用getActiveDocumentContext来帮助您撰写降价:https://github.com/ThinkR-open/remedy

如果您在调试时运行getActiveDocumentContext,或者在R控制台上运行,那么您将无法获得有用的结果。您可能会考虑在查询文档上下文之后断开调试器,以便调试器不会将焦点放在控制台中并丢失上下文。