位置和不清楚的参数

问题描述 投票:1回答:1

位置的可选参数似乎是重复的信息:

  • 偏移量/长度定义所选内容的起始字符和结束字符
  • 开始/结束行/列似乎用于同一件事

但是,开始/结束行/列似乎不起作用:位置位于

|project://file.java|(0,100,<1,1>,<1,1>)

和位置

|project://file.java|(0,100,<9,2>,<17,23>)

返回两个相同的内容(使用例如readFile()显示时)。

这导致两个问题:

  • 如果出于任何实际原因未使用开始/结束行/列,则有什么用?

  • 当仅知道开始/结束行/列而不知道偏移量/长度时,是否有一种构造位置的方法? (不访问文件)

我找到了与此问题相关的问题(How to construct a location?),但在那里给出的答案并未对此作出解释。

rascal
1个回答
2
投票
  1. 偏移量/长度和开始/结束信息确实是相同的信息,但是要从偏移量/长度信息中重建行/列信息,您始终必须读取整个文件。由于某些编辑器仅支持行/列索引,因此,我们选择在可能的情况下包括这些信息,而不必遍历整个文件并计算行数以跳转到所选内容。同样,该代码将取决于OS /文本文件编码。
  2. loc表示不允许在没有设计偏移量/长度信息的情况下设置行/列,因为我们至少需要Eclipse编辑器和Emacs的API的偏移量/长度。行/列的内容是附加的优化/缓存,而不是相反的。
  3. 如果您确实需要暂时在loc中表示行/列信息,我建议使用查询参数,例如?startLine=12&endLine=24。系统将存储信息,但不会解释或使用它。
© www.soinside.com 2019 - 2024. All rights reserved.