From 418b618363788753c0d9290ead1b666c9f3845e8 Mon Sep 17 00:00:00 2001 From: xlmessage <3240982126@qq.com> Date: Tue, 17 Dec 2024 11:57:41 +0800 Subject: [PATCH] =?UTF-8?q?vscode=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MementoAPI/extension.ts | 43 ++++++++++++++++++++++++++ MementoAPI/package.json | 67 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 MementoAPI/extension.ts create mode 100644 MementoAPI/package.json diff --git a/MementoAPI/extension.ts b/MementoAPI/extension.ts new file mode 100644 index 0000000..cda67fa --- /dev/null +++ b/MementoAPI/extension.ts @@ -0,0 +1,43 @@ +import * as vscode from 'vscode' +export function activate(context: vscode.ExtensionContext) { + console.log('Congratulations, your extension "jokes" is now active!') + let disposable = vscode.commands.registerCommand('extension.saveData', () => { + const myData = 'Hello, VSCode!' + const storageKey = 'myDataKey' + + // 获取全局存储的 Memento 对象 + const globalState = context.globalState + + // 存储数据 + globalState.update(storageKey, myData).then( + () => { + vscode.window.showInformationMessage('Data saved!') + }, + (error) => { + console.error('Failed to save data:', error) + } + ) + }) + + context.subscriptions.push(disposable) + + disposable = vscode.commands.registerCommand('extension.retrieveData', () => { + const storageKey = 'myDataKey' + + // 获取全局存储的 Memento 对象 + const globalState = context.globalState + + // 检索数据 + const myData = globalState.get(storageKey) + + if (myData) { + vscode.window.showInformationMessage(`Retrieved Data: ${myData}`) + } else { + vscode.window.showInformationMessage('No data found.') + } + }) + + context.subscriptions.push(disposable) +} + +export function deactivate() {} diff --git a/MementoAPI/package.json b/MementoAPI/package.json new file mode 100644 index 0000000..8a71637 --- /dev/null +++ b/MementoAPI/package.json @@ -0,0 +1,67 @@ +{ + "name": "jokes", + "displayName": "jokes", + "description": "", + "version": "0.0.1", + "engines": { + "vscode": "^1.95.0" + }, + "categories": [ + "Other" + ], + "activationEvents": [ + "onCommand:extension.saveData", + "onCommand:extension.retrieveData" + ], + "main": "./out/extension.js", + "contributes": { + "commands": [ + { + "command": "extension.saveData", + "title": "Save Data to Memento", + "category": "My Extension" + }, + { + "command": "extension.retrieveData", + "title": "Retrieve Data from Memento", + "category": "My Extension" + } + ], + "keybindings": [ + { + "command": "extension.saveData", + "key": "ctrl+alt+s", + "mac": "cmd+alt+s", + "when": "editorTextFocus" + }, + { + "command": "extension.retrieveData", + "key": "ctrl+alt+r", + "mac": "cmd+alt+r", + "when": "editorTextFocus" + } + ] + }, + "scripts": { + "vscode:prepublish": "npm run compile", + "compile": "tsc -p ./", + "watch": "tsc -watch -p ./", + "pretest": "npm run compile && npm run lint", + "lint": "eslint src", + "test": "vscode-test" + }, + "devDependencies": { + "@types/mocha": "^10.0.9", + "@types/node": "20.x", + "@types/vscode": "^1.95.0", + "@typescript-eslint/eslint-plugin": "^8.10.0", + "@typescript-eslint/parser": "^8.7.0", + "@vscode/test-cli": "^0.0.10", + "@vscode/test-electron": "^2.4.1", + "eslint": "^9.13.0", + "typescript": "^5.6.3" + }, + "dependencies": { + "axios": "^1.7.8" + } +} \ No newline at end of file