@@ -55,6 +55,7 @@ export function EditorComponent(props: EditorProps) {
5555 const annotations = useMemo ( ( ) => {
5656 return fileDiagnostics . flatMap ( ( diag ) =>
5757 diag . frames
58+ . slice ( 0 , 1 )
5859 . filter ( ( f ) => f . filename === props . filename )
5960 . map ( ( f ) => ( {
6061 row : Math . max ( 0 , f . startLineNumber - 1 ) ,
@@ -68,26 +69,36 @@ export function EditorComponent(props: EditorProps) {
6869 const markers = useMemo ( ( ) => {
6970 return fileDiagnostics . flatMap ( ( diag ) =>
7071 diag . frames
72+ . map ( ( f , i ) => ( { ...f , isFirstFrame : i === 0 } ) )
7173 . filter ( ( f ) => f . filename === props . filename )
7274 . map ( ( f ) => {
7375 const startRow = Math . max ( 0 , f . startLineNumber - 1 ) ;
7476 const endRow = f . endLineNumber
75- ? Math . max ( 0 , f . endLineNumber - 1 )
77+ ? Math . max ( startRow , f . endLineNumber - 1 )
7678 : startRow ;
7779 const startCol =
7880 f . startColumn !== undefined ? Math . max ( 0 , f . startColumn - 1 ) : 0 ;
7981 const endCol =
8082 f . endColumn !== undefined
81- ? Math . max ( 0 , f . endColumn - 1 )
83+ ? Math . max ( startCol + 1 , f . endColumn - 1 )
8284 : Number . MAX_SAFE_INTEGER ;
8385
8486 const isError = ( diag . severity ?? "error" ) === "error" ;
8587 const isWarning = diag . severity === "warning" ;
86- const className = isError
87- ? "ace_error-marker"
88- : isWarning
89- ? "ace_warning-marker"
90- : "ace_info-marker" ;
88+ const className = clsx (
89+ "absolute rounded-b-none! border-dashed border-b-1" ,
90+ isError
91+ ? "border-error"
92+ : isWarning
93+ ? "border-warning"
94+ : "border-accent" ,
95+ f . isFirstFrame &&
96+ ( isError
97+ ? "bg-error/20"
98+ : isWarning
99+ ? "bg-warning/20"
100+ : "bg-accent/20" )
101+ ) ;
91102
92103 return {
93104 startRow,
0 commit comments