Skip to content

Commit 552cfc1

Browse files
committed
Make completer not leave a trace if disabled
1 parent aa2f9c1 commit 552cfc1

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

packages/completion-theme/src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,9 @@ export class CompletionThemeManager implements ILSPCompletionThemeManager {
118118
);
119119
}
120120
this.current_theme_id = id;
121-
document.body.classList.add(this.current_theme_class);
121+
if (id !== null) {
122+
document.body.classList.add(this.current_theme_class);
123+
}
122124
this.update_icons_set();
123125
}
124126

packages/completion-theme/style/index.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,20 @@
2424
overflow: auto;
2525
}
2626

27-
.jp-Completer {
27+
.lsp-completer.jp-Completer {
2828
--lsp-completer-max-label-width: 300px;
2929
--lsp-completer-max-detail-width: 200px;
3030
}
3131

32-
.jp-Completer-match {
32+
.lsp-completer .jp-Completer-match {
3333
max-width: var(--lsp-completer-max-label-width);
3434
overflow-x: hidden;
3535
white-space: nowrap;
3636
display: block;
3737
text-overflow: ellipsis;
3838
}
3939

40-
.jp-mod-active .jp-Completer-match {
40+
.lsp-completer .jp-mod-active .jp-Completer-match {
4141
text-overflow: clip;
4242
}
4343

@@ -81,15 +81,15 @@ body[data-lsp-completer-layout='detail-below'] .jp-Completer-match {
8181
height: var(--lsp-completer-label-height);
8282
}
8383

84-
.jp-Completer-item .jp-Completer-typeExtended {
84+
.lsp-completer .jp-Completer-item .jp-Completer-typeExtended {
8585
max-width: var(--lsp-completer-max-detail-width);
8686
min-height: 50px;
8787
overflow-x: hidden;
8888
text-overflow: ellipsis;
8989
white-space: nowrap;
9090
}
9191

92-
.jp-mod-active .jp-Completer-typeExtended {
92+
.lsp-completer .jp-mod-active .jp-Completer-typeExtended {
9393
text-overflow: clip;
9494
}
9595

packages/jupyterlab-lsp/src/features/completion/completion.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ export class CompletionLabIntegration implements IFeatureLabIntegration {
8888
protected current_adapter: WidgetAdapter<IDocumentWidget> | null = null;
8989
protected renderer: LSPCompletionRenderer;
9090
private _latestActiveItem: LazyCompletionItem | null = null;
91+
private _signalConnected: boolean = false;
9192

9293
constructor(
9394
private app: JupyterFrontEnd,
@@ -108,22 +109,36 @@ export class CompletionLabIntegration implements IFeatureLabIntegration {
108109
});
109110
this.renderer.activeChanged.connect(this.active_completion_changed, this);
110111
this.renderer.itemShown.connect(this.resolve_and_update, this);
112+
this._signalConnected = false;
111113
// TODO: figure out a better way to disable lab integration elements (postpone initialization?)
112114
settings.ready
113115
.then(() => {
114116
if (!settings.composite.disable) {
115117
adapterManager.adapterChanged.connect(this.swap_adapter, this);
118+
this._signalConnected = true;
116119
}
117120
})
118121
.catch(console.warn);
119122
settings.changed.connect(() => {
120-
completionThemeManager.set_theme(this.settings.composite.theme);
121-
completionThemeManager.set_icons_overrides(
122-
this.settings.composite.typesMap
123-
);
124123
if (!settings.composite.disable) {
125124
document.body.dataset.lspCompleterLayout =
126125
this.settings.composite.layout;
126+
completionThemeManager.set_theme(this.settings.composite.theme);
127+
completionThemeManager.set_icons_overrides(
128+
this.settings.composite.typesMap
129+
);
130+
if (!this._signalConnected) {
131+
adapterManager.adapterChanged.connect(this.swap_adapter, this);
132+
this._signalConnected = true;
133+
}
134+
// TODO connect adapter if not connected
135+
} else {
136+
completionThemeManager.set_theme(null);
137+
delete document.body.dataset.lspCompleterLayout;
138+
if (this._signalConnected) {
139+
adapterManager.adapterChanged.disconnect(this.swap_adapter, this);
140+
this._signalConnected = false;
141+
}
127142
}
128143
if (this.current_completion_handler) {
129144
this.model.settings.caseSensitive =

0 commit comments

Comments
 (0)