VS 代码扩展函数未被调用

问题描述 投票:0回答:1

我决定尝试开发自己的 VS Code 扩展

TypeScript/Angular 的代码片段

我有我的第一个片段 Forloop.snippet

const ForLoopSnippet = 'for (let {{iterator}} = {{start}}; {{iterator}} <= {{end}}; {{iterator}} += {{step}}){//code}'


我有我的扩展.ts

import * as vscode from 'vscode';
import * as fs from 'fs';

const forLoopSnippetFilePath = vscode.Uri.file('../Src/typescript/Forloop.snippet');
const forLoopSnippet = fs.readFileSync(forLoopSnippetFilePath.fsPath, 'utf8');

export function activate(context: vscode.ExtensionContext) {
    
    console.log("Activating for loop snippet")
    let disposable = vscode.commands.registerCommand('extension.insertForLoopSnippet', () => {
        const editor = vscode.window.activeTextEditor;
        if (editor) {
            editor.insertSnippet(new vscode.SnippetString(forLoopSnippet));
            console.log("inserted")
        }
    });

    context.subscriptions.push(disposable);
}

export function deactivate() {}

和我的 package.json

{
  "name": "angulartypescriptexctention",
  "version": "1.0.0",
  "description": "",
  "main": "./Src/extension.ts",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "vscode": "^1.1.37"
  },
  "devDependencies": {
    "@types/node": "^20.12.7"
  },
  "contributes": {
    "keybindings": [
      {
        "command": "extension.insertForLoopSnippet",
        "key": "ctrl+shift+f",
        "mac": "cmd+shift+f",
        "when": "editorTextFocus"
      }
    ]
  }
}

我已经运行了扩展程序,根据日志,它被激活,但片段从未弹出

我尝试了很多组合键(ctrl+shift+f、ctrl+shift+l、ctrl+shift+q、ctrl+shift+o 等)

还尝试使用 ctrl+shift+p 调用它并查找 insertForLoopSnippet

但它不在那里

考虑到我是新手,我可能只是忽略了一些事情

有时说激活扩展但没有任何反应

typescript vscode-extensions vscode-snippets
1个回答
0
投票

我已经开始使用 json 作为片段的垫子,现在它甚至不需要注册事件就可以工作

New file structure

Working code snips

© www.soinside.com 2019 - 2024. All rights reserved.