@@ -28,7 +28,9 @@ export type SyntaxStatus = "complete" | "incomplete" | "invalid"; // 構文チ
2828export function writeOutput (
2929 term : Terminal ,
3030 outputs : ReplOutput [ ] ,
31- endNewLine : boolean
31+ endNewLine : boolean ,
32+ returnPrefix : string | undefined ,
33+ language : RuntimeLang
3234) {
3335 for ( let i = 0 ; i < outputs . length ; i ++ ) {
3436 const output = outputs [ i ] ;
@@ -47,6 +49,12 @@ export function writeOutput(
4749 case "system" :
4850 term . write ( systemMessageColor ( message ) ) ;
4951 break ;
52+ case "return" :
53+ if ( returnPrefix ) {
54+ term . write ( returnPrefix ) ;
55+ }
56+ term . write ( highlightCodeToAnsi ( message , language ) ) ;
57+ break ;
5058 default :
5159 term . write ( message ) ;
5260 break ;
@@ -77,7 +85,7 @@ export function ReplTerminal({
7785 checkSyntax,
7886 splitReplExamples,
7987 } = useRuntime ( language ) ;
80- const { tabSize, prompt, promptMore } = langConstants ( language ) ;
88+ const { tabSize, prompt, promptMore, returnPrefix } = langConstants ( language ) ;
8189 if ( ! prompt ) {
8290 console . warn ( `prompt not defined for language: ${ language } ` ) ;
8391 }
@@ -160,12 +168,18 @@ export function ReplTerminal({
160168 const handleOutput = useCallback (
161169 ( outputs : ReplOutput [ ] ) => {
162170 if ( terminalInstanceRef . current ) {
163- writeOutput ( terminalInstanceRef . current , outputs , true ) ;
171+ writeOutput (
172+ terminalInstanceRef . current ,
173+ outputs ,
174+ true ,
175+ returnPrefix ,
176+ language
177+ ) ;
164178 // 出力が終わったらプロンプトを表示
165179 updateBuffer ( ( ) => [ "" ] ) ;
166180 }
167181 } ,
168- [ updateBuffer , terminalInstanceRef ]
182+ [ updateBuffer , terminalInstanceRef , returnPrefix , language ]
169183 ) ;
170184
171185 const keyHandler = useCallback (
0 commit comments