@@ -128,57 +128,60 @@ export function activate(context: vscode.ExtensionContext): void {
128
128
129
129
// Check if we need to add some source directories to the workspace (e.g: when imported projects'
130
130
// source directories are not placed under the root project's directory).
131
- client . onReady ( ) . then ( ( ) => {
132
- client . sendRequest ( "workspace/alsSourceDirs" ) . then (
133
- data => {
134
- const source_dirs = JSON . parse ( JSON . stringify ( data ) ) ;
135
- const workspace_folders = vscode . workspace . workspaceFolders ?? [ ]
136
- let workspace_dirs_to_add : { uri : vscode . Uri , name ?: string | undefined } [ ] = [ ]
137
-
138
- for ( var source_dir of source_dirs ) {
139
- const source_dir_uri = vscode . Uri . parse ( source_dir . uri )
140
- let source_dir_path = source_dir_uri . path
141
- let workspace_folder_path = workspace_folders [ 0 ] . uri . path
142
-
143
- function is_subdirectory ( dir : string , parent : string ) {
144
- // Use lower-case on Windows since drives can be specified in VS Code either
145
- // with lower or upper case characters.
146
- if ( process . platform == "win32" ) {
147
- dir = dir . toLowerCase ( ) ;
148
- parent = parent . toLowerCase ( ) ;
149
- }
131
+ // Do nothing is the user did not setup any workspace file.
132
+ if ( vscode . workspace . workspaceFile !== undefined ) {
133
+ client . onReady ( ) . then ( ( ) => {
134
+ client . sendRequest ( "workspace/alsSourceDirs" ) . then (
135
+ data => {
136
+ const source_dirs = JSON . parse ( JSON . stringify ( data ) ) ;
137
+ const workspace_folders = vscode . workspace . workspaceFolders ?? [ ]
138
+ let workspace_dirs_to_add : { uri : vscode . Uri , name ?: string | undefined } [ ] = [ ]
139
+
140
+ for ( var source_dir of source_dirs ) {
141
+ const source_dir_uri = vscode . Uri . parse ( source_dir . uri )
142
+ let source_dir_path = source_dir_uri . path
143
+ let workspace_folder_path = workspace_folders [ 0 ] . uri . path
144
+
145
+ function is_subdirectory ( dir : string , parent : string ) {
146
+ // Use lower-case on Windows since drives can be specified in VS Code either
147
+ // with lower or upper case characters.
148
+ if ( process . platform == "win32" ) {
149
+ dir = dir . toLowerCase ( ) ;
150
+ parent = parent . toLowerCase ( ) ;
151
+ }
150
152
151
- return dir . startsWith ( parent + '/' ) ;
153
+ return dir . startsWith ( parent + '/' ) ;
152
154
153
- }
155
+ }
154
156
155
- // If the source directory is not under one of the workspace folders, push this
156
- // source directory to the workspace folders to add later.
157
- if ( ! workspace_folders . some ( workspace_folder =>
158
- is_subdirectory ( source_dir_path , workspace_folder . uri . path ) ) ) {
159
- workspace_dirs_to_add . push ( { name : source_dir . name , uri : source_dir_uri } ) ;
157
+ // If the source directory is not under one of the workspace folders, push this
158
+ // source directory to the workspace folders to add later.
159
+ if ( ! workspace_folders . some ( workspace_folder =>
160
+ is_subdirectory ( source_dir_path , workspace_folder . uri . path ) ) ) {
161
+ workspace_dirs_to_add . push ( { name : source_dir . name , uri : source_dir_uri } ) ;
162
+ }
160
163
}
161
- }
162
164
163
- // If there are some source directories missing in the workspace, ask the user
164
- // to add them in his workspace.
165
- if ( workspace_dirs_to_add . length > 0 ) {
166
- vscode . window
167
- . showInformationMessage ( "Some project source directories are not "
168
- + "listed in your workspace: do you want to add them?" , "Yes" , "No" )
169
- . then ( answer => {
170
- if ( answer === "Yes" ) {
171
- for ( var workspace_dir of workspace_dirs_to_add ) {
172
- vscode . workspace . updateWorkspaceFolders (
173
- vscode . workspace . workspaceFolders ? vscode . workspace . workspaceFolders . length : 0 , null ,
174
- workspace_dir ) ;
165
+ // If there are some source directories missing in the workspace, ask the user
166
+ // to add them in his workspace.
167
+ if ( workspace_dirs_to_add . length > 0 ) {
168
+ vscode . window
169
+ . showInformationMessage ( "Some project source directories are not "
170
+ + "listed in your workspace: do you want to add them?" , "Yes" , "No" )
171
+ . then ( answer => {
172
+ if ( answer === "Yes" ) {
173
+ for ( var workspace_dir of workspace_dirs_to_add ) {
174
+ vscode . workspace . updateWorkspaceFolders (
175
+ vscode . workspace . workspaceFolders ? vscode . workspace . workspaceFolders . length : 0 , null ,
176
+ workspace_dir ) ;
175
177
}
176
- }
177
- } )
178
+ }
179
+ } )
180
+ }
178
181
}
179
- }
180
- )
181
- } )
182
+ )
183
+ } )
184
+ }
182
185
}
183
186
184
187
export function deactivate ( ) : void {
0 commit comments