TypeScript [navtree] 只有一个nameSpan被列出,用于多个接口声明,

m3eecexj  于 4个月前  发布在  TypeScript
关注(0)|答案(3)|浏览(43)

TypeScript版本: 3.7.2
搜索词:

  • navtree
  • tsserver
    代码

对于TypeScript:

interface IFoo2 {
    foo: any;
}

interface IFoo2 {
    foo2: any;
}

1.运行一个 navTree 请求

错误:

返回两个span,但只有一个nameSpan

{
    "text": "<global>",
    "kind": "script",
    "kindModifiers": "",
    "spans": [
        {
            "start": {
                "line": 1,
                "offset": 1
            },
            "end": {
                "line": 8,
                "offset": 2
            }
        }
    ],
    "childItems": [
        {
            "text": "IFoo2",
            "kind": "interface",
            "kindModifiers": "",
            "spans": [
                {
                    "start": {
                        "line": 1,
                        "offset": 1
                    },
                    "end": {
                        "line": 3,
                        "offset": 2
                    }
                },
                {
                    "start": {
                        "line": 5,
                        "offset": 1
                    },
                    "end": {
                        "line": 7,
                        "offset": 2
                    }
                }
            ],
            "nameSpan": {
                "start": {
                    "line": 1,
                    "offset": 11
                },
                "end": {
                    "line": 1,
                    "offset": 16
                }
            },
            ...
        }
    ]
}

对于VS Code的工具,我们希望有一个所有namespans的列表

dzhpxtsq

dzhpxtsq1#

@mjbvz 我想语言服务是按树形结构而不是语法结构来表示的,所以我们为 IFoo2 提供了一个带有两个子节点的单个节点,每个成员一个。当前协议只允许每个节点有一个 nameSpan。你提议修改协议使 nameSpan 成为数组吗?(或者说,添加一个 nameSpans 属性?)

gwbalxhn

gwbalxhn2#

@jrieken 了解关于为什么VS Code需要这些信息的原因。

lvjbypge

lvjbypge3#

我们需要这个来突出显示预览/转到符号时的正确范围。我不知道打破协议更改的影响是什么。

相关问题