@@ -45,10 +45,10 @@ interface ProgressParams {
45
45
export async function activate ( context : ExtensionContext ) {
46
46
context . subscriptions . push ( configureLanguage ( ) ) ;
47
47
48
- workspace . onDidOpenTextDocument ( doc => didOpenTextDocument ( doc , context ) ) ;
49
- workspace . textDocuments . forEach ( doc => didOpenTextDocument ( doc , context ) ) ;
48
+ workspace . onDidOpenTextDocument ( doc => whenOpeningTextDocument ( doc , context ) ) ;
49
+ workspace . textDocuments . forEach ( doc => whenOpeningTextDocument ( doc , context ) ) ;
50
50
workspace . onDidChangeWorkspaceFolders ( e =>
51
- didChangeWorkspaceFolders ( e , context ) ,
51
+ whenChangingWorkspaceFolders ( e , context ) ,
52
52
) ;
53
53
}
54
54
@@ -57,7 +57,7 @@ export async function deactivate() {
57
57
}
58
58
59
59
// Taken from https://github.com/Microsoft/vscode-extension-samples/blob/master/lsp-multi-server-sample/client/src/extension.ts
60
- function didOpenTextDocument (
60
+ function whenOpeningTextDocument (
61
61
document : TextDocument ,
62
62
context : ExtensionContext ,
63
63
) {
@@ -71,17 +71,17 @@ function didOpenTextDocument(
71
71
return ;
72
72
}
73
73
74
- if (
75
- workspace
74
+ const inMultiProjectMode = workspace
76
75
. getConfiguration ( )
77
- . get < boolean > ( 'rust-client.enableMultiProjectSetup' , false )
78
- ) {
79
- folder = getCargoTomlWorkspace ( folder , document . uri . fsPath ) ;
80
- } else if (
81
- workspace
82
- . getConfiguration ( )
83
- . get < boolean > ( 'rust-client.nestedMultiRootConfigInOutermost' , true )
84
- ) {
76
+ . get < boolean > ( 'rust-client.enableMultiProjectSetup' , false ) ;
77
+
78
+ const inNestedOuterProjectMode = workspace
79
+ . getConfiguration ( )
80
+ . get < boolean > ( 'rust-client.nestedMultiRootConfigInOutermost' , true ) ;
81
+
82
+ if ( inMultiProjectMode ) {
83
+ folder = workspace_util . nearestParentWorkspace ( folder , document . uri . fsPath ) ;
84
+ } else if ( inNestedOuterProjectMode ) {
85
85
folder = getOuterMostWorkspaceFolder ( folder ) ;
86
86
}
87
87
@@ -139,7 +139,7 @@ function getOuterMostWorkspaceFolder(folder: WorkspaceFolder): WorkspaceFolder {
139
139
return folder ;
140
140
}
141
141
142
- function didChangeWorkspaceFolders (
142
+ function whenChangingWorkspaceFolders (
143
143
e : WorkspaceFoldersChangeEvent ,
144
144
context : ExtensionContext ,
145
145
) {
0 commit comments