- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图通过将语言定义添加到 VSC 来使 VSC 显示包含 DSL(域特定语言)的文档的结构。该结构应出现在 VSC“大纲 View ”中,其中显示已安装语言的所有文档结构(如 json、markdown、html 等)
DSL 非常简单,只有一些大写字母的元素应该出现在大纲中并保持层次结构:
WORD xxx
GRAMMAR xxx
STRUCTURE xxx xxx
xxx xxx xxx xxx
MEANING xxx xxx xxx
SUB_MEANING xxx xxx xxx xxx
SUB_SUB_MEANING xxx xxx xxx
最佳答案
你有几种方法可以解决这个问题,你可以:
vscode-languageclient
已经开箱即用地实现了如何处理服务器返回的信息。包的LanguageClient
类(class)。 vscode-languageclient
处理包的
LanguageClient
类(class)!
initialize
方法,您将收到带有 textDocument.documentSymbol.hierarchicalDocumentSymbolSupport == true
的 InitializeParams (VSCode 确实支持这个)然后你返回 DocumentSymbol[]
(它具有 children
属性,从而为您的客户提供符号树)。 SymbolInformation[]
,这是一个简单的符号列表。 range
DocumentSymbol
的属性在显示符号树时考虑(在大纲 View 中)。你的 child 符号'
range
必须包含在其 parent 的
range
中或 VSCode 将不会在大纲 View 中显示任何符号,即使您的符号树结构和
selectionRange
s 是正确的。
range
是定义范围(符号的整个定义,例如对于 typescript 类,它以关键字
class
开始,以结束
}
结束)和
selectionRange
通常只是符号的标记范围(但根据规范,它还可以包括文档注释 block 和可见性修饰符,这是实现者的选择)。
class MyClass {
/**
* Some method documentation
*/
private function myFunction(param1) {
console.log(param1);
}
}
在这种情况下,范围将是
rangeOfClass = {
"start": { "line": 0, "character": 0 },
"end": { "line": 7, "character": 1 }
};
rangeOfMethod = {
"start": { "line": 4, "character": 2 },
"end": { "line": 6, "character": 3 }
};
并且 selectionRange 可能只是符号的名称
selectionRangeOfClass = {
"start": { "line": 0, "character": 6 },
"end": { "line": 0, "character": 13 }
};
selectionRangeOfMethod = {
"start": { "line": 4, "character": 19 },
"end": { "line": 4, "character": 29 }
};
或者它可以包括从文档、关键字和修饰符到符号的末尾
selectionRangeOfClass = {
"start": { "line": 0, "character": 0 },
"end": { "line": 0, "character": 13 }
};
selectionRangeOfMethod = {
"start": { "line": 1, "character": 2 },
"end": { "line": 4, "character": 29 }
};
有了这个,你会得到一个很好的大纲:
关于visual-studio-code - 使 VS Code 解析并显示一种新语言的结构到 VSC 的轮廓区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55846146/
我在 VS2010 控制台应用程序中使用二维数组。我正在这样分配数组: Thing::Thing(int _n, bool _control){ m = _n; control = _
也许这个问题很愚蠢,但我真的不知道发生了什么。在我的 .eslintrc 中,我添加了以下规则: "quotes": [1, "single"] 每次我保存文件时,它都会将每个“更改为'。这很好。但是
我是新手,仍在尝试弄清楚如何配置我的开发环境。我在 Visual Studio Code 中使用 touch 命令时遇到错误。我可以使用 mkdir 创建目录,但无法创建 .php 文件。这是我收到的
这个人: virtual phTreeClass* GetTreeClass() const { return (phTreeClass*)m_entity_class; } 调用时,程序因访问冲突而
我想阅读 -Zm135 Visual Studio 2010 命令行选项的详细说明。简而言之,这是在超过 PCH 的虚拟内存时设置的选项。另外,-Zm 字母的含义是什么? 最佳答案 它指定可用于预编译
我正在尝试在我自己的调试器之上实现 NodeJS 调试 API 服务器。我想使用任何能够调试 Node 的客户端来通过我自己的调试器进行调试。我使用 Visual Studio Code 作为测试调试
import "introcs"; export function main(): void { print ("Intro"); print ("a"); print ("b
你使用什么技术来快速编译和启动 VSC++ 项目? 对我们来说,尤其是所有dll的加载需要很长时间。有没有办法加快速度?该项目加载了大量的 .dll,其中一些特别慢。 现在我们为我们的项目使用 uni
在 Chrome 和 FireFox 中检查页面时,body 元素和我在 DevTools 中看到的其他一些元素上出现的 vsc-initialized 类是什么? 我还在站点周围的问题和答案中粘贴的
我最近尝试启动 VSC,但没有出现任何问题 我等了大约 15 分钟,但仍然没有任何反应,所以我尝试使用 CMD 运行它,然后我发现我得到了一些无效 token (我没有 Node.js)这是我尝试运行
在 Visual Studio Code (VSC) 中,我想当场选择我打开的文件夹是替换当前窗口还是打开新窗口。我已经知道这个存在: `--new-window --reuse-window` CL
刚开始出现以下错误,当我在 Visual Studio Code 中打开 Powershell 脚本时。直到昨天它工作正常。这是错误: The language service could not b
试图弄清楚如何为特定命令创建键绑定(bind)。 我可以在调色板中看到该命令,但它没有绑定(bind),所以我在 keybindings.json 中看不到它。 有什么方法可以记录 VSC 中正在执行
我写了一些 python 脚本,在大多数情况下,我对自动格式化程序的工作方式完全满意。但有时我想保持垂直一致性或逻辑上将代码拆分成行。 # autoformatter removes all lead
我正在阅读 vsc for python 教程,我读了这个“在 Windows 上,确保 Python 解释器的位置(即安装它的文件夹,如 c:\python32)包含在 PATH 环境变量中。您可以
我想定义一个键盘快捷键来打开特定文件(在本例中是我的待办事项文件)。 我不知道在键盘设置中是否有我可以使用的命令。 感谢您的帮助。 最佳答案 依赖于在 Tasks 中启动 code 命令的解决方案感觉
使用 Visual Studio Code (v1.16.0),在为所需模块之一安装 Typescript typings 后,如何刷新“问题” Pane 中的错误? (编辑:在后台加载或更新依赖模块
在 Visual Studio Code 中,我试图在光标所在的位置突出显示整列。与突出显示行的方式相同,我也希望突出显示该列。 它存在于Atom中,如下图,为an independant packa
我在 VSC 中工作并编写 nodejs,我在长终端输出中遇到滚动问题,如果我使用 slider ,在终端右侧滚动太多行太快,所以,问题是,我们有集成终端中的平滑滚动选项可轻松读取输出并逐行使用箭头,
Code OSS 似乎与 VSC 非常相似或完全相同。然后我被告知在 Arch wiki 中安装 VSC 的 bin 版本。 有什么区别吗? 最佳答案 Code OSS 是微软 Visual Stud
我是一名优秀的程序员,十分优秀!