Skip to content

Conversation

@developer-1px
Copy link
Owner

@developer-1px developer-1px commented Jan 8, 2026

Summary

  • 파일 내용 검색 (Content Search) 기능 추가 (Cmd+Shift+F)
  • Content Search를 모달에서 mainContent 탭으로 리팩토링
  • Related Files 모드 - 활성 파일의 의존성 필터링
  • Workspace 패널을 Sidebar에서 우측 패널로 분리
  • 터미널 기능 제거 및 코드 정리
  • FSD 아키텍처 개선 (definitionExtractor entities로 이동)

Content Search (Cmd+Shift+F) - MainContent Tab

  • 메인 뷰 통합: 모달이 아닌 IDE/CodeDoc처럼 메인 콘텐츠 탭으로 동작
  • 흐름 유지: 검색 중에도 워크플로우를 방해하지 않음
  • Grep 스타일 검색: 모든 파일에서 텍스트 검색
  • 검색 옵션: 대소문자 구분, 단어 단위, 정규식 지원
  • 검색 결과 UI: 파일별 그룹화, 매칭 라인 하이라이트
  • 키보드 네비게이션: 화살표 키로 결과 탐색, Enter로 파일 열기, ESC로 IDE 모드 복귀
  • Scope 분리: Shift+Shift (UnifiedSearch)와 독립적으로 동작

Related Files Mode

  • Dependencies: 활성 파일이 import하는 파일 목록
  • Dependents: 활성 파일을 import하는 파일 목록
  • Folder View 유지: 기존 파일 트리 UI 재사용

Workspace Panel

  • 우측 패널로 분리: Sidebar 공간 활용 개선
  • 열린 파일 관리: 현재 열려있는 모든 파일 목록
  • 빠른 네비게이션: 클릭으로 파일 전환

기타 개선사항

  • 터미널 기능 완전 제거 (server, 패널, dependencies)
  • definitionExtractor를 entities/SourceFileNode/lib로 이동 (FSD 준수)
  • Lint 에러 수정 (noAssignInExpressions)
  • 코드 포맷팅 및 정리

Test plan

  • Cmd+Shift+F로 Content Search 뷰 전환 테스트
  • 검색 옵션 (대소문자 구분, 단어 단위, 정규식) 동작 확인
  • 검색 결과 클릭 시 해당 파일 열기 및 IDE 모드 복귀 확인
  • ESC로 IDE 모드 복귀 확인
  • Related Files 모드 전환 및 의존성 필터링 확인
  • Workspace 패널 열기/닫기 및 파일 네비게이션 확인
  • Build 및 Lint 통과 확인

🤖 Generated with Claude Code

유용태 and others added 7 commits January 8, 2026 11:57
- Project 섹션에 All Files / Related 탭 추가
- Related 모드: 활성 파일과 관련된 파일만 트리에 표시
  - Dependencies: 현재 파일이 import하는 파일들 (상단)
  - Dependents: 현재 파일을 import하는 파일들 (하단)
- getDependents() 함수 구현 (getters.ts)
  - fullNodeMap을 순회하며 targetFilePath를 import하는 파일 찾기
- RelatedFilesView 위젯 생성
  - Dependencies/Dependents를 접을 수 있는 섹션으로 분리
  - 각 섹션에 파일 개수 표시
  - FolderView 형식 그대로 유지 (TreeView 재사용)
- FileExplorer에 filteredFiles props 추가
  - 외부에서 필터링된 파일 목록 전달 가능
- fileTreeModeAtom 추가 (all | related)
- AppSidebar가 모드에 따라 FileExplorer / RelatedFilesView 전환

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- WorkspacePanel 위젯 생성
  - 열린 파일 목록 표시
  - 파일 클릭 시 해당 파일로 이동
  - Close 버튼으로 패널 닫기
- AppSidebar에서 Workspace 섹션 제거
  - Project 섹션만 남김 (All Files / Related 탭)
  - 불필요한 import 및 상태 제거
- rightPanelTypeAtom에 'workspace' 타입 추가
  - workspace: 열린 파일 목록 (새로운 기본값)
  - definition, related: 레거시 (삭제됨)
- AppTitleBar에 Workspace 탭 추가
  - Definition, Related 탭 제거
  - Workspace 탭만 표시
- App.tsx에서 WorkspacePanel 렌더링
  - 오른쪽 패널 위치에 배치
  - rightPanelOpen && rightPanelType === 'workspace' 조건부 렌더링

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
전체 파일에서 텍스트를 검색하는 Content Search 기능 구현:
- Grep 스타일 검색 로직 (대소문자 구분, 단어 단위, 정규식 지원)
- ContentSearchModal UI 컴포넌트 (검색 결과 트리 뷰)
- Cmd+Shift+F 단축키로 모달 열기
- 파일별 매칭 결과 그룹화 및 하이라이트
- Shift+Shift (UnifiedSearch)와 별도 scope로 분리

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
워크플로우 흐름을 방해하지 않도록 검색을 메인 뷰로 전환:
- ContentSearchModal 제거 → ContentSearchView 위젯으로 변경
- viewModeAtom에 'contentSearch' 타입 추가
- Cmd+Shift+F로 viewMode를 'contentSearch'로 전환
- contentSearchModalOpenAtom 제거 (viewMode로 표시/숨김 제어)
- IDE/CodeDoc처럼 메인 콘텐츠 영역에서 탭 전환 방식으로 동작
- ESC로 IDE 모드로 복귀

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
재사용 가능한 hooks로 키보드 네비게이션 통합:
- useListKeyboardNavigation 적용으로 ~80줄 코드 감소
- 클릭 시 선택만 (setFocusedIndex), Enter로 파일 열기
- Auto-scroll 자동 활성화 (itemRefs + scrollContainerRef)
- 기존 수동 구현 useHotkeys 4개 제거
- Scope 관리 자동화

UX 개선:
- 클릭: 항목 선택 (focus)
- Enter: 선택된 파일 열기 + IDE 모드 전환
- ESC: IDE 모드 복귀
- 키보드 이동 시 자동 스크롤

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
좌우 분할 레이아웃으로 검색 UX 개선:
- 좌측: 검색 결과 리스트 (400px)
- 우측: 선택된 파일 preview 패널
- 선택된 항목의 파일 내용 자동 표시
- 매칭된 라인으로 자동 스크롤 및 하이라이트
- 라인 번호 표시 및 매칭 라인 강조 (warm-300)

Preview 기능:
- focusedIndex 변경 시 실시간 preview 업데이트
- 파일 경로 및 이름 표시
- 매칭된 라인은 배경색 및 텍스트 색상 강조
- scrollIntoView로 매칭 라인 중앙 정렬

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- TabContainer 컴포넌트로 IDE와 Search를 가로 탭으로 통합
- 동적 탭 열기/닫기 기능 (X 버튼, 마지막 탭 보호)
- Cmd+Shift+Tab 단축키로 Search 탭 열기/전환
- ContentSearchView 좌우 패널 스크롤 독립화
- 탭 atoms: openedTabsAtom, activeTabIdAtom

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants