微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 VSCode 语言服务器生成控制台输出/日志

如何解决如何从 VSCode 语言服务器生成控制台输出/日志

我一直在使用 VSCode 的示例语言服务器协议代码 (https://github.com/microsoft/vscode-extension-samples/blob/main/lsp-sample/server/src/server.ts) 来制作我自己的自定义自动完成系统。作为系统的一部分,LSP 使用用户迄今为止键入的文本向外部 API 发出请求。但是,我遇到了请求问题,我想将响应打印到控制台。以下是我修改 connection.onCompletion 方法的方式:

connection.onCompletion(
    async (_textDocumentPosition: TextDocumentPositionParams): Promise<CompletionItem[]> => {
        // The pass parameter contains the position of the text document in
        // which code complete got requested. For the example we ignore this
        // info and always provide the same completion items.
        let base_url = BASE_FI_URL
        // Cast to string with '' (instead of string or undefined)
        let value = ''+documents?.get(_textDocumentPosition.textDocument.uri)?.getText()
        let space_index = value.lastIndexOf(" ")
        // Only searches for the text after the most recent space
        let last_word = value.substring(space_index,value.length)
        if(last_word.includes("\`")) {
            last_word = last_word.substring(last_word.lastIndexOf("\`")+1)
            base_url = BASE_DB_URL
        }
        const url: string = base_url+last_word;
        let response: any = []
        
        try {
            response = await axios.get(url);
        } catch (exception) {
            process.stderr.write(`ERROR received from ${url}: ${exception}\n`);
        }
        let names: any = []

        console.log('response: ' + response)

        return names;
    }
);

显然,这只是返回一个空的建议数组,但我希望首先在某处看到带有来自 API 的响应数据的日志输出。我看到帖子建议将 languageServerExample.trace.server属性 package.json认值更改为 verbose,但这对我没有任何作用(或者至少,我看不到)。谁能帮我一把?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。