@@ -44,7 +44,7 @@ import { telemetryListener } from "../common/vscode/telemetry";
4444import { ModelingStore } from "./modeling-store" ;
4545import { ModelEditorViewTracker } from "./model-editor-view-tracker" ;
4646import {
47- convertFromLegacyModeledMethods ,
47+ convertFromLegacyModeledMethod ,
4848 convertToLegacyModeledMethods ,
4949} from "./modeled-methods-legacy" ;
5050
@@ -224,7 +224,7 @@ export class ModelEditorView extends AbstractWebview<
224224 this . extensionPack ,
225225 this . databaseItem . language ,
226226 methods ,
227- convertFromLegacyModeledMethods ( modeledMethods ) ,
227+ modeledMethods ,
228228 this . mode ,
229229 this . cliServer ,
230230 this . app . logger ,
@@ -311,7 +311,10 @@ export class ModelEditorView extends AbstractWebview<
311311 ) ;
312312 break ;
313313 case "setModeledMethod" : {
314- this . setModeledMethod ( msg . method ) ;
314+ this . setModeledMethods (
315+ msg . method . signature ,
316+ convertFromLegacyModeledMethod ( msg . method ) ,
317+ ) ;
315318 break ;
316319 }
317320 default :
@@ -371,10 +374,7 @@ export class ModelEditorView extends AbstractWebview<
371374 this . cliServer ,
372375 this . app . logger ,
373376 ) ;
374- this . modelingStore . setModeledMethods (
375- this . databaseItem ,
376- convertToLegacyModeledMethods ( modeledMethods ) ,
377- ) ;
377+ this . modelingStore . setModeledMethods ( this . databaseItem , modeledMethods ) ;
378378 } catch ( e : unknown ) {
379379 void showAndLogErrorMessage (
380380 this . app . logger ,
@@ -446,10 +446,16 @@ export class ModelEditorView extends AbstractWebview<
446446 queryStorageDir : this . queryStorageDir ,
447447 databaseItem : addedDatabase ?? this . databaseItem ,
448448 onResults : async ( modeledMethods ) => {
449- const modeledMethodsByName : Record < string , ModeledMethod > = { } ;
449+ const modeledMethodsByName : Record < string , ModeledMethod [ ] > = { } ;
450450
451451 for ( const modeledMethod of modeledMethods ) {
452- modeledMethodsByName [ modeledMethod . signature ] = modeledMethod ;
452+ if ( ! ( modeledMethod . signature in modeledMethodsByName ) ) {
453+ modeledMethodsByName [ modeledMethod . signature ] = [ ] ;
454+ }
455+
456+ modeledMethodsByName [ modeledMethod . signature ] . push (
457+ modeledMethod ,
458+ ) ;
453459 }
454460
455461 this . addModeledMethods ( modeledMethodsByName ) ;
@@ -620,7 +626,7 @@ export class ModelEditorView extends AbstractWebview<
620626 if ( event . dbUri === this . databaseItem . databaseUri . toString ( ) ) {
621627 await this . postMessage ( {
622628 t : "setModeledMethods" ,
623- methods : event . modeledMethods ,
629+ methods : convertToLegacyModeledMethods ( event . modeledMethods ) ,
624630 } ) ;
625631 }
626632 } ) ,
@@ -646,7 +652,7 @@ export class ModelEditorView extends AbstractWebview<
646652 ) ;
647653 }
648654
649- private addModeledMethods ( modeledMethods : Record < string , ModeledMethod > ) {
655+ private addModeledMethods ( modeledMethods : Record < string , ModeledMethod [ ] > ) {
650656 this . modelingStore . addModeledMethods ( this . databaseItem , modeledMethods ) ;
651657
652658 this . modelingStore . addModifiedMethods (
@@ -655,13 +661,17 @@ export class ModelEditorView extends AbstractWebview<
655661 ) ;
656662 }
657663
658- private setModeledMethod ( method : ModeledMethod ) {
664+ private setModeledMethods ( signature : string , methods : ModeledMethod [ ] ) {
659665 const state = this . modelingStore . getStateForActiveDb ( ) ;
660666 if ( ! state ) {
661667 throw new Error ( "Attempting to set modeled method without active db" ) ;
662668 }
663669
664- this . modelingStore . updateModeledMethod ( state . databaseItem , method ) ;
665- this . modelingStore . addModifiedMethod ( state . databaseItem , method . signature ) ;
670+ this . modelingStore . updateModeledMethods (
671+ state . databaseItem ,
672+ signature ,
673+ methods ,
674+ ) ;
675+ this . modelingStore . addModifiedMethod ( state . databaseItem , signature ) ;
666676 }
667677}
0 commit comments