Skip to content

feat: Compiler diagnostics in the IDE Build Output window (#32) - #38

Merged
dj258255 merged 2 commits into
mainfrom
feat/issue-32-build-output
Jul 8, 2026
Merged

feat: Compiler diagnostics in the IDE Build Output window (#32)#38
dj258255 merged 2 commits into
mainfrom
feat/issue-32-build-output

Conversation

@dj258255

@dj258255dj258255 commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Closes#32

Compiler diagnostics are now forwarded to the IDE's Build Output tool window, in addition to the test panel — the window opens automatically on failure and diagnostics are structured per file with clickable source navigation.

Coverage — all 8 languages

LanguageTriggerParser verified against
Java / Kotlin / C++ / Rust / Gocompile failurereal compiler output (javac, IDE-bundled kotlinc, clang, rustc 1.96, go 1.26)
Python / JavaScript / Rubysyntax error (program failed to start — the compile-error analog)real interpreter output

Per-case runtime exceptions stay in the test panel by design — they're test-failure information, and forwarding them would spam the Build window on Run All.

How it works

  • RunResult.compileError flag (7 compile-failure points) + isStartupError() gate for interpreted languages
  • BuildOutputPublisher posts BuildViewManager events; per-language parsers extract file:line[:col] — including rustc's two-line format and Python tracebacks
  • Click-through mapping: temp-dir diagnostics map back to the real source. stdin-style runs map 1:1 and always navigate; wrapper-style runs navigate only where line numbers are preserved (Java's separate Solution.java, Kotlin's append-only wrapper) — full wrapper mapping lands with the debugging PR's line-preserving refactor
  • Run All publishes the (identical) diagnostic once, not per case

Verification

  • 10 parser unit tests built from real compiler/interpreter outputs
  • Sandbox IDE: Build window auto-opens on a Java compile error, Main.java:3 link jumps to the source line, Run All posts a single entry

- RunResult.compileError 플래그 (7개 컴파일 실패 지점)
- BuildOutputPublisher: BuildViewManager로 진단 게시, 실패 시 Build 창 자동 표시
- 언어별 파서: javac/kotlinc/g++(file:line:col 공통), go, rustc(2줄 형식)
- 클릭 소스 이동: stdin형 실행은 1:1 매핑으로 항상, 래퍼형은 진단 파일명이
사용자 파일명과 일치하는 원형 보존 케이스(Java Solution/Kotlin)만
- 전체 실행 시 동일 컴파일 에러는 첫 케이스만 1회 게시
- 파서 단위 테스트 6종
Python(SyntaxError/IndentationError/TabError)·JS(SyntaxError)·Ruby(syntax error)의
'프로그램 시작 실패' 진단을 컴파일 에러의 대응물로 Build 창에 게시.
케이스별 런타임 예외는 테스트 케이스 실패 정보이므로 기존대로 패널 담당.
- 실제 인터프리터 출력 형식 기반 파서 3종 + 게이트(isStartupError)
- kotlinc 실출력도 IDE 번들 컴파일러로 확증 (5개 컴파일 언어 전부 실검증)
- 실출력 기반 단위 테스트 4종 추가
@dj258255
dj258255 merged commit 3d1027a into mainJul 8, 2026
2 checks passed
@dj258255
dj258255 deleted the feat/issue-32-build-output branch July 8, 2026 19:51
Sign up for freeto 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.

Display compiler warnings and build messages in the IDE Build Output instead of the test output panel

1 participant

@dj258255