Watermelon VS Code 扩展使用教程
1. 项目的目录结构及介绍
Watermelon VS Code 扩展的目录结构如下:
watermelon-vscode/
├── .github/
├── assets/
├── dist/
├── docs/
├── scripts/
├── src/
│ ├── commands/
│ ├── components/
│ ├── context/
│ ├── services/
│ ├── utils/
│ ├── extension.ts
│ └── package.json
├── .gitignore
├── .prettierrc
├── CHANGELOG.md
├── LICENSE
├── README.md
├── package.json
└── tsconfig.json
目录介绍
- .github: 包含 GitHub 相关的配置文件,如 issue 模板、PR 模板等。
- assets: 存放项目所需的静态资源文件,如图标、图片等。
- dist: 编译后的输出目录,包含最终的扩展文件。
- docs: 项目文档目录,包含使用说明、API 文档等。
- scripts: 包含项目构建和部署的脚本文件。
- src: 源代码目录,包含扩展的主要功能实现。
- commands: 包含扩展的命令实现。
- components: 包含扩展的用户界面组件。
- context: 包含上下文相关的逻辑。
- services: 包含服务层逻辑,如数据获取、API 调用等。
- utils: 包含工具函数和辅助类。
- extension.ts: 扩展的入口文件。
- package.json: 项目的配置文件,包含依赖、脚本、扩展信息等。
- .gitignore: Git 忽略文件配置。
- .prettierrc: Prettier 代码格式化配置。
- CHANGELOG.md: 版本变更记录。
- LICENSE: 项目许可证。
- README.md: 项目说明文档。
- package.json: 项目的配置文件,包含依赖、脚本、扩展信息等。
- tsconfig.json: TypeScript 配置文件。
2. 项目的启动文件介绍
项目的启动文件是 src/extension.ts
,它是扩展的入口点。该文件负责初始化扩展并注册命令。
import * as vscode from 'vscode';
import { registerCommands } from './commands';
export function activate(context: vscode.ExtensionContext) {
registerCommands(context);
}
export function deactivate() {}
启动文件功能
- activate: 当扩展被激活时调用,注册所有命令。
- deactivate: 当扩展被停用时调用,进行清理工作。
3. 项目的配置文件介绍
项目的配置文件是 package.json
,它包含了扩展的所有配置信息,如名称、版本、依赖、命令等。
{
"name": "watermelon-vscode",
"displayName": "Watermelon",
"version": "1.0.0",
"description": "A code archeology toolbox on VS Code",
"publisher": "watermelontools",
"engines": {
"vscode": "^1.63.0"
},
"categories": [
"Other"
],
"activationEvents": [
"onCommand:watermelon.getCodeContext"
],
"main": "./dist/extension.js",
"contributes": {
"commands": [
{
"command": "watermelon.getCodeContext",
"title": "Get Code Context"
}
]
},
"scripts": {
"vscode:prepublish": "npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"pretest": "npm run compile && npm run lint",
"lint": "eslint src --ext ts",
"test": "node ./out/test/runTest.js"
},
"devDependencies": {
"@types/vscode": "^1.63.0",
"@types/glob": "^7.1.4",
"@types/mocha": "^9.0.0",
"@types/node": "14.x",