@@ -14,6 +14,7 @@ export const CodeActionsProvider: vscode.CodeActionProvider = {
1414 provideCodeActions ( document : vscode . TextDocument , range : vscode . Range | vscode . Selection , context : vscode . CodeActionContext , token : vscode . CancellationToken ) : vscode . CodeAction [ ] {
1515 // vscode.window.showInformationMessage(JSON.stringify("CodeActions"));
1616 // vscode.window.showInformationMessage(JSON.stringify(context));
17+ // const start = performance.now();
1718
1819 const codeActions : vscode . CodeAction [ ] = [ ] ;
1920 let codeAction : CodeAction ;
@@ -87,15 +88,14 @@ export const CodeActionsProvider: vscode.CodeActionProvider = {
8788
8889 const trees = getTrees ( document ) ;
8990 const regexNodes = trees . regexNodes ;
90- for ( const key in regexNodes ) {
91- const regexNode = regexNodes [ key ] ;
91+ for ( const regexNode of regexNodes . values ( ) ) {
9292 const parentRange = toRange ( trueParent ( regexNode ) ) ;
9393 if ( parentRange . intersection ( range ) ) {
9494 codeAction = {
9595 title : `Minify Regex` ,
9696 kind : vscode . CodeActionKind . RefactorRewrite . append ( "minify" ) ,
9797 document : document ,
98- nodeId : < number > < unknown > key , // why?
98+ nodeId : regexNode . id ,
9999 } ;
100100 codeActions . push ( codeAction ) ;
101101 minifyRegex = true ;
@@ -112,10 +112,12 @@ export const CodeActionsProvider: vscode.CodeActionProvider = {
112112 }
113113
114114 // vscode.window.showInformationMessage(JSON.stringify(codeActions));
115+ // vscode.window.showInformationMessage(`codeActions ${performance.now() - start}ms`);
115116 return codeActions ;
116117 } ,
117118 resolveCodeAction ( codeAction : CodeAction , token : vscode . CancellationToken ) : vscode . CodeAction {
118119 // vscode.window.showInformationMessage(JSON.stringify(codeAction));
120+ // const start = performance.now();
119121 const document = codeAction . document ;
120122 const uri = document . uri ;
121123
@@ -126,24 +128,23 @@ export const CodeActionsProvider: vscode.CodeActionProvider = {
126128 const id = codeAction . nodeId ;
127129
128130 if ( id == - 1 ) {
129- for ( const key in regexTrees ) {
130- const regexTree = regexTrees [ key ] ;
131+ for ( const regexTree of regexTrees . values ( ) ) {
131132 const rootNode = regexTree . rootNode ;
132133 rootNodes . push ( rootNode ) ;
133134 }
134135 }
135136 else {
136137 const regexNodes = trees . regexNodes ;
137- const jsonNode = regexNodes [ id ] ;
138- const regexTree = regexTrees [ jsonNode . id ] ;
138+ const jsonNode = regexNodes . get ( id ) ;
139+ const regexTree = regexTrees . get ( jsonNode . id ) ;
139140 const rootNode = regexTree . rootNode ;
140141 rootNodes . push ( rootNode ) ;
141142 }
142143
143144 const edit = new vscode . WorkspaceEdit ;
144145
145146 for ( const rootNode of rootNodes ) {
146- const minifyQuery = `
147+ const minifyQuery = `;scm
147148 (backslash) @backslash
148149 (comment_group) @comment
149150 (comment_extended) @comment
@@ -300,6 +301,7 @@ export const CodeActionsProvider: vscode.CodeActionProvider = {
300301
301302 // vscode.window.showInformationMessage(JSON.stringify(edit));
302303 codeAction . edit = edit ;
304+ // vscode.window.showInformationMessage(`codeAction ${performance.now() - start}ms`);
303305 return codeAction ;
304306 } ,
305307} ;
0 commit comments