vscode-remote-workspace 项目教程
1. 项目的目录结构及介绍
vscode-remote-workspace/
├── .github/
│ └── workflows/
├── assets/
├── dist/
├── examples/
├── scripts/
├── src/
│ ├── adapters/
│ ├── api/
│ ├── commands/
│ ├── extension.ts
│ ├── index.ts
│ ├── protocols/
│ ├── providers/
│ ├── services/
│ ├── types/
│ └── utils/
├── test/
├── .gitignore
├── .npmrc
├── .prettierrc
├── CHANGELOG.md
├── LICENSE
├── package.json
├── README.md
├── tsconfig.json
└── webpack.config.js
- .github/workflows: 包含GitHub Actions的工作流配置文件。
- assets: 项目资源文件。
- dist: 编译后的输出目录。
- examples: 示例配置文件。
- scripts: 项目脚本文件。
- src: 源代码目录。
- adapters: 适配器代码。
- api: API接口代码。
- commands: 命令代码。
- extension.ts: 扩展入口文件。
- index.ts: 主入口文件。
- protocols: 协议处理代码。
- providers: 提供者代码。
- services: 服务代码。
- types: 类型定义文件。
- utils: 工具函数代码。
- test: 测试代码目录。
- .gitignore: Git忽略文件配置。
- .npmrc: npm配置文件。
- .prettierrc: Prettier代码格式化配置。
- CHANGELOG.md: 变更日志。
- LICENSE: 许可证文件。
- package.json: 项目依赖和脚本配置。
- README.md: 项目说明文档。
- tsconfig.json: TypeScript配置文件。
- webpack.config.js: Webpack配置文件。
2. 项目的启动文件介绍
项目的启动文件是 src/extension.ts
,这是Visual Studio Code扩展的入口点。它负责初始化扩展并注册所有命令和事件。
import * as vscode from 'vscode';
import { registerCommands } from './commands';
import { registerFileSystemProviders } from './providers';
export function activate(context: vscode.ExtensionContext) {
registerCommands(context);
registerFileSystemProviders(context);
}
export function deactivate() {
// 清理资源
}
3. 项目的配置文件介绍
项目的配置文件主要是 package.json
,它包含了项目的依赖、脚本、命令和其他元数据。
{
"name": "vscode-remote-workspace",
"displayName": "Remote Workspace",
"description": "Multi protocol support for handling remote files like local ones",
"version": "0.21.0",
"publisher": "mkloubert",
"engines": {
"vscode": "^1.52.0"
},
"categories": [
"Other"
],
"activationEvents": [
"onCommand:remoteWorkspace.executeRemoteCommand",
"onCommand:remoteWorkspace.openURI",
"onCommand:remoteWorkspace.receiveWorkspaceURI",
"onCommand:remoteWorkspace.resetRemoteCommandHistory",
"onCommand:remoteWorkspace.sendWorkspaceURI"
],
"main": "./dist/extension.js",
"contributes": {
"commands": [
{
"command": "remoteWorkspace.executeRemoteCommand",
"title": "Remote Workspace: Execute Remote Command"
},
{
"command": "remoteWorkspace.openURI",
"title": "Remote Workspace: Open URI"
},
{
"command": "remoteWorkspace.receiveWorkspaceURI",
"title": "Remote Workspace: Receive Remote URI"
},
{
"command": "remoteWorkspace.resetRemoteCommandHistory",
"title": "Remote Workspace: Reset Remote Command History"
},
{
"command": "remoteWorkspace.sendWorkspaceURI",
"title": "Remote Workspace: Share Remote