| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import * as vscode from 'vscode';
- import {
- copySelection,
- copyActiveFile,
- copySingleItem,
- copySelectedFiles,
- copyMultiFiles,
- } from './copyContext';
- import { CopyAiCodeActionProvider } from './codeActionProvider';
- export function activate(context: vscode.ExtensionContext) {
- console.log('[copy-ai-ctx] activating...');
- context.subscriptions.push(
- vscode.commands.registerCommand('copy-ai-ctx.copySelection', () => {
- copySelection();
- }),
- );
- context.subscriptions.push(
- vscode.commands.registerCommand('copy-ai-ctx.copyFile', () => {
- copyActiveFile();
- }),
- );
- context.subscriptions.push(
- vscode.commands.registerCommand('copy-ai-ctx.copySelectedFiles', (args) => {
- if (!args) {
- // keyboard shortcut invocation: fallback to active editor file
- const editor = vscode.window.activeTextEditor;
- if (!editor) return;
- copySingleItem(editor.document.uri);
- return;
- }
- copySingleItem(args as vscode.Uri);
- }),
- );
- context.subscriptions.push(
- vscode.commands.registerCommand('copy-ai-ctx.copyMultiFiles', (...args) => {
- if (args.length < 2) {
- // keyboard shortcut invocation: fallback to active editor file
- const editor = vscode.window.activeTextEditor;
- if (!editor) return;
- copyMultiFiles([editor.document.uri]);
- return;
- }
- // args[0] = clicked resource URI
- // args[1] might be array (standard) or individual URI (variadic)
- const resources = Array.isArray(args[1]) ? args[1] : args.slice(1);
- if (resources.length === 0) return;
- copyMultiFiles(resources);
- }),
- );
- console.log('[copy-ai-ctx] activated');
- // Register CodeAction provider (lightbulb on selection)
- context.subscriptions.push(
- vscode.languages.registerCodeActionsProvider(
- { pattern: '**' },
- new CopyAiCodeActionProvider(),
- {
- providedCodeActionKinds:
- CopyAiCodeActionProvider.providedCodeActionKinds,
- },
- ),
- );
- }
- export function deactivate() {
- // cleanup if needed
- }
|