@@ -62,7 +62,6 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
6262 ) : Promise < void > {
6363 const rangeKey = this . getRangeKey ( range ) ;
6464
65- // 立即更新状态
6665 if ( isOptimizing ) {
6766 this . state . optimizingRanges . set ( rangeKey , {
6867 range,
@@ -74,10 +73,8 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
7473
7574 this . state . isOptimizing = this . state . optimizingRanges . size > 0 ;
7675
77- // 使用防抖处理刷新
76+ // 这两个调用都需要保留await,因为它们涉及UI更新和状态同步
7877 await this . debouncedRefresh ( ) ;
79-
80- // 确保状态已更新
8178 await this . ensureStateUpdate ( ) ;
8279 }
8380
@@ -94,8 +91,8 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
9491 } ) ;
9592 }
9693
97- private async ensureStateUpdate ( ) : Promise < void > {
98- await new Promise < void > ( ( resolve ) => {
94+ private ensureStateUpdate ( ) : Promise < void > {
95+ return new Promise < void > ( ( resolve ) => {
9996 if ( typeof window !== "undefined" && window . requestAnimationFrame ) {
10097 window . requestAnimationFrame ( ( ) => {
10198 setTimeout ( resolve , 16 ) ;
@@ -132,14 +129,16 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
132129 const codeLenses : vscode . CodeLens [ ] = [ ] ;
133130
134131 try {
135- // 使用缓存的范围信息来加速状态检查
136132 const optimizingRanges = Array . from ( this . state . optimizingRanges . values ( ) ) ;
137133
138- // 1. 处理文件级别的配置
139- await this . addFileConfigurationLens ( document , codeLenses ) ;
134+ // 需要保留await,因为这涉及文件系统操作
135+ const fileWorkspace = await this . addFileConfigurationLens (
136+ document ,
137+ codeLenses
138+ ) ;
140139
141- // 2. 处理 SQL 查询级别的操作
142140 if ( ! token . isCancellationRequested ) {
141+ // 需要保留await,因为这涉及文本解析和工作区配置
143142 await this . addSqlQueryLenses (
144143 document ,
145144 codeLenses ,
@@ -159,19 +158,17 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
159158 document : vscode . TextDocument ,
160159 codeLenses : vscode . CodeLens [ ]
161160 ) {
162- // 获取文件和用户的工作空间设置
163161 const fileUri = document . uri . toString ( ) ;
162+ // 需要保留await,因为这涉及文件系统操作
164163 const fileWorkspace = await ConfigurationService . getFileDefaultWorkspace (
165164 fileUri
166165 ) ;
167166
168- // 在文件开头添加注释分隔符
169167 const separatorRange = new vscode . Range (
170168 new vscode . Position ( 0 , 0 ) ,
171169 new vscode . Position ( 1 , 0 )
172170 ) ;
173171
174- // 从配置中读取默认工作空间
175172 const defaultWorkspace = vscode . workspace . getConfiguration ( "pawsql" ) . get < {
176173 workspaceId : string ;
177174 workspaceName : string ;
@@ -184,6 +181,7 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
184181 . getConfiguration ( "pawsql" )
185182 . get < string > ( "apiKey" ) ;
186183
184+ // 需要保留await,因为这是API调用
187185 const isApikeyValid = await ApiService . validateUserKey ( apiKey ?? "" ) ;
188186
189187 if ( ! isApikeyValid ) {
@@ -236,11 +234,13 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
236234 optimizingRanges : Array < { range : vscode . Range ; timestamp : number } >
237235 ) {
238236 const text = document . getText ( ) ;
237+ // 需要保留await,因为这涉及文本解析
239238 const queries = await this . parseWithThrottle ( text ) ;
239+ // 需要保留await,因为这涉及文件系统操作
240240 const fileWorkspace = await ConfigurationService . getFileDefaultWorkspace (
241241 document . uri . toString ( )
242242 ) ;
243-
243+ // 需要保留await,因为这涉及工作区配置
244244 const defaultWorkspace = await ConfigurationService . getDefaultWorkspace ( ) ;
245245
246246 let lastIndex = 0 ;
@@ -257,7 +257,6 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
257257
258258 const queryRange = new vscode . Range ( startPos , endPos ) ;
259259
260- // 使用缓存的优化状态
261260 const isOptimizing = optimizingRanges . some ( ( item ) =>
262261 this . rangesEqual ( item . range , queryRange )
263262 ) ;
@@ -285,7 +284,7 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
285284 codeLenses . push (
286285 new vscode . CodeLens ( queryRange , {
287286 title : LanguageService . getMessage ( "OPTIMIZING_SQL" ) ,
288- command : "" , // 空命令使其不可点击
287+ command : "" ,
289288 } )
290289 ) ;
291290 } else {
@@ -312,7 +311,7 @@ export class SqlCodeLensProvider implements vscode.CodeLensProvider {
312311 }
313312
314313 private parseThrottleTimeout : NodeJS . Timeout | null = null ;
315- private async parseWithThrottle ( text : string ) : Promise < string [ ] > {
314+ private parseWithThrottle ( text : string ) : Promise < string [ ] > {
316315 return new Promise ( ( resolve ) => {
317316 if ( this . parseThrottleTimeout ) {
318317 clearTimeout ( this . parseThrottleTimeout ) ;
0 commit comments