小编Yaf*_*imK的帖子

从js文件添加自动完成/ Intellisense,而无需在vs代码中导入

我有一个JS SDK,用户不使用require来将其加载到他们的JS脚本中。我想在VSCode中提供SDK的智能感知/自动完成功能,而无需用户执行任何困难的操作,除了安装扩展程序或在jsconfig中设置简单的内容。

他们在工作空间以外的其他路径中都有一个js模块和SDK,我检查了以下解决方案:

  1. 片段-但不支持自动完成对象属性
  2. 自定义类型定义-因为它不在工作空间中。它不会加载它(特别是因为脚本没有在执行requireor import语句)
  3. 语言服务器-似乎超过顶峰

有什么建议么?


按照此如何将Intellisense文件导入vsCode(Visual Studio Code)的操作,我已经完成了以下操作:

  1. 向我添加了以下内容,jsconfig.js但完全没有影响自动完成功能:

    "typeAcquisition": {
    "enable": true,
    "include": [
        "C:\\test.d.ts"
    ]
    
    Run Code Online (Sandbox Code Playgroud)

    }

  2. 一旦添加/// <reference path="C:\test.d.ts" />,就解决了

有没有一种方法可以使用扩展程序自动执行此操作?还是完全不需要参考路径?

javascript visual-studio-code vscode-extensions

5
推荐指数
0
解决办法
631
查看次数

由于使用无符号整数,可变参数模板 C++ 上未解决的外部符号错误

我已经用可变参数模板声明了一个简单的函数。

template<typename ...Args>
void Log(const LogLevel level, const char * format, Args ...args);
Run Code Online (Sandbox Code Playgroud)

在以下列方式调用它时 -

Log(LogLevel::debug,
        R"(starting x, %d pending call for "%s" with param "%s")",
        id, first.c_str(),
       second.c_str())
Run Code Online (Sandbox Code Playgroud)

其中变量类型是:id( unsigned int), first( std::string) , second( std::string)

我收到以下错误:

Error   LNK2001 unresolved external symbol "public: void __cdecl Log<unsigned int,char const *,char const *>(enum LogLevel,char const *,unsigned int,char const *,char const *)" 
Run Code Online (Sandbox Code Playgroud)

当我unsigned int从函数调用中删除参数时 - 错误消失了。AFAIK 可变参数模板确实支持不同的类型......那我错过了什么?

c++ templates variadic-templates c++11

1
推荐指数
1
解决办法
686
查看次数