Skip to content

Releases: dj258255/codingtestkit

v1.6.0 - 타이머 상시 표시 + 코드포스 안정화

Choose a tag to compare

@dj258255 dj258255 released this 06 Jul 16:54
be14bf4

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 timeout error 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 언어 지원

Choose a tag to compare

@dj258255 dj258255 released this 05 Jul 16:38
058a885

새 기능

  • 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

Choose a tag to compare

@dj258255 dj258255 released this 23 Jun 09:11

IntelliJ 2026.2 호환성

IntelliJ 2026.2에서 JCEF CefResourceHandler 인터페이스가 변경(processRequest/readResponseopen/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

Choose a tag to compare

@dj258255 dj258255 released this 22 Jun 03:48

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 도구 탐지whichwhere, .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)

Choose a tag to compare

@dj258255 dj258255 released this 28 Apr 13:25

변경 사항

빌드 설정 정리

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 - 피드백 채널(구글 폼) 추가

Choose a tag to compare

@dj258255 dj258255 released this 28 Apr 12:52

변경 사항

신규 기능

  • 설정 → 피드백 섹션 추가: 도구창 설정 탭에 "버그 제보 & 기능 제안" 버튼 추가
    클릭 시 구글 폼이 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 플랫폼 지원 제거

Choose a tag to compare

@dj258255 dj258255 released this 21 Apr 10:44

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 해결

Choose a tag to compare

@dj258255 dj258255 released this 15 Apr 03:27

🛠 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 가이드라인 대응

Choose a tag to compare

@dj258255 dj258255 released this 14 Apr 19:51

🔒 보안 & 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

Choose a tag to compare

@dj258255 dj258255 released this 23 Mar 13:04

v1.2.1

Fix

  • Deprecated API – Replaced StatusBarWidget.TextPresentation (which uses obsolete com.intellij.util.Consumer) with CustomStatusBarWidget + TextPanel.WithIconAndArrows + MouseAdapter
  • BOJ subtask missing – Subtask section (번호/배점/제한 table) is now included when fetching Baekjoon problems that have subtasks

수정

  • Deprecated APIStatusBarWidget.TextPresentation (obsolete인 com.intellij.util.Consumer 사용)을 CustomStatusBarWidget + TextPanel.WithIconAndArrows + MouseAdapter로 교체
  • 백준 서브태스크 누락 – 서브태스크가 있는 백준 문제를 가져올 때 서브태스크 섹션(번호/배점/제한 테이블)이 문제 설명에 포함되도록 수정