Releases: dj258255/codingtestkit
Release list
v1.6.0 - 타이머 상시 표시 + 코드포스 안정화
What's New
- Timer mini bar & status bar (#16) — The countdown timer and stopwatch (start/pause/reset + a thin remaining-time progress bar) are now always visible at the bottom of the Problems tab, and the remaining time also appears in the IDE status bar. All views share one timer — controlling it anywhere keeps the others in sync.
- Tool window opens on the left (#14, #12) — Docked in the same group as the Project view so the two toggle, each using the full height (new installs; drag to relocate). Height is now freely resizable when split with another tool window.
- Faster Codeforces fetching under Cloudflare (#21) — Once the embedded-browser fallback passes the challenge, its cookies are reused so subsequent fetches take the fast HTTP path (~1s).
Bug Fixes
- Codeforces fallback browser appearing as a floating window on Linux (#9) — Switched to off-screen rendering: no OS window is created at all, which also eliminates the
403 + JCEF internal timeouterror caused by closing that window. - Duplicated formulas & broken translation on fallback-fetched Codeforces problems (#25) — Original TeX is restored at fetch time; previously saved problems are cleaned automatically when loaded.
- Legacy Codeforces image formulas invisible in dark theme (#27) — Black-on-transparent formula images are auto-inverted to match the theme.
- C++ compiler not found on Windows (#10) — Common MinGW-w64/MSYS2/TDM-GCC paths are detected, and missing-tool errors now give OS-specific guidance (install + PATH + full IDE restart).
- Translation protects math and samples — LaTeX formulas and sample I/O are kept verbatim during KR↔EN translation, done in a single request (faster, fewer rate limits).
- False compile timeout on slow machines (#18) — Compile-stage timeout raised from 60s to 120s (upper bound only; normal speed unaffected).
Docs
- README & docs refreshed (#23) — left sidebar, timer mini bar, Codeforces fallback & cookie speedup, Windows C++ requirements; documented theme-aware problem rendering and translation protection.
Full changelog: v1.5.0...v1.6.0
새 기능
- 타이머 미니 바 & 상태바 표시 (#16) — 카운트다운 타이머와 스톱워치(시작/일시정지/초기화 + 남은 시간 프로그레스 바)가 문제 탭 하단에 항상 표시되고, IDE 상태바에도 남은 시간이 표시됨. 세 화면(타이머 탭·미니 바·상태바)이 같은 타이머를 공유해 어디서 조작해도 동기화
- 툴윈도우 기본 위치 왼쪽 (#14, #12) — 프로젝트 뷰와 같은 그룹에서 토글되어 각자 전체 높이 사용 (신규 설치 기준, 드래그로 변경 가능). 다른 툴윈도우와 세로 분할 시 높이도 자유롭게 조절 가능
- Cloudflare 차단 시 코드포스 가져오기 가속 (#21) — 내장 브라우저 폴백이 챌린지를 한 번 통과하면 쿠키를 재사용해, 다음 문제부터는 빠른 HTTP 경로(~1초)로 가져옴
버그 수정
- Linux에서 코드포스 폴백 브라우저가 플로팅 창으로 노출 (#9) — 오프스크린 렌더링으로 전환해 OS 창 자체가 생성되지 않음. 창을 닫아서 발생하던
403 + JCEF internal timeout오류도 원천 차단 - 폴백으로 가져온 코드포스 문제의 수식 중복 표시·번역 마크업 파괴 (#25) — 가져올 때 원본 TeX를 복원하고, 이전에 저장된 문제도 불러올 때 자동 정리
- 다크 테마에서 코드포스 구식 수식 이미지 안 보임 (#27) — 투명 배경 + 검은 글씨 수식 이미지를 테마에 맞게 자동 반전
- Windows에서 g++ 미탐지 (#10) — MinGW-w64/MSYS2/TDM-GCC 설치 경로 탐지 추가, 도구 미발견 안내를 OS별로 표시 (설치 + PATH + IDE 완전 재시작)
- 번역 시 수식·예제 보호 — 한↔영 번역에서 LaTeX 수식과 예제 입출력을 원형 유지, 본문을 한 번의 요청으로 번역 (더 빠르고 rate limit에 강함)
- 저사양 환경 허위 컴파일 시간 초과 (#18) — 컴파일 타임아웃 60초 → 120초 (상한일 뿐 정상 속도 무영향)
문서
- README·docs 최신화 (#23) — 좌측 사이드바 안내, 타이머 미니 바, 코드포스 폴백·쿠키 가속, Windows C++ 요구사항. 문제 뷰 테마 렌더링·번역 보호 동작 문서화
전체 변경: v1.5.0...v1.6.0
v1.5.0 - Rust/Go/Ruby 언어 지원
새 기능
- Rust / Go / Ruby 언어 지원 (#7) — 로컬 테스트 실행(툴체인 자동 탐지), 프로그래머스식 solution 래퍼, 플랫폼별 기본 템플릿, LeetCode·Codeforces 제출 지원 (프로그래머스는 Go/Ruby)
- 코드포스 Cloudflare 대응 — HTTP 크롤링이 403으로 차단되면 오프스크린 내장 브라우저(JCEF)가 자동으로 챌린지를 통과해 문제를 가져옴
- 제출 미지원 조합 즉시 경고 — 제출 불가한 (플랫폼, 언어) 조합 선택 시 콤보 옆에 바로 안내 표시 (로컬 테스트는 모든 조합 가능)
- 탭 간 언어 동기화 — 문제 탭 ↔ 테스트 탭 언어 선택 양방향 자동 동기화
버그 수정
- 빈 입력에서 stdin EOF 미전달로 발생하던 허위 "시간 초과" + 파이프 FD 누수 수정
- Windows에서 kotlinc 한글 소스 인코딩 깨짐 방지 (
-J-Dfile.encoding=UTF-8) - Windows에서 중복 클래스 오류 억제가 동작하지 않던 문제 수정 (경로 구분자)
- UI 스레드에서의 OS 키체인 접근 제거 (툴윈도우 열기/로그인/제출 시 멈칫거림 해소)
문서
- 지원 언어 표(8개 언어 × 4개 플랫폼), 시험 모드 5가지 제한, 최소 IDE 2024.3 등 문서 전면 최신화
- 백준 UI 스크린샷 정리 (v1.4.0에서 제거된 플랫폼)
전체 변경: #8
v1.4.4
IntelliJ 2026.2 호환성
IntelliJ 2026.2에서 JCEF CefResourceHandler 인터페이스가 변경(processRequest/readResponse → open/read/skip)되면서 문제 뷰어의 리소스 핸들러가 바이너리 비호환(미구현 메서드 9건 + deprecated API 6건)이 되던 문제를 해결했습니다.
수정
- JCEF CefResourceHandler 버전 호환 — 정적 구현 대신
java.lang.reflect.Proxy로 런타임 인터페이스에 맞춰 메서드 이름 기준으로 디스패치하는 핸들러로 교체. 같은 빌드가 2024.3부터 2026.2+까지 동작합니다.
검증
- 안정 버전(2024.3 / 2025.1 / 2025.2) Plugin Verifier Compatible 확인
- 2026.2 EAP는 릴리스 저장소 미제공으로 로컬 검증 불가 — 구조적으로 정적 구현 클래스가 제거되어 미구현/deprecated 경고 대상이 사라짐. 실제 렌더링은 정식 출시 후 실기 확인 권장.
v1.4.3
Windows 인코딩 버그 수정
Windows에서 Java 코드 컴파일·실행 시 발생하던 문자 인코딩 문제를 해결했습니다.
수정 (Fixes)
- [#2] Windows javac "unmappable character" 오류 — 래퍼 소스를 UTF-8로 저장하고
javac -encoding UTF-8로 컴파일. 한국어 Windows 기본 코드페이지(MS949)에서 한글 주석으로 컴파일이 깨지던 문제 해결. - [#4] Windows 실행 결과 한글 깨짐 — Java/Kotlin 실행을 UTF-8 표준 입출력으로 수행하고 프로세스 스트림을 UTF-8로 읽음.
- Windows 도구 탐지 —
which→where,.exe해석,python우선. Windows에서 Java/Python 실행 실패 해결. - levelToString 크래시 — 범위 밖 레벨에서 ArrayIndexOutOfBounds 발생하던 문제 수정.
- 폴더명 정리 —
.와+보존 (예: "A+B").
CI
- verify 워크플로가 ubuntu + windows 두 OS에서 전체 테스트(인코딩 회귀 테스트 포함)를 실행합니다.
제보해주신 @bangddong 님, 수정 PR을 올려주신 @Mayank-Sr 님께 감사드립니다. 🙏
v1.4.2 - 빌드 경고 해소 (sinceBuild 243, JDK 21)
변경 사항
빌드 설정 정리
1.4.1 빌드에서 떴던 두 개의 정보성 경고를 정식으로 해소했습니다.
- sinceBuild 242 → 243 — IntelliJ Platform 2024.3 SDK로 컴파일하면서 sinceBuild만 2024.2였던 불일치 해소. 최소 지원 IDE는 IntelliJ IDEA 2024.3 으로 상향됩니다.
- Java/Kotlin 타겟 17 → 21 — sourceCompatibility / targetCompatibility / Kotlin jvmTarget을 21로 일괄 상향. 2024.3 SDK가 실제로 요구하는 버전과 일치.
- 소스에서 빌드 시 JDK 21 필요 (이전엔 JDK 17). 일반 사용자는 영향 없음.
Plugin Verifier
- 매트릭스에서 IC 2024.2.6 제거
- 검증 결과: 3/3 Compatible — IC 2024.3.7 / 2025.1.7 / 2025.2.6.1
- 모두 "Plugin can probably be enabled or disabled without IDE restart"
호환성 영향
| 환경 | v1.4.1 | v1.4.2 |
|---|---|---|
| IDEA 2024.2 | ✅ | ❌ (sinceBuild 243) |
| IDEA 2024.3+ | ✅ | ✅ |
| 빌드용 JDK | 17 | 21 |
설치
- JetBrains Marketplace에서 "CodingTestKit" 검색
- 또는 첨부된
CodingTestKit-1.4.2.zip수동 설치 (Settings → Plugins → ⚙ → Install Plugin from Disk)
이전 버전 사용자: 자동 업데이트 시 IDE가 2024.2면 1.4.1로 유지됩니다.
v1.4.1 - 피드백 채널(구글 폼) 추가
변경 사항
신규 기능
- 설정 → 피드백 섹션 추가: 도구창 설정 탭에 "버그 제보 & 기능 제안" 버튼 추가
클릭 시 구글 폼이 OS 기본 브라우저로 열립니다 (익명 제출 가능, 1분 소요)
→ https://forms.gle/Qqi5gDoHSi2HU1Xs5 - plugin.xml description 및 README 영·한 양쪽에 폼 링크 노출
Marketplace 가이드라인 v1.3 (2026-03-31) 대응
<name>41자 → 13자 (CodingTestKit), 1.2.e 30자 제한 준수- pluginIcon.svg width/height 128 → 40, 1.1.c 권장 사이즈
- PRIVACY.md에 구글 폼 자발적 제출 항목 명시 (3.4)
- Plugin Verifier 통과: IC 2024.2 / 2024.3 / 2025.1 / 2025.2 모두 Compatible
설치
- JetBrains Marketplace에서 "CodingTestKit" 검색
- 또는 첨부된
CodingTestKit-1.4.1.zip수동 설치 (Settings → Plugins → ⚙ → Install Plugin from Disk)
v1.4.0 - BOJ 플랫폼 지원 제거
v1.4.0
BOJ 플랫폼 지원 제거 — BOJ 서비스 종료에 따라 해당 플랫폼 관련 기능(문제 가져오기, 제출, 검색, 랜덤, 내 풀이)과 solved.ac 기반 기능을 전면 제거했습니다.
제거된 항목
- BOJ 문제 가져오기 / 제출 / 검색 / 랜덤 / 내 풀이 기능
- solved.ac 태그·난이도 API 및 관련 다이얼로그
ProblemSource.BAEKJOON,Language.baekjoonId
마이그레이션
- 업그레이드 후 첫 실행 시 PasswordSafe에 저장돼 있던 BOJ 쿠키가 자동으로 삭제됩니다.
- 기존에
problems/백준/또는problems/Baekjoon/폴더에 생성된 파일은 로컬에 그대로 남지만 플러그인이 더 이상 다루지 않습니다.
현재 지원 플랫폼
- 프로그래머스
- SWEA
- LeetCode
- Codeforces
설치
아래 CodingTestKit-1.4.0.zip을 내려받아 IntelliJ IDEA > Settings > Plugins > ⚙ > Install Plugin from Disk로 설치하거나, JetBrains Marketplace 업데이트를 기다려 주세요.
v1.3.1 - Deprecated API 해결
🛠 Marketplace 검증 이슈 수정
v1.3.0 Marketplace 검증에서 발견된 deprecated API 사용을 전부 해결한 패치 릴리즈.
🔧 수정사항
- [수정] CredentialAttributes 생성자 – 2024.1 SDK 컴파일 타겟 때문에 Kotlin이 1-arg 호출을
requestor: Class<*>?포함 deprecated 생성자로 바인딩하던 이슈. 컴파일 타겟을 2024.3 으로 올려 새 secondary constructor 에 바인딩되도록 수정 - [수정] java.net.URL(String) – ProgrammersApi 에서
URL(url)을URI.create(url).toURL()로 교체 (Java 21+ deprecation) - [수정] ModuleTypeId.JAVA_MODULE – 2024.3 에서 제거된 상수를 인라인 문자열로 교체
⚠️ 호환성 변경
- sinceBuild 241 → 242: IntelliJ IDEA 2024.1 지원 중단. 최소 지원 버전은 2024.2. (위 API 마이그레이션을 위해 불가피)
✅ 검증 결과
IC-242.26775.15 (2024.2.6), IC-243.28141.18 (2024.3.7), IC-251.29188.11 (2025.1.7), IC-252.28539.33 (2025.2.6) 전부 Compatible, deprecated API 0건
v1.3.0 의 보안/Privacy 개선사항은 그대로 유지됩니다.
v1.3.0 - Marketplace 가이드라인 대응
🔒 보안 & Marketplace 대응 릴리즈
기존 유저의 쿠키/토큰은 첫 실행 시 자동 마이그레이션되어 재로그인 필요 없음.
🔒 보안
- 사이트 로그인 쿠키 (백준, 프로그래머스, SWEA, LeetCode, Codeforces) 와 GitHub 액세스 토큰을 평문 XML 파일 대신 IntelliJ PasswordSafe (OS 키체인) 에 저장
🐛 UX
- 로그인 다이얼로그가 대상 사이트의 4xx/5xx 응답 (예: 백준 504 Gateway Time-out) 이나 네트워크 오류에서 멈추지 않고 명확한 에러 메시지와 새로고침 버튼 표시
📄 Marketplace
- PRIVACY.md 추가 및 플러그인 설명에 Privacy & Data 섹션 추가 (JetBrains Marketplace 2025 업데이트된 심사 가이드라인 대응)
- 추측성 untilBuild 제거 → Marketplace 가 미래 IDE 버전 호환성을 동적으로 관리
검증: verifyPlugin 통과, deprecated API 사용 0건
v1.2.1
v1.2.1
Fix
- Deprecated API – Replaced
StatusBarWidget.TextPresentation(which uses obsoletecom.intellij.util.Consumer) withCustomStatusBarWidget+TextPanel.WithIconAndArrows+MouseAdapter - BOJ subtask missing – Subtask section (번호/배점/제한 table) is now included when fetching Baekjoon problems that have subtasks
수정
- Deprecated API –
StatusBarWidget.TextPresentation(obsolete인com.intellij.util.Consumer사용)을CustomStatusBarWidget+TextPanel.WithIconAndArrows+MouseAdapter로 교체 - 백준 서브태스크 누락 – 서브태스크가 있는 백준 문제를 가져올 때 서브태스크 섹션(번호/배점/제한 테이블)이 문제 설명에 포함되도록 수정