@@ -8,34 +8,44 @@ export const yamlParseLinter =
8
8
const diagnostics : Diagnostic [ ] = [ ]
9
9
const text = view . state . doc . toString ( )
10
10
11
- // Parse YAML
12
- const documents = YAML . parseAllDocuments ( text )
11
+ try {
12
+ // Parse YAML
13
+ const documents = YAML . parseAllDocuments ( text )
13
14
14
- // Handle YAML parse errors
15
- documents . forEach ( ( { errors } ) => {
16
- errors . forEach ( ( err ) => {
17
- if ( err instanceof YAMLParseError ) {
18
- const { linePos = [ ] , message } = err
19
- const { from } = view . state . doc . line ( linePos [ 0 ] ?. line || 0 )
15
+ // Handle YAML parse errors
16
+ documents . forEach ( ( { errors } ) => {
17
+ errors . forEach ( ( err ) => {
18
+ if ( err instanceof YAMLParseError ) {
19
+ const { linePos = [ ] , message } = err
20
+ const { from } = view . state . doc . line ( linePos [ 0 ] ?. line || 0 )
20
21
21
- diagnostics . push ( {
22
- from,
23
- to : from + ( linePos [ 0 ] ?. col || 0 ) ,
24
- message : message . replace ( / \n + / g, '\n' ) ,
25
- severity : 'error' ,
26
- source : err . name ,
27
- } )
28
- } else {
29
- diagnostics . push ( {
30
- from : 0 ,
31
- to : text . length ,
32
- message : err instanceof Error ? err . message : 'Unknown error' ,
33
- severity : 'error' ,
34
- source : err . name ,
35
- } )
36
- }
22
+ diagnostics . push ( {
23
+ from,
24
+ to : Math . min ( from + ( linePos [ 0 ] ?. col || 0 ) , text . length ) ,
25
+ message : message . replace ( / \n + / g, '\n' ) ,
26
+ severity : 'error' ,
27
+ source : err . name ,
28
+ } )
29
+ } else {
30
+ diagnostics . push ( {
31
+ from : 0 ,
32
+ to : text . length ,
33
+ message : err instanceof Error ? err . message : 'Unknown error' ,
34
+ severity : 'error' ,
35
+ source : err . name ,
36
+ } )
37
+ }
38
+ } )
37
39
} )
38
- } )
40
+ } catch ( err ) {
41
+ diagnostics . push ( {
42
+ from : 0 ,
43
+ to : text . length ,
44
+ message : err instanceof Error ? err . message : 'Yaml lint failed' ,
45
+ severity : 'error' ,
46
+ source : err . name ,
47
+ } )
48
+ }
39
49
40
50
return diagnostics
41
51
}
0 commit comments