我试图理解getActiveDocumentContext()函数应该做什么。当我在我的控制台中运行它时,我获得以下输出,
> getActiveDocumentContext()
Document Context:
- id: '#console'
- path: ''
- contents: <1 rows>
Document Selection:
- [1, 1] -- [1, 1]: ''
当我阅读与功能
相关的文档时详情
返回的选择字段是文档选择对象的列表。 文档选择只是文档范围和文档范围的配对 该范围内的文字。
值
包含元素的列表:
id文档ID。 path磁盘上文档的路径。 内容文档的内容。选择选择列表。 有关详细信息,请参阅详细信息。
这使我推断返回是指向控制台,路径是空白区域,文档中包含某种文档和文本。
但是,当我在函数内部以调试模式运行此函数时,返回值会有所不同。
这是因为范围不同吗?
答案 0 :(得分:2)
您可以将getActiveDocumentContext
视为提供有关用户光标所在位置的信息(即有焦点的窗格)。
如果用户碰巧将光标放在R控制台而不是源编辑器中,您将获得有关R控制台的信息。这就是为什么你总能看到&#34; console&#34;当你在控制台上运行它时。
它的设计主要是为了帮助加载项,这些加载项通常在当前编辑选项卡上运行和/或在其中进行选择。请参阅此示例,该版本使用getActiveDocumentContext
来帮助您撰写降价:https://github.com/ThinkR-open/remedy
如果您在调试时运行getActiveDocumentContext
,或者在R控制台上运行,那么您将无法获得有用的结果。您可能会考虑在查询文档上下文之后断开调试器,以便调试器不会将焦点放在控制台中并丢失上下文。