From ea8d3beac496f687b7a295086df53793256ee3d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B2=94=EC=88=98?= Date: Tue, 7 Jul 2026 00:51:47 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=9D=B4=EC=8A=88=20#23=20-=20v1.5.0?= =?UTF-8?q?=20=EC=9D=B4=ED=9B=84=20=EB=B3=80=EA=B2=BD=EC=82=AC=ED=95=AD=20?= =?UTF-8?q?=EB=AC=B8=EC=84=9C=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 툴윈도우 기본 위치 좌측 변경 반영 (Quick Start 우측 → 좌측 안내) - 타이머: 문제 탭 하단 미니 바·상태바 표시 설명 추가 - 코드포스: 폴백 브라우저 비노출(오프스크린)·쿠키 재사용 가속 설명 반영 - Windows C++ 요구사항: MinGW 설치 + PATH 등록 + IDE 완전 재시작 안내 추가 - README 영/한 및 docs/ 하위 문서 동기화 --- README.md | 20 ++++++++++++++------ docs/README_en.md | 6 ++++-- docs/README_ko.md | 6 ++++-- docs/features/fetch.md | 6 ++++-- docs/features/timer.md | 16 ++++++++++++++++ 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index c8c3893..13093a7 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ CodingTestKit was built to **replicate the real exam environment inside your IDE - **Exam Mode**: Disable autocomplete & inspections, block external paste, detect focus loss — practice under real test conditions - **Performance Metrics**: Show execution time (ms) and memory usage per test case -- **Timer**: Stopwatch, circular dial countdown timer, progress bar, digital clock +- **Timer**: Stopwatch, circular dial countdown timer, progress bar, digital clock — plus an always-visible mini bar in the Problems tab and the IDE status bar - **All-in-One**: Fetch, code, test, and submit without leaving the IDE - **Problem Translation**: One-click Korean ↔ English translation with caching and rate limit protection - **GitHub Push**: Auto-push accepted solutions to GitHub @@ -92,7 +92,7 @@ CodingTestKit was built to **replicate the real exam environment inside your IDE | 7 | **My Solved** | List your solved problems on LeetCode & Codeforces | | 8 | [**Code Editor**](#code-editor) | Auto-generated boilerplate code per platform & language | | 9 | [**Code Templates**](docs/features/templates.md) | Save & reuse frequently used code snippets | -| 10 | [**Timer**](docs/features/timer.md) | Stopwatch with laps + countdown with circular dial, progress bar, digital clock | +| 10 | [**Timer**](docs/features/timer.md) | Stopwatch with laps + countdown with circular dial, progress bar, digital clock; mini bar in the Problems tab & status bar | | 11 | [**Settings & Exam Mode**](docs/features/exam-mode.md) | One-click exam mode: block paste, disable autocomplete, focus alert | | 12 | [**GitHub Integration**](docs/features/github.md) | Auto-push accepted solutions to GitHub | | 13 | [**Internationalization**](#internationalization-i18n) | Full Korean / English UI support | @@ -285,6 +285,8 @@ Provides a **Stopwatch** and a **Countdown Timer**. - **Progress Bar**: Linear progress indicator - Preset buttons for 30min, 1hr, 2hr, 3hr - Notification when time's up +- **Problems tab bottom bar**: timer and stopwatch (start/pause/reset) with a thin remaining-time progress bar, always visible at the bottom of the Problems tab — check the clock while reading the problem +- **Status bar**: remaining time also appears next to `CTK: ...` in the IDE status bar, visible from any tab or layout

Timer @@ -351,7 +353,7 @@ Switch between **Korean / English** in settings. All UI text is displayed in the ## Quick Start -1. Open **CodingTestKit** from the right sidebar +1. Open **CodingTestKit** from the left sidebar (docked alongside the Project view — the two toggle; drag to another side if you prefer) 2. Select platform and language 3. Enter problem ID and click **Fetch** 4. Write code, click **Run All** @@ -363,6 +365,8 @@ Switch between **Korean / English** in settings. All UI text is displayed in the - JDK 17+ (for Java execution) — building the plugin from source requires JDK 21 - Language compilers (for respective language tests) +> **Windows + C++**: install MinGW-w64 (or MSYS2), add its `bin` folder to PATH, then **fully restart the IDE** — a running IDE does not pick up PATH changes (restart JetBrains Toolbox too if you use it). + ## Build ```bash @@ -389,7 +393,7 @@ CodingTestKit은 **실제 시험 환경을 IDE 안에서 그대로 재현**하 - **시험 모드**: 자동완성과 코드 검사를 끄고, 외부 붙여넣기 차단과 포커스 이탈 감지까지 실전과 동일한 환경에서 연습 - **실행 시간 & 메모리 측정**: 테스트 케이스별 실행 시간(ms)과 메모리 사용량(KB/MB)을 표시 -- **타이머**: 스톱워치, 원형 다이얼 카운트다운 타이머, 프로그레스 바, 디지털 시계 +- **타이머**: 스톱워치, 원형 다이얼 카운트다운 타이머, 프로그레스 바, 디지털 시계 — 문제 탭 하단 미니 바와 IDE 상태바에도 항상 표시 - **올인원**: 문제 읽기, 코드 작성, 테스트, 제출까지 IDE를 벗어나지 않고 전부 해결 - **문제 번역**: 한 클릭으로 한국어 ↔ 영어 번역 (캐싱 및 rate limit 보호 내장) - **GitHub 연동**: 채점 통과 시 자동으로 GitHub에 푸시 @@ -435,7 +439,7 @@ CodingTestKit은 **실제 시험 환경을 IDE 안에서 그대로 재현**하 | 7 | **내 풀이** | LeetCode & Codeforces에서 내가 푼 문제 목록 확인 | | 8 | [**코드 에디터**](#코드-에디터) | 플랫폼 & 언어별 보일러플레이트 코드 자동 생성 | | 9 | [**코드 템플릿**](docs/features/templates.md) | 자주 쓰는 코드 스니펫 저장 & 재사용 | -| 10 | [**타이머**](docs/features/timer.md) | 스톱워치 + 원형 다이얼/프로그레스 바/디지털 시계 카운트다운 | +| 10 | [**타이머**](docs/features/timer.md) | 스톱워치 + 원형 다이얼/프로그레스 바/디지털 시계 카운트다운, 문제 탭 하단 미니 바 & 상태바 표시 | | 11 | [**설정 & 시험 모드**](docs/features/exam-mode.md) | 원클릭 시험 모드: 붙여넣기 차단, 자동완성 끄기, 포커스 감지 | | 12 | [**GitHub 연동**](docs/features/github.md) | 맞은 문제 자동 GitHub 푸시 | | 13 | [**다국어 지원**](#다국어-지원-i18n) | 한국어 / English UI 완전 지원 | @@ -628,6 +632,8 @@ FAIL인 케이스는 빨간색으로 표시되어 한눈에 확인할 수 있습 - **프로그레스 바**: 막대형 진행률 표시 - 30분, 1시간, 2시간, 3시간 프리셋 버튼 - 시간 종료 시 알림 +- **문제 탭 하단 바**: 타이머와 스톱워치(시작/일시정지/초기화), 남은 시간 프로그레스 바가 문제 탭 하단에 항상 표시 — 문제를 읽으면서 시간 확인 가능 +- **상태바 표시**: IDE 하단 상태바의 `CTK: ...` 옆에도 남은 시간이 표시되어 어떤 탭·레이아웃에서든 보임

타이머 @@ -694,7 +700,7 @@ FAIL인 케이스는 빨간색으로 표시되어 한눈에 확인할 수 있습 ## 빠른 시작 -1. 우측 사이드바에서 **CodingTestKit** 열기 +1. 좌측 사이드바에서 **CodingTestKit** 열기 (프로젝트 뷰와 같은 자리에서 토글되며, 원하면 드래그로 다른 쪽에 배치 가능) 2. 플랫폼과 언어 선택 3. 문제 번호 입력 후 **가져오기** 클릭 4. 코드 작성 후 **전체 실행** 클릭 @@ -706,6 +712,8 @@ FAIL인 케이스는 빨간색으로 표시되어 한눈에 확인할 수 있습 - JDK 17 이상 (Java 실행용) — 플러그인을 소스에서 직접 빌드하려면 JDK 21 필요 - 각 언어 컴파일러 (해당 언어 테스트 시) +> **Windows + C++**: MinGW-w64(또는 MSYS2)를 설치하고 `bin` 폴더를 PATH에 등록한 뒤 **IDE를 완전히 재시작**하세요 — 실행 중인 IDE에는 PATH 변경이 반영되지 않습니다 (JetBrains Toolbox 사용 시 Toolbox도 재시작). + ## 빌드 ```bash diff --git a/docs/README_en.md b/docs/README_en.md index cfe952e..6f1f1c9 100644 --- a/docs/README_en.md +++ b/docs/README_en.md @@ -66,7 +66,7 @@ Select the platform and language, enter a problem number, and the problem descri - **LeetCode**: Enter number, slug, or URL (e.g., `1`, `two-sum`, full URL) - **Codeforces**: contestId+letter (e.g., `1234A`) or URL -> Codeforces: if Cloudflare blocks the request, fetching automatically falls back to the built-in JCEF browser (may take ~5–20 seconds longer). +> Codeforces: if Cloudflare blocks the request, fetching automatically falls back to a built-in browser (invisible, no window appears). Only the first problem takes ~5–20 seconds longer — once the challenge is passed, its cookies are reused and subsequent fetches are fast.

Main Panel @@ -295,7 +295,7 @@ Setup: Settings > GitHub Integration > Click "GitHub Login" and select your repo ## Usage ### 1. Fetch a Problem -1. Open **CodingTestKit** from the right sidebar +1. Open **CodingTestKit** from the left sidebar (docked alongside the Project view — the two toggle) 2. Select platform and language 3. Enter problem ID and click **Fetch** - Programmers: `12947` @@ -330,6 +330,8 @@ Setup: Settings > GitHub Integration > Click "GitHub Login" and select your repo - JDK 17+ (for Java execution) — building the plugin from source requires JDK 21 - Language compilers (for respective language tests) +> **Windows + C++**: install MinGW-w64 (or MSYS2), add its `bin` folder to PATH, then **fully restart the IDE** — a running IDE does not pick up PATH changes. + ## Build ```bash diff --git a/docs/README_ko.md b/docs/README_ko.md index 7a87f89..e768374 100644 --- a/docs/README_ko.md +++ b/docs/README_ko.md @@ -68,7 +68,7 @@ CodingTestKit은 이런 **실제 시험 환경을 IDE 안에서 그대로 재현 - **LeetCode**: 문제 번호, slug, 또는 URL 입력 (예: `1`, `two-sum`, URL) - **Codeforces**: 콘테스트번호+문제번호 (예: `1234A`) 또는 URL -> Codeforces: Cloudflare가 요청을 차단하면 내장 JCEF 브라우저로 자동 폴백합니다 (약 5~20초 더 걸릴 수 있음). +> Codeforces: Cloudflare가 요청을 차단하면 내장 브라우저(화면에 보이지 않음)로 자동 폴백합니다. 첫 문제만 약 5~20초 더 걸리고, 챌린지를 한 번 통과하면 쿠키를 재사용해 다음 문제부터는 빠르게 가져옵니다.

메인 패널 @@ -297,7 +297,7 @@ FAIL인 케이스는 빨간색으로 표시되어 한눈에 확인할 수 있습 ## 사용법 ### 1. 문제 가져오기 -1. 우측 사이드바에서 **CodingTestKit** 열기 +1. 좌측 사이드바에서 **CodingTestKit** 열기 (프로젝트 뷰와 같은 자리에서 토글) 2. 플랫폼과 언어 선택 3. 문제 번호 입력 후 **가져오기** 클릭 - 프로그래머스: `12947` (URL의 `/lessons/` 뒤 숫자) @@ -332,6 +332,8 @@ FAIL인 케이스는 빨간색으로 표시되어 한눈에 확인할 수 있습 - JDK 17 이상 (Java 실행용) — 플러그인을 소스에서 직접 빌드하려면 JDK 21 필요 - 각 언어 컴파일러 (해당 언어 테스트 시) +> **Windows + C++**: MinGW-w64(또는 MSYS2)를 설치하고 `bin` 폴더를 PATH에 등록한 뒤 **IDE를 완전히 재시작**하세요 — 실행 중인 IDE에는 PATH 변경이 반영되지 않습니다. + ## 빌드 ```bash diff --git a/docs/features/fetch.md b/docs/features/fetch.md index 2115b64..dcce2f8 100644 --- a/docs/features/fetch.md +++ b/docs/features/fetch.md @@ -56,7 +56,8 @@ Select the platform and language, enter a problem number, and the problem descri - Supports number (`1`), slug (`two-sum`), and full URL input #### Codeforces -- Fetches via HTTP crawling first; if Cloudflare blocks the request (e.g., 403), automatically falls back to the built-in offscreen JCEF browser, which passes the challenge and extracts the page +- Fetches via HTTP crawling first; if Cloudflare blocks the request (e.g., 403), automatically falls back to the built-in offscreen JCEF browser (rendered off-screen — no window appears on any OS), which passes the challenge and extracts the page +- Once the challenge is passed, its cookies (`cf_clearance`) are reused so subsequent fetches take the fast HTTP path (~1s) - When the fallback engages, fetching may take about 5–20 seconds longer - Requires an IDE with JCEF support (all recent IntelliJ versions) @@ -100,6 +101,7 @@ Select the platform and language, enter a problem number, and the problem descri - 번호(`1`), slug(`two-sum`), 전체 URL 입력 지원 #### Codeforces -- HTTP 크롤링으로 먼저 가져오고, Cloudflare에 차단(403 등)되면 내장 오프스크린 JCEF 브라우저로 자동 폴백하여 챌린지를 통과한 뒤 페이지를 추출 +- HTTP 크롤링으로 먼저 가져오고, Cloudflare에 차단(403 등)되면 내장 오프스크린 JCEF 브라우저로 자동 폴백하여 챌린지를 통과한 뒤 페이지를 추출 (오프스크린 렌더링이라 어떤 OS에서도 창이 나타나지 않음) +- 챌린지를 한 번 통과하면 그 쿠키(`cf_clearance`)를 재사용해 다음 문제부터는 빠른 HTTP 경로(~1초)로 가져옴 - 폴백이 동작하면 가져오기가 약 5~20초 더 걸릴 수 있음 - JCEF를 지원하는 IDE 필요 (최근 IntelliJ 버전은 모두 지원) diff --git a/docs/features/timer.md b/docs/features/timer.md index 8d80d2e..ba7eb0c 100644 --- a/docs/features/timer.md +++ b/docs/features/timer.md @@ -33,6 +33,14 @@ Provides a **Stopwatch** and a **Countdown Timer** to help you practice under ti - Preset buttons: 30min, 1hr, 2hr, 3hr - Notification alert when time's up +### Problems Tab Mini Bar & Status Bar + +The timer is not locked inside the Timer tab: + +- **Problems tab bottom bar**: countdown (left) and stopwatch (right), each with start/pause and reset buttons, plus a thin remaining-time progress bar on top — always visible while reading the problem +- **IDE status bar**: remaining time appears next to `CTK: ...`, visible from any tab or layout +- All three views (Timer tab, mini bar, status bar) share the same timer — controlling it from any one of them keeps the others in sync +

Countdown Running

@@ -61,3 +69,11 @@ Provides a **Stopwatch** and a **Countdown Timer** to help you practice under ti - 프리셋 버튼: 30분, 1시간, 2시간, 3시간 - 시간 종료 시 알림 + +### 문제 탭 미니 바 & 상태바 + +타이머는 타이머 탭 안에만 있지 않습니다: + +- **문제 탭 하단 바**: 왼쪽에 카운트다운, 오른쪽에 스톱워치 (각각 시작/일시정지·초기화 버튼), 상단에 남은 시간 프로그레스 바 — 문제를 읽는 동안 항상 표시 +- **IDE 상태바**: `CTK: ...` 옆에 남은 시간 표시 — 어떤 탭·레이아웃에서든 보임 +- 세 화면(타이머 탭·미니 바·상태바)은 같은 타이머를 공유하며, 어디서 조작해도 서로 동기화됩니다