VSCode SQLTools 插件使用教程
项目目录结构及介绍
VSCode SQLTools 插件的 GitHub 仓库地址为:https://github.com/mtxr/vscode-sqltools。以下是该项目的目录结构及其主要文件的介绍:
vscode-sqltools/
├── .github/
│ └── workflows/
├── assets/
├── docs/
├── drivers/
├── resources/
├── scripts/
├── src/
│ ├── commands/
│ ├── connection/
│ ├── core/
│ ├── extension.ts
│ ├── icons/
│ ├── languages/
│ ├── providers/
│ ├── ui/
│ └── utils/
├── test/
├── .gitignore
├── .vscodeignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── package.json
├── README.md
└── tsconfig.json
- .github/workflows: 包含 GitHub Actions 的工作流配置文件。
- assets: 包含项目所需的静态资源文件。
- docs: 包含项目的文档文件。
- drivers: 包含不同数据库驱动的实现代码。
- resources: 包含项目所需的资源文件。
- scripts: 包含项目的脚本文件。
- src: 包含项目的主要源代码。
- commands: 包含命令相关的代码。
- connection: 包含数据库连接相关的代码。
- core: 包含核心功能的代码。
- extension.ts: 项目的入口文件。
- icons: 包含图标文件。
- languages: 包含语言支持相关的代码。
- providers: 包含提供者相关的代码。
- ui: 包含用户界面相关的代码。
- utils: 包含工具函数。
- test: 包含项目的测试代码。
- .gitignore: Git 忽略文件配置。
- .vscodeignore: VSCode 忽略文件配置。
- CHANGELOG.md: 项目更新日志。
- CONTRIBUTING.md: 贡献指南。
- LICENSE: 项目许可证。
- package.json: 项目依赖和配置文件。
- README.md: 项目说明文档。
- tsconfig.json: TypeScript 配置文件。
项目的启动文件介绍
项目的启动文件是 src/extension.ts
。这个文件是 VSCode SQLTools 插件的入口点,负责初始化插件并注册各种命令和功能。以下是 extension.ts
文件的主要内容:
import * as vscode from 'vscode';
import { SqlToolsServerClient } from './languageservice/serviceclient';
import { Commands } from './commands';
import { ConnectionManager } from './connection';
import { QueryHistoryProvider } from './providers/queryHistoryProvider';
import { QueryResultsProvider } from './providers/queryResultsProvider';
import { ConnectionsTreeDataProvider } from './providers/connectionsTreeDataProvider';
import { Logger } from './utils/logger';
export function activate(context: vscode.ExtensionContext) {
Logger.init(context);
const sqlToolsServerClient = new SqlToolsServerClient();
const connectionManager = new ConnectionManager(sqlToolsServerClient);
const commands = new Commands(connectionManager);
const queryHistoryProvider = new QueryHistoryProvider(context);
const queryResultsProvider = new QueryResultsProvider(context);
const connectionsTreeDataProvider = new ConnectionsTreeDataProvider(connectionManager);
context.subscriptions.push(
vscode.window.registerTreeDataProvider('sqltools.connections', connectionsTreeDataProvider),
vscode.window.registerTreeDataProvider('sqltools.queryHistory', queryHistoryProvider),
vscode.window.registerTreeDataProvider('sqltools.queryResults', queryResultsProvider),
vscode.commands.registerCommand('sqltools.addNewConnection', commands.addNewConnection, commands),
vscode.commands.registerCommand('sqltools.editConnection', commands.editConnection, commands),
vscode.commands.registerCommand('sqltools.deleteConnection', commands.deleteConnection, commands),
vscode.commands.registerCommand('sqltools.refreshConnections', connectionsTreeDataProvider.refresh, connectionsTreeDataProvider),
vscode.commands.registerCommand('sqltools.refreshQueryHistory', queryHistoryProvider.refresh,