feat: VS Code Explorer 경로 드래그 앤 드롭 지원 (v2.26.0)

This commit is contained in:
2026-04-30 14:27:54 +09:00
parent d728e861fc
commit 8c34f0c51b
3 changed files with 32 additions and 5 deletions
+8
View File
@@ -1,3 +1,11 @@
# Patch Notes - v2.26.0 (2026-04-30)
## 📂 Enhanced Drag & Drop: Path Insertion
- **New Feature:** VS Code Explorer나 Antigravity 탐색기에서 파일/폴더를 드래그하여 채팅창에 놓으면, 해당 **경로(Path)가 자동으로 텍스트 영역에 입력**됩니다.
- **Workflow:** OS 탐색기 드래그 시에는 '파일 첨부', 내부 탐색기 드래그 시에는 '경로 입력'으로 동작하여 작업 효율을 극대화했습니다.
---
# Patch Notes - v2.25.0 (2026-04-30)
## 🚀 UX Optimization & Stability (Kodari Approved)
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "g1nation",
"displayName": "G1nation",
"description": "100% local AI coding agent for VS Code. Create files, edit code, run commands, and work offline with Ollama or LM Studio.",
"version": "2.25.0",
"version": "2.26.0",
"publisher": "connectailab",
"license": "MIT",
"icon": "assets/icon.png",
+23 -4
View File
@@ -1786,14 +1786,33 @@ export class SidebarChatProvider implements vscode.WebviewViewProvider, BridgeIn
document.body.addEventListener('drop', e => {
const dt = e.dataTransfer;
const files = dt.files;
const textData = dt.getData('text/plain');
// ⭐ Kodari PD 가이드 반영: Input 요소의 상태를 드롭된 파일로 강제 동기화
// 1. OS 파일 드래그 처리 (기존 첨부 로직)
if (files && files.length > 0) {
fileInput.files = files; // Input의 files 속성 업데이트
fileInput.files = files;
console.log(\`✅ [DnD] Input 상태 동기화 성공: \${files[0].name}\${files.length - 1}\`);
}
processFiles(files);
}
processFiles(files);
// 2. VS Code / Antigravity Explorer 경로 처리 (텍스트 입력 로직)
// 파일 객체가 없거나, 경로 정보를 텍스트로도 넣고 싶을 때 작동
if (textData && textData.trim().length > 0) {
const currentVal = input.value;
const spacer = currentVal.length > 0 && !currentVal.endsWith('\n') ? '\n' : '';
input.value = currentVal + spacer + textData.trim();
// Textarea 높이 및 상태 동기화
input.style.height = 'auto';
input.style.height = input.scrollHeight + 'px';
setDraftActive(true);
// 시각적 피드백
if (!files || files.length === 0) {
showToast('📂 경로가 입력되었습니다.', 'success');
Sound.success();
}
}
}, false);
function send() {