位置和参数不明

Location and unclear parameters

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

但是,begin/end line/column 似乎不起作用:

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

位置

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

return 两者内容相同(当使用例如 readFile() 显示时)。

这引出了两个问题:

我找到了这个问题的相关问题(How to construct a location?),但是那里给出的答案并没有解释这一点。

  1. offset/length 和 begin/end 信息确实是相同的信息,但是要从 offset/length 信息重建 line/column 信息,您总是必须读取整个文件。因为一些编辑器只支持 line/column 索引,我们选择尽可能包含信息,避免遍历整个文件和计算行数以跳转到一个选择。此外,该代码将 OS/text 文件编码相关。
  2. loc 表示不允许在没有 offset/length 信息的情况下设置 line/column,因为我们至少需要 offset/length API例如 Eclipse 编辑器和 Emacs。 line/column 内容是额外的 optimization/caching 而不是相反。
  3. 如果您确实需要在 loc 中临时表示 line/column 信息,我建议使用 ?startLine=12&endLine=24 等查询参数。系统将存储信息但不会解释或使用它。