Study/개발 Tip

Cursor, VSCode, Windsurf 등 Settings.json 설정

AC 2025. 10. 10. 21:24

{
    "window.commandCenter": true,
    "terminal.integrated.commandsToSkipShell": [""],
    "workbench.iconTheme": "material-icon-theme",
    "kilo-code.allowedCommands": [
        "git log",
        "git diff",
        "git show"
    ],
    "kilo-code.deniedCommands": [],
    
    // ============================================
    // 탭 & 에디터 시각적 개선
    // ============================================
    "workbench.colorCustomizations": {
        // 활성 탭 (기존 설정 유지)
        "tab.activeBackground": "#1e2a1e",
        "tab.activeBorder": "#4caf50",
        "tab.activeBorderTop": "#4caf50",
        "tab.activeForeground": "#e0e0e0",
        "tab.inactiveBackground": "#1a1a1a",
        
        // 수정된 파일 강조 (저장 안 된 변경사항 시각화)
        "tab.activeModifiedBorder": "#ffa500",
        "tab.inactiveModifiedBorder": "#ff6b00",
        
        // 에디터 가이드라인 (인덴테이션 가시성)
        "editorIndentGuide.background": "#2a2a2a",
        "editorIndentGuide.activeBackground": "#4caf50",
        
        // 브레드크럼 (파일 경로 탐색)
        "breadcrumb.background": "#1a1a1a",
        "breadcrumb.foreground": "#888888",
        "breadcrumb.focusForeground": "#4caf50",
        
        // 에디터 구분선 (멀티 에디터 시 명확한 구분)
        "editorGroup.border": "#4caf50",
        
        // 상태바 강조 (디버그 모드 시각적 구분)
        "statusBar.debuggingBackground": "#ff6b00",
        "statusBar.debuggingForeground": "#ffffff"
    },
    
    // ============================================
    // 에디터 동작 & UX 최적화
    // ============================================
    
    // 파일 자동 저장 (인지 부하 감소)
    "files.autoSave": "onFocusChange",
    
    // 탭 크기 제한 (작업 메모리 관리)
    "workbench.editor.limit.enabled": true,
    "workbench.editor.limit.value": 10,
    "workbench.editor.limit.perEditorGroup": true,
    
    // 미니맵 최적화 (코드 전체 구조 파악)
    "editor.minimap.enabled": true,
    "editor.minimap.maxColumn": 80,
    "editor.minimap.renderCharacters": false,
    "editor.minimap.showSlider": "always",
    
    // 브레드크럼 활성화 (파일 구조 탐색)
    "breadcrumbs.enabled": true,
    "breadcrumbs.filePath": "on",
    "breadcrumbs.symbolPath": "on",
    
    // 스티키 스크롤 (문맥 유지)
    "editor.stickyScroll.enabled": true,
    "editor.stickyScroll.maxLineCount": 5,
    
    // 인라인 제안 (GitHub Copilot 스타일)
    "editor.inlineSuggest.enabled": true,
    
    // ============================================
    // 코드 가독성 & 포맷팅
    // ============================================
    
    // 줄 높이 (가독성 향상)
    "editor.lineHeight": 1.6,
    
    // 글꼴 리가처 (코드 미학)
    "editor.fontLigatures": true,
    "editor.fontFamily": "'Fira Code', 'JetBrains Mono', Menlo, Monaco, 'Courier New', monospace",
    "editor.fontSize": 14,
    
    // 공백 문자 표시 (들여쓰기 오류 방지)
    "editor.renderWhitespace": "boundary",
    
    // 괄호 쌍 색상화 (중첩 구조 파악)
    "editor.bracketPairColorization.enabled": true,
    "editor.guides.bracketPairs": "active",
    
    // 저장 시 자동 포맷팅
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true,
    
    // 후행 공백 제거
    "files.trimTrailingWhitespace": true,
    "files.insertFinalNewline": true,
    
    // ============================================
    // TypeScript/JavaScript 특화
    // ============================================
    
    // 타입 힌트 인라인 표시
    "typescript.inlayHints.parameterNames.enabled": "all",
    "typescript.inlayHints.variableTypes.enabled": true,
    "typescript.inlayHints.functionLikeReturnTypes.enabled": true,
    "javascript.inlayHints.parameterNames.enabled": "all",
    "javascript.inlayHints.variableTypes.enabled": true,
    
    // 자동 import 정리
    "editor.codeActionsOnSave": {
        "source.organizeImports": "explicit",
        "source.fixAll.eslint": "explicit"
    },
    
    // ============================================
    // Git 통합 강화
    // ============================================
    
    // Git 데코레이터 (변경사항 시각화)
    "git.decorations.enabled": true,
    "git.enableSmartCommit": true,
    "git.confirmSync": false,
    
    // 인라인 Git blame
    "gitlens.currentLine.enabled": true,
    "gitlens.codeLens.enabled": true,
    
    // ============================================
    // 터미널 개선
    // ============================================
    
    // 터미널 글꼴
    "terminal.integrated.fontSize": 13,
    "terminal.integrated.fontFamily": "'Fira Code', 'JetBrains Mono', monospace",
    
    // 터미널 커서 스타일
    "terminal.integrated.cursorStyle": "line",
    "terminal.integrated.cursorBlinking": true,
    
    // 터미널 자동 응답
    "terminal.integrated.confirmOnExit": "hasChildProcesses",
    
    // ============================================
    // 성능 최적화
    // ============================================
    
    // 파일 감시 제외 (성능 향상)
    "files.watcherExclude": {
        "**/.git/objects/**": true,
        "**/.git/subtree-cache/**": true,
        "**/node_modules/**": true,
        "**/.hg/store/**": true,
        "**/dist/**": true,
        "**/build/**": true,
        "**/.next/**": true
    },
    
    // 검색 제외
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true,
        "**/*.code-search": true,
        "**/dist": true,
        "**/build": true,
        "**/.next": true,
        "**/coverage": true
    },
    
    // ============================================
    // 추가 UX 개선
    // ============================================
    
    // 스크롤 부드럽게
    "editor.smoothScrolling": true,
    "workbench.list.smoothScrolling": true,
    "terminal.integrated.smoothScrolling": true,
    
    // 커서 애니메이션
    "editor.cursorBlinking": "smooth",
    "editor.cursorSmoothCaretAnimation": "on",
    
    // 파일 아이콘 테마 강화
    "material-icon-theme.folders.theme": "specific",
    "material-icon-theme.folders.color": "#4caf50",
    
    // 제안 위젯 크기
    "editor.suggestFontSize": 13,
    "editor.suggestLineHeight": 22,
    
    // 빠른 제안
    "editor.quickSuggestions": {
        "other": "on",
        "comments": "off",
        "strings": "on"
    },
    "editor.quickSuggestionsDelay": 10,
    
    // 파일 연결 (React/Next.js 최적화)
    "files.associations": {
        "*.css": "tailwindcss",
        "*.tsx": "typescriptreact"
    },
    
    // Emmet 확장
    "emmet.includeLanguages": {
        "javascript": "javascriptreact",
        "typescript": "typescriptreact"
    },
    "emmet.triggerExpansionOnTab": true
}

LIST