Fel*_*x C 5 visual-studio-code vscode-extensions
我正在尝试了解扩展激活例程,也许有人可以帮助我。
在文件中package.json有activationEvents节点,我在其中定义了扩展将被激活的时间(例如,当通过 执行命令时onCommand)。查看帮助
从示例扩展的代码文档中,我了解到扩展只会在第一次执行命令时被激活。
当我在扩展中定义多个命令时会发生什么?我会在activate函数中注册所有命令并将它们添加到activationEvents:
"activationEvents": [
"onCommand:extension.testCommand1",
"onCommand:extension.testCommand2",
"onCommand:extension.testCommand3"
],
Run Code Online (Sandbox Code Playgroud)
该activate函数是否只会在第一次执行任何命令时调用一次?或者它会在第一次执行extension.testCommand1, extension.testCommand2and extension.testCommand3(--> 3 次)时调用函数?
我也在编写一个语言服务器,并希望将所有内容都放在同一个扩展名中。这是可能的还是我需要创建两个额外的扩展(客户端和服务器)?
为了回答你的第一个问题,只有当第一个激活事件发生时,它才会被调用一次。如果您有兴趣自己验证这一点,请将激活事件设置为package.json:
"activationEvents": [
"onLanguage:js",
"onLanguage:python",
"onLanguage:ruby"
],
Run Code Online (Sandbox Code Playgroud)
然后在扩展中的激活方法中设置断点,按 F5 开始调试,并通过命令面板将语言模式更改为 js、python 和 ruby。您会看到断点仅在第一次被命中。
关于你的第二个问题,这可能取决于你的语言服务需要做什么。如果您想做像打字稿语言服务一样复杂的事情,您可能两者都需要。如果您想要制作一些可以 lints、提供悬停提示或更多功能的东西,但又不像打字稿那么复杂,您可以通过一个扩展来实现。
我个人正在遵循我的语言扩展的 php 服务示例。团队做得很好,功能分离良好且易于理解。您可以在此处查看 php 服务的源代码。
| 归档时间: |
|
| 查看次数: |
2045 次 |
| 最近记录: |