VS Code 'Read My Mind' 만들기: 스마트 컨텍스트 인식 구축
Source: Dev.to
문제
우리는 모두 겪어봤습니다. 프로젝트를 열고 잠시 멈추게 되죠: “잠깐, 이게 npm run dev, yarn start, 아니면 docker-compose up 중 어느 거야?”
컨텍스트 전환은 생산성을 크게 떨어뜨립니다. 개발자는 실제로 코드를 실행하기보다 프로젝트를 어떻게 실행해야 하는지 기억하는 데 너무 많은 시간을 씁니다.
스마트 컨텍스트 인식 🛠️
저는 DotCommand라는 VS Code 확장 프로그램을 만들고 있었는데, 오늘 드디어 가장 큰 기능인 스마트 컨텍스트 인식을 구현했습니다.
목표는 간단합니다: 명령을 찾아 헤매지 말고, 내가 가진 파일을 기반으로 필요한 것을 보여줘.
package.json을 감지 → NPM 명령(설치, 스크립트 실행) 표시.Dockerfile을 감지 → Docker 명령(빌드, 실행) 표시..git을 감지 → Git 워크플로우 표시.
내부 구현 🐛
간단해 보이지만 구현은 까다로웠습니다.
처음에는 워크스페이스를 스캔하는 ContextDetector 클래스를 만들었습니다. 작동은 했지만 느렸고, 그래서 캐시 레이어(30 초)를 추가했습니다.
버그 – package.json을 생성해도 캐시가 만료될 때까지 UI가 업데이트되지 않아 경험이 지연되고 “멍청해 보였다”.
수정 – FileSystemWatcher 이벤트를 재구성해 중요한 파일(package.json 등)이 생성되거나 삭제되는 순간 캐시를 적극적으로 무효화하고 UI를 즉시 새로 고치도록 했습니다.
이제 즉시 반영됩니다. ⚡
실제 화면 🎥



보너스: 동적 Git 브랜치
파일 감지에만 머물지 않았습니다. 브랜치 이름을 직접 입력하는 것이 귀찮아 **Dynamic Input** 시스템을 추가했습니다. git checkout 같은 명령을 실행하면 실제 로컬 브랜치 목록으로 채워진 VS Code 기본 드롭다운이 표시됩니다.
사용해 보기
공개적으로 개발하고 있으니 여러분의 피드백을 기다립니다. 이것이 여러분에게 실제로 도움이 되나요?
DotCommand on the VS Code Marketplace
행복한 코딩 되세요! 🚀