Prechádzať zdrojové kódy

fix: unify keybinding to single copySmart command, remove when conditions

Developer 1 mesiac pred
rodič
commit
6e19344e8f
4 zmenil súbory, kde vykonal 28 pridanie a 20 odobranie
  1. 0 0
      dist/extension.js
  2. 0 0
      dist/extension.js.map
  3. 1 20
      package.json
  4. 27 0
      src/extension.ts

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
dist/extension.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
dist/extension.js.map


+ 1 - 20
package.json

@@ -77,26 +77,7 @@
       {
         "key": "ctrl+alt+c",
         "mac": "cmd+alt+c",
-        "command": "copy-ai-ctx.copySelection",
-        "when": "editorHasSelection"
-      },
-      {
-        "key": "ctrl+alt+c",
-        "mac": "cmd+alt+c",
-        "command": "copy-ai-ctx.copyFile",
-        "when": "!editorHasSelection && editorFocus"
-      },
-      {
-        "key": "ctrl+alt+c",
-        "mac": "cmd+alt+c",
-        "command": "copy-ai-ctx.copySelectedFiles",
-        "when": "explorerViewletVisible && !listMultiSelection"
-      },
-      {
-        "key": "ctrl+alt+c",
-        "mac": "cmd+alt+c",
-        "command": "copy-ai-ctx.copyMultiFiles",
-        "when": "explorerViewletVisible && listMultiSelection"
+        "command": "copy-ai-ctx.copySmart"
       }
     ]
   },

+ 27 - 0
src/extension.ts

@@ -7,6 +7,27 @@ import {
   copyMultiFiles,
 } from './copyContext';
 
+function copySmart() {
+  // 1. Editor has selection → copy selection
+  const editor = vscode.window.activeTextEditor;
+  if (editor && !editor.selection.isEmpty) {
+    copySelection();
+    return;
+  }
+
+  // 2. Editor focused but no selection → copy current file
+  if (editor) {
+    copyActiveFile();
+    return;
+  }
+
+  // 3. Explorer focused → try to get selection from active editor as fallback
+  const fallbackEditor = vscode.window.activeTextEditor;
+  if (fallbackEditor) {
+    copyActiveFile();
+  }
+}
+
 export function activate(context: vscode.ExtensionContext) {
   console.log('[copy-ai-ctx] activating...');
 
@@ -22,6 +43,12 @@ export function activate(context: vscode.ExtensionContext) {
     }),
   );
 
+  context.subscriptions.push(
+    vscode.commands.registerCommand('copy-ai-ctx.copySmart', () => {
+      copySmart();
+    }),
+  );
+
   context.subscriptions.push(
     vscode.commands.registerCommand('copy-ai-ctx.copySelectedFiles', (args) => {
       if (!args) {

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov