我决定尝试开发自己的 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
但它不在那里
考虑到我是新手,我可能只是忽略了一些事情
有时说激活扩展但没有任何反应