@@ -34,6 +34,7 @@ import { DatabaseChangedEvent, DatabaseEventKind } from "./database-events";
3434import { DatabaseResolver } from "./database-resolver" ;
3535import { telemetryListener } from "../../common/vscode/telemetry" ;
3636import { LanguageContextStore } from "../../language-context-store" ;
37+ import { DatabaseSource } from "./database-source" ;
3738
3839/**
3940 * The name of the key in the workspaceState dictionary in which we
@@ -131,14 +132,19 @@ export class DatabaseManager extends DisposableObject {
131132 */
132133 public async openDatabase (
133134 uri : vscode . Uri ,
135+ source : DatabaseSource | undefined ,
134136 makeSelected = true ,
135137 displayName ?: string ,
136138 {
137139 isTutorialDatabase = false ,
138140 addSourceArchiveFolder = true ,
139141 } : OpenDatabaseOptions = { } ,
140142 ) : Promise < DatabaseItem > {
141- const databaseItem = await this . createDatabaseItem ( uri , displayName ) ;
143+ const databaseItem = await this . createDatabaseItem (
144+ uri ,
145+ source ,
146+ displayName ,
147+ ) ;
142148
143149 return await this . addExistingDatabaseItem (
144150 databaseItem ,
@@ -189,6 +195,7 @@ export class DatabaseManager extends DisposableObject {
189195 */
190196 private async createDatabaseItem (
191197 uri : vscode . Uri ,
198+ source : DatabaseSource | undefined ,
192199 displayName : string | undefined ,
193200 ) : Promise < DatabaseItemImpl > {
194201 const contents = await DatabaseResolver . resolveDatabaseContents ( uri ) ;
@@ -197,6 +204,7 @@ export class DatabaseManager extends DisposableObject {
197204 displayName,
198205 dateAdded : Date . now ( ) ,
199206 language : await this . getPrimaryLanguage ( uri . fsPath ) ,
207+ source,
200208 } ;
201209 const databaseItem = new DatabaseItemImpl ( uri , contents , fullOptions ) ;
202210
@@ -212,6 +220,7 @@ export class DatabaseManager extends DisposableObject {
212220 */
213221 public async createOrOpenDatabaseItem (
214222 uri : vscode . Uri ,
223+ source : DatabaseSource | undefined ,
215224 ) : Promise < DatabaseItem > {
216225 const existingItem = this . findDatabaseItem ( uri ) ;
217226 if ( existingItem !== undefined ) {
@@ -220,7 +229,7 @@ export class DatabaseManager extends DisposableObject {
220229 }
221230
222231 // We don't add this to the list automatically, but the user can add it later.
223- return this . createDatabaseItem ( uri , undefined ) ;
232+ return this . createDatabaseItem ( uri , source , undefined ) ;
224233 }
225234
226235 public async createSkeletonPacks ( databaseItem : DatabaseItem ) {
@@ -355,6 +364,7 @@ export class DatabaseManager extends DisposableObject {
355364 let displayName : string | undefined = undefined ;
356365 let dateAdded = undefined ;
357366 let language = undefined ;
367+ let source = undefined ;
358368 if ( state . options ) {
359369 if ( typeof state . options . displayName === "string" ) {
360370 displayName = state . options . displayName ;
@@ -363,6 +373,7 @@ export class DatabaseManager extends DisposableObject {
363373 dateAdded = state . options . dateAdded ;
364374 }
365375 language = state . options . language ;
376+ source = state . options . source ;
366377 }
367378
368379 const dbBaseUri = vscode . Uri . parse ( state . uri , true ) ;
@@ -375,6 +386,7 @@ export class DatabaseManager extends DisposableObject {
375386 displayName,
376387 dateAdded,
377388 language,
389+ source,
378390 } ;
379391 const item = new DatabaseItemImpl ( dbBaseUri , undefined , fullOptions ) ;
380392
0 commit comments