崇高,改变鼠标悬停时突出显示定义的行为

问题描述 投票:0回答:2

我有一个项目有几个类,它们部分共享函数,而在其他时候函数的代码不同,但使用相同的名称。

将鼠标悬停在函数名称上时,Sublime会突出显示找到该定义的每个文件和行。

在我看来,如果它实际上包括不同亮点属于哪个类会更好。

是否有可能以某种方式编辑它?

假设systems.js包含4个不同的类(1个基数,3个孩子)。我想通过类定义追加或添加显示的字符串(可通过原型获取)。

sublimetext3
2个回答
1
投票

您问题中提到的悬停弹出窗口由Sublime的内部符号索引提供支持,该索引是与用于语法高亮显示您正在编辑的文件的语法定义一起创建的。 Sublime语法系统相当无上下文;它解析代码的结构,但它不包含任何有关它的真实结构信息。

因此,例如,它可以确定getShots是一个函数或方法,因为用于定义它的语法,但它不知道它来自哪个类。

悬停弹出窗口的代码可以在Default/symbol.py中找到(您可以使用PackageResourceViewer来检查它)并将光标下的符号与项目中其他文件中带有该名称的符号的其他位置相关联;它实际上只知道你在弹出窗口中看到的信息;定义该名称的东西的地方以及引用该名称的东西的地方。

所以从某种意义上说,你的问题的答案是否定的;核心崇高无法做到这一点,因为它没有足够的代码智能来解决这类问题;像JavaScript这样的动态语言会加剧这种情况,理论上这些语言在运行时也会发生变化。

其主要原因是因为Sublime可扩展到足以支持字面上的每种编程语言,而不是只关注一两个(例如PhpStorm),因此它没有核心代码来确定所需的信息。

总而言之,由于Sublime确实具有极高的可扩展性,因此可以通过包来利用专门针对某种语言的外部代码来提供适当的信息。

其中两个例子是SublimeCodeIntelLSP。我自己也没有使用它们,因此我不确定它们在您的工作流程中的适合程度。


0
投票

我强烈建议您转换到Visual Studio Code主要是因为sublime是一个编辑器而vs代码是一个IDE。此外,它还为所有语言提供了非常好的扩展支持。我建议你使用jshint,js代码最受欢迎的插件几乎适用于所有流行的编辑器和IDE。但是如果你想和Sublime一起使用,我建议你关注插件:https://www.sitepoint.com/essential-sublime-text-javascript-plugins/

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.