typescript VSCode API:workspace.getConfiguration是如何工作的?

dxxyhpgq  于 2023-05-30  发布在  TypeScript
关注(0)|答案(1)|浏览(133)

我在阅读API文档时,不太清楚getConfiguration方法的section参数是如何派生的。例如,我正在查看下面的文件https://github.com/yanxiaodi/vscode-translator-helper/blob/master/src/config.ts,我不知道为什么节参数被提供为“translatorHelper”,当我在GitHub存储库的其他任何地方都找不到翻译器助手时。如果这个问题是微不足道的,或者我在文档中遗漏了一些东西,我很抱歉,但我一直在试图弄清楚为什么上面链接中的示例代码可以工作一段时间。任何帮助将不胜感激。谢谢你!

14ifxucb

14ifxucb1#

最重要的是,translatorHelper位于存储库的package.json中。以下是contributes部分的摘录:

"configuration": {
   "title": "Translator Helper",
   "properties": {
      "translatorHelper.api": {
         "type": "string",
         "default": "google",
         "enum": [
            "google",
            "google-cn"
         ],
etc.....

以及更多设置,即配置。请注意,它们都是translatorHelper.xxxx,因此如果您试图检索这样的设置,您可以用途:

export const getConfiguration = <T>(key: string) => {
  return workspace.getConfiguration('translatorHelper').get<T>(key);
};

其中key参数将是apisourceLanguage等。它们都是translatorHelper.api和类似的。
即使是间接的呼叫

export const getApiConfiguration = () => {
  return getConfiguration<string>('api') ?? 'google';
};

实际上是getConfiguration(someKeyHere)函数的简写。
因此,由于配置在package.json中命名为translatorHelper.something,因此您将使用translatorHelper作为getConfiguration()中的sectionID。在vscode的Settings UI中,它们都将被分组在section header translaorHelper下。例如,如果设置被标识为translatorHelper.other.api,则可以使用translatorHelper.other作为sectionID

相关问题