@@ -13,6 +13,7 @@ import { AbstractWebviewViewProvider } from "../../common/vscode/abstract-webvie
1313import { assertNever } from "../../common/helpers-pure" ;
1414import { ModelEditorViewTracker } from "../model-editor-view-tracker" ;
1515import { ModelConfigListener } from "../../config" ;
16+ import { DatabaseItem } from "../../databases/local-databases" ;
1617import {
1718 convertFromLegacyModeledMethod ,
1819 convertToLegacyModeledMethod ,
@@ -25,6 +26,7 @@ export class MethodModelingViewProvider extends AbstractWebviewViewProvider<
2526 public static readonly viewType = "codeQLMethodModeling" ;
2627
2728 private method : Method | undefined = undefined ;
29+ private databaseItem : DatabaseItem | undefined = undefined ;
2830
2931 constructor (
3032 app : App ,
@@ -50,8 +52,12 @@ export class MethodModelingViewProvider extends AbstractWebviewViewProvider<
5052 } ) ;
5153 }
5254
53- public async setMethod ( method : Method ) : Promise < void > {
55+ public async setMethod (
56+ databaseItem : DatabaseItem | undefined ,
57+ method : Method | undefined ,
58+ ) : Promise < void > {
5459 this . method = method ;
60+ this . databaseItem = databaseItem ;
5561
5662 if ( this . isShowingView ) {
5763 await this . postMessage ( {
@@ -74,6 +80,11 @@ export class MethodModelingViewProvider extends AbstractWebviewViewProvider<
7480 isModified : selectedMethod . isModified ,
7581 } ) ;
7682 }
83+
84+ await this . postMessage ( {
85+ t : "setInModelingMode" ,
86+ inModelingMode : true ,
87+ } ) ;
7788 }
7889 }
7990
@@ -107,6 +118,10 @@ export class MethodModelingViewProvider extends AbstractWebviewViewProvider<
107118 msg . method . signature ,
108119 convertFromLegacyModeledMethod ( msg . method ) ,
109120 ) ;
121+ this . modelingStore . addModifiedMethod (
122+ activeState . databaseItem ,
123+ msg . method . signature ,
124+ ) ;
110125 break ;
111126 }
112127 case "revealInModelEditor" :
@@ -180,6 +195,8 @@ export class MethodModelingViewProvider extends AbstractWebviewViewProvider<
180195 this . modelingStore . onSelectedMethodChanged ( async ( e ) => {
181196 if ( this . webviewView ) {
182197 this . method = e . method ;
198+ this . databaseItem = e . databaseItem ;
199+
183200 await this . postMessage ( {
184201 t : "setSelectedMethod" ,
185202 method : e . method ,
@@ -200,13 +217,17 @@ export class MethodModelingViewProvider extends AbstractWebviewViewProvider<
200217 ) ;
201218
202219 this . push (
203- this . modelingStore . onDbClosed ( async ( ) => {
220+ this . modelingStore . onDbClosed ( async ( dbUri ) => {
204221 if ( ! this . modelingStore . anyDbsBeingModeled ( ) ) {
205222 await this . postMessage ( {
206223 t : "setInModelingMode" ,
207224 inModelingMode : false ,
208225 } ) ;
209226 }
227+
228+ if ( dbUri === this . databaseItem ?. databaseUri . toString ( ) ) {
229+ await this . setMethod ( undefined , undefined ) ;
230+ }
210231 } ) ,
211232 ) ;
212233 }
0 commit comments