feat: Compiler diagnostics in the IDE Build Output window (#32) - #38
Merged
Conversation
- 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종 추가
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
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.compileErrorflag (7 compile-failure points) +isStartupError()gate for interpreted languagesBuildOutputPublisherposts BuildViewManager events; per-language parsers extractfile:line[:col]— including rustc's two-line format and Python tracebacksSolution.java, Kotlin's append-only wrapper) — full wrapper mapping lands with the debugging PR's line-preserving refactorVerification
Main.java:3link jumps to the source line, Run All posts a single entry