33 * Licensed under the MIT License. See License.txt in the project root for license information.
44 *--------------------------------------------------------------------------------------------*/
55
6+ import { IdleValue } from 'vs/base/common/async' ;
67import { KeyCode , KeyMod } from 'vs/base/common/keyCodes' ;
78import { Lazy } from 'vs/base/common/lazy' ;
89import { Disposable } from 'vs/base/common/lifecycle' ;
@@ -29,7 +30,7 @@ class ParameterHintsController extends Disposable implements IEditorContribution
2930 }
3031
3132 private readonly editor : ICodeEditor ;
32- private readonly model : ParameterHintsModel ;
33+ private readonly model : IdleValue < ParameterHintsModel > ;
3334 private readonly widget : Lazy < ParameterHintsWidget > ;
3435
3536 constructor (
@@ -41,22 +42,26 @@ class ParameterHintsController extends Disposable implements IEditorContribution
4142
4243 this . editor = editor ;
4344
44- this . model = this . _register ( new ParameterHintsModel ( editor , languageFeaturesService . signatureHelpProvider ) ) ;
45+ this . model = this . _register ( new IdleValue ( ( ) => {
46+ const model = this . _register ( new ParameterHintsModel ( editor , languageFeaturesService . signatureHelpProvider ) ) ;
4547
46- this . _register ( this . model . onChangedHints ( newParameterHints => {
47- if ( newParameterHints ) {
48- this . widget . getValue ( ) . show ( ) ;
49- this . widget . getValue ( ) . render ( newParameterHints ) ;
50- } else {
51- this . widget . rawValue ?. hide ( ) ;
52- }
48+ this . _register ( model . onChangedHints ( newParameterHints => {
49+ if ( newParameterHints ) {
50+ this . widget . getValue ( ) . show ( ) ;
51+ this . widget . getValue ( ) . render ( newParameterHints ) ;
52+ } else {
53+ this . widget . rawValue ?. hide ( ) ;
54+ }
55+ } ) ) ;
56+
57+ return model ;
5358 } ) ) ;
5459
55- this . widget = new Lazy ( ( ) => this . _register ( instantiationService . createInstance ( ParameterHintsWidget , this . editor , this . model ) ) ) ;
60+ this . widget = new Lazy ( ( ) => this . _register ( instantiationService . createInstance ( ParameterHintsWidget , this . editor , this . model . value ) ) ) ;
5661 }
5762
5863 cancel ( ) : void {
59- this . model . cancel ( ) ;
64+ this . model . value . cancel ( ) ;
6065 }
6166
6267 previous ( ) : void {
@@ -68,7 +73,7 @@ class ParameterHintsController extends Disposable implements IEditorContribution
6873 }
6974
7075 trigger ( context : TriggerContext ) : void {
71- this . model . trigger ( context , 0 ) ;
76+ this . model . value . trigger ( context , 0 ) ;
7277 }
7378}
7479
0 commit comments