@@ -41,8 +41,8 @@ async function convertFileTo(newLanguage: Language, document?: vscode.TextDocume
4141 parsedDocument = parseAsciiPLIST ( text ) ;
4242 break ;
4343 }
44- } catch ( error ) {
45- console . warn ( `TextMate: Attempted file conversion from ${ language } \n${ error } ` ) ;
44+ } catch ( error : any ) {
45+ vscode . window . showWarningMessage ( `TextMate: Error converting file from ${ language } : \n${ error . toString ( ) } ` ) ;
4646 }
4747 // console.log(`parsedDocument: ${language}\n`, parsedDocument);
4848 if ( parsedDocument != null ) {
@@ -66,24 +66,29 @@ async function convertFileTo(newLanguage: Language, document?: vscode.TextDocume
6666 const indent = insertSpaces ? '' . padEnd ( tabSize , ' ' ) : '\t' ;
6767
6868 let newText : string ;
69- switch ( newLanguage ) {
70- case 'JSON' :
71- newText = JSON . stringify ( parsedDocument , null , indent ) ;
72- break ;
73- case 'YAML' :
74- newText = YAML . stringify ( parsedDocument , {
75- keepUndefined : true ,
76- indent : tabSize ,
77- } ) ;
78- break ;
79- case 'XML' :
80- newText = XML . build ( parsedDocument , { indent : indent } ) ;
81- break ;
82- case 'PLIST' :
83- newText = stringifyAsciiPLIST ( parsedDocument , indent ) ;
84- break ;
85- default :
86- return ;
69+ try {
70+ switch ( newLanguage ) {
71+ case 'JSON' :
72+ newText = JSON . stringify ( parsedDocument , null , indent ) ;
73+ break ;
74+ case 'YAML' :
75+ newText = YAML . stringify ( parsedDocument , {
76+ keepUndefined : true ,
77+ indent : tabSize ,
78+ } ) ;
79+ break ;
80+ case 'XML' :
81+ newText = XML . build ( parsedDocument , { indent : indent } ) ;
82+ break ;
83+ case 'PLIST' :
84+ newText = stringifyAsciiPLIST ( parsedDocument , indent ) ;
85+ break ;
86+ default :
87+ return ;
88+ }
89+ } catch ( error : any ) {
90+ vscode . window . showWarningMessage ( `TextMate: Error converting file to ${ newLanguage } :\n${ error . toString ( ) } ` ) ;
91+ return ;
8792 }
8893
8994 const newDocument = await vscode . workspace . openTextDocument ( { content : newText , language : documentLanguage } ) ;
@@ -94,7 +99,7 @@ async function convertFileTo(newLanguage: Language, document?: vscode.TextDocume
9499 await vscode . window . showTextDocument ( newDocument , options ) ;
95100}
96101
97- function rankLanguages ( document : vscode . TextDocument ) {
102+ function rankLanguages ( document : vscode . TextDocument ) : Language [ ] {
98103 const languages : { [ key in Language ] : number ; } = {
99104 JSON : 0 ,
100105 YAML : 0 ,
@@ -116,7 +121,7 @@ function rankLanguages(document: vscode.TextDocument) {
116121 languages . PLIST += 10 ;
117122 }
118123 if ( / ^ p l a i n t e x t $ / i. test ( documentLanguage ) ) {
119- languages . PLIST += 5 ;
124+ languages . PLIST += 4 ;
120125 }
121126
122127 const fileName = document . fileName ;
@@ -133,6 +138,7 @@ function rankLanguages(document: vscode.TextDocument) {
133138 languages . PLIST += 5 ;
134139 }
135140 if ( / t m L a n g u a g e $ / i. test ( fileName ) ) {
141+ languages . XML += 2 ;
136142 languages . PLIST += 2 ;
137143 }
138144
@@ -141,7 +147,7 @@ function rankLanguages(document: vscode.TextDocument) {
141147 languages . JSON += 2 ;
142148 }
143149 if ( / ^ \s * # | ^ % | \w + : \s / i. test ( text ) ) {
144- languages . YAML += 3 ;
150+ languages . YAML += 4 ;
145151 }
146152 if ( / ^ \s * { / i. test ( text ) ) {
147153 languages . YAML += 1 ;
0 commit comments