【问题标题】:Detecting text input to VSCode activeTextEditor检测到 VSCode activeTextEditor 的文本输入
【发布时间】:2019-04-15 20:39:33
【问题描述】:

我正在为我的学校开源项目开发 VScode 扩展。 我想知道有没有办法检测到activeTextEditor 窗口的文本输入?

例如,如果有人要粘贴一个字符串,我可以抓取检测到类似于 JavaScript 中的 OnInput 的字符串吗?设置将是拼写检查或替换命令,类似于 Visual Studios 的智能感知,您键入 prop +tab +tab 它会自动生成代码。

如果您听说过一些可行的方法,请告诉我。谢谢

【问题讨论】:

    标签: javascript input visual-studio-code electron vscode-extensions


    【解决方案1】:

    您要查找的 api 是 vscode.workspace.onDidChangeTextDocument。每当 VS Code 知道文档发生更改时,都会触发此事件。它使用包含所有文本更改的 TextDocumentChangeEvent 对象触发:

    import * as vscode from 'vscode'
    
    
    export function activate() {
        vscode.workspace.onDidChangeTextDocument(changeEvent => {
            console.log(`Did change: ${changeEvent.document.uri}`);
    
            for (const change of changeEvent.contentChanges) {
                 console.log(change.range); // range of text being replaced
                 console.log(change.text); // text replacement
            }
       });
    } 
    

    如果您只关心活动编辑器文本的更改,只需检查changeEvent.document 是否与活动编辑器的document 匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2018-12-08
      • 2011-10-27
      相关资源
      最近更新 更多