首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >诊断报告的计算范围

诊断报告的计算范围
EN

Stack Overflow用户
提问于 2021-07-19 20:19:51
回答 2查看 41关注 0票数 0

我有一个JSON

代码语言:javascript
复制
{
  "components": [
    "component1",
    "component2",
    "component3"
  ],
  "validFrom": "someDate"
}

我想计算VSCode的Range,这样我就可以在我的分机中报告Diagnostics

我如何计算范围,例如对于"component1"?一些实用函数应该返回类似(startLine: 3, startCharacter: 5, endLine: 3, endCharacter: 5 + component1.length)的内容。

EN

回答 2

Stack Overflow用户

发布于 2021-07-21 14:58:10

使用jsonc-parser,VS Code本身也使用它来解析JSON内容,您可以解析文档并获得元素的范围。

此示例演示如何获取"component1"的范围

代码语言:javascript
复制
import { findNodeAtLocation, parseTree } from "jsonc-parser";
...
//Parse JSON of a TextDocument
const rootNode = parseTree(textDocument.getText());
// Find first element of the "components" array
const firstComponent = findNodeAtLocation(rootNode, ["components", 0]);
const start = textDocument.positionAt(firstComponent.offset);
const end = textDocument.positionAt(firstComponent.offset + firstComponent.length)
const range = new Range(start, end);

(请注意:我跳过了对undefined的任何检查)

票数 1
EN

Stack Overflow用户

发布于 2021-07-20 14:48:14

定位信息通常由解析器提供。它确定输入中的各个令牌及其位置。然后,这可以用于生成用于各种目的(代码完成、错误诊断、编辑操作等)的Mongo值范围。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68440398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档