mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-10-31 12:04:43 +00:00 
			
		
		
		
	change config rust-analyzer.statusBar.documentSelector to showStatusBar
This commit is contained in:
		
							parent
							
								
									fe027d79d2
								
							
						
					
					
						commit
						ed0df3094b
					
				
					 3 changed files with 64 additions and 37 deletions
				
			
		|  | @ -426,29 +426,44 @@ | |||
|                         "default": "openLogs", | ||||
|                         "markdownDescription": "Action to run when clicking the extension status bar item." | ||||
|                     }, | ||||
|                     "rust-analyzer.statusBar.documentSelector": { | ||||
|                         "type": [ | ||||
|                             "array", | ||||
|                             "null" | ||||
|                         ], | ||||
|                     "rust-analyzer.statusBar.showStatusBar": { | ||||
|                         "markdownDescription": "When to show the extension status bar.\n\n`\"always\"` Always show the status bar.\n\n`\"never\"` Never show the status bar.\n\n`{ documentSelector: <DocumentSelector>[] }` Show the status bar if the open file matches any of the given document selectors.\n\nSee [VS Code -- DocumentSelector](https://code.visualstudio.com/api/references/document-selector) for more information.", | ||||
|                         "anyOf": [ | ||||
|                             { | ||||
|                                 "type": "string", | ||||
|                                 "enum": [ | ||||
|                                     "always", | ||||
|                                     "never" | ||||
|                                 ] | ||||
|                             }, | ||||
|                             { | ||||
|                                 "type": "object", | ||||
|                                 "properties": { | ||||
|                                     "documentSelector": { | ||||
|                                         "type": "array", | ||||
|                                         "items": { | ||||
|                                             "type": "object", | ||||
|                                             "properties": { | ||||
|                                                 "language": { | ||||
|                                     "type": [ | ||||
|                                         "string", | ||||
|                                         "null" | ||||
|                                     ] | ||||
|                                                     "type": "string" | ||||
|                                                 }, | ||||
|                                                 "notebookType": { | ||||
|                                                     "type": "string" | ||||
|                                                 }, | ||||
|                                                 "scheme": { | ||||
|                                                     "type": "string" | ||||
|                                                 }, | ||||
|                                                 "pattern": { | ||||
|                                     "type": [ | ||||
|                                         "string", | ||||
|                                         "null" | ||||
|                                     ] | ||||
|                                                     "type": "string" | ||||
|                                                 } | ||||
|                                             } | ||||
|                         }, | ||||
|                         "default": [ | ||||
|                                         } | ||||
|                                     } | ||||
|                                 } | ||||
|                             } | ||||
|                         ], | ||||
|                         "default": { | ||||
|                             "documentSelector": [ | ||||
|                                 { | ||||
|                                     "language": "rust" | ||||
|                                 }, | ||||
|  | @ -458,8 +473,8 @@ | |||
|                                 { | ||||
|                                     "pattern": "**/Cargo.lock" | ||||
|                                 } | ||||
|                         ], | ||||
|                         "markdownDescription": "Determines when to show the extension status bar item based on the currently open file. Use `{ \"pattern\": \"**\" }` to always show. Use `null` to never show." | ||||
|                             ] | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|  |  | |||
|  | @ -13,6 +13,13 @@ export type RunnableEnvCfgItem = { | |||
| }; | ||||
| export type RunnableEnvCfg = Record<string, string> | RunnableEnvCfgItem[]; | ||||
| 
 | ||||
| type ShowStatusBar = | ||||
|     | "always" | ||||
|     | "never" | ||||
|     | { | ||||
|           documentSelector: vscode.DocumentSelector; | ||||
|       }; | ||||
| 
 | ||||
| export class Config { | ||||
|     readonly extensionId = "rust-lang.rust-analyzer"; | ||||
|     configureLang: vscode.Disposable | undefined; | ||||
|  | @ -348,8 +355,8 @@ export class Config { | |||
|         return this.get<string>("statusBar.clickAction"); | ||||
|     } | ||||
| 
 | ||||
|     get statusBarDocumentSelector() { | ||||
|         return this.get<vscode.DocumentSelector>("statusBar.documentSelector"); | ||||
|     get statusBarShowStatusBar() { | ||||
|         return this.get<ShowStatusBar>("statusBar.showStatusBar"); | ||||
|     } | ||||
| 
 | ||||
|     get initializeStopped() { | ||||
|  |  | |||
|  | @ -478,15 +478,20 @@ export class Ctx implements RustAnalyzerExtensionApi { | |||
|     } | ||||
| 
 | ||||
|     private updateStatusBarVisibility(editor: vscode.TextEditor | undefined) { | ||||
|         const documentSelector = this.config.statusBarDocumentSelector; | ||||
|         if (documentSelector != null) { | ||||
|         const showStatusBar = this.config.statusBarShowStatusBar; | ||||
|         if (showStatusBar == null || showStatusBar === "never") { | ||||
|             this.statusBar.hide(); | ||||
|         } else if (showStatusBar === "always") { | ||||
|             this.statusBar.show(); | ||||
|         } else { | ||||
|             const documentSelector = showStatusBar.documentSelector; | ||||
|             if (editor != null && vscode.languages.match(documentSelector, editor.document) > 0) { | ||||
|                 this.statusBar.show(); | ||||
|                 return; | ||||
|             } | ||||
|         } | ||||
|             } else { | ||||
|                 this.statusBar.hide(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     pushExtCleanup(d: Disposable) { | ||||
|         this.extCtx.subscriptions.push(d); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Mark Murphy
						Mark Murphy