Skip to content

Commit 9f74901

Browse files
committed
Restore pre-formatted rendering for completer panel, enable latex
1 parent 9c1778d commit 9f74901

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

packages/completion-theme/style/index.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,8 @@
2828
content: 'Loading...';
2929
color: #7f7f7f;
3030
}
31+
32+
/* a workaround for code being larger font size than text in markdown-rendered panel */
33+
.jp-Completer-docpanel pre code {
34+
font-size: 90%;
35+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ export class CompletionLabIntegration implements IFeatureLabIntegration {
9999
this.renderer = new LSPCompletionRenderer({
100100
integrator: this,
101101
markdownRenderer: markdown_renderer,
102+
latexTypesetter: this.renderMimeRegistry.latexTypesetter,
102103
console: console.scope('renderer')
103104
});
104105
this.renderer.activeChanged.connect(this.active_completion_changed, this);

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,29 @@ export class LSPCompletionRenderer
5252

5353
createDocumentationNode(item: LazyCompletionItem): HTMLElement {
5454
if (item.isDocumentationMarkdown) {
55+
let documentation = item.documentation;
5556
this.options.markdownRenderer
5657
.renderModel({
5758
data: {
58-
'text/markdown': item.documentation
59+
'text/markdown': documentation
5960
},
6061
trusted: false,
6162
metadata: {},
6263
setData(options: IRenderMime.IMimeModel.ISetDataOptions) {
6364
// empty
6465
}
6566
})
67+
.then(() => {
68+
if (this.options.latexTypesetter && documentation.includes('$')) {
69+
this.options.latexTypesetter.typeset(
70+
this.options.markdownRenderer.node
71+
);
72+
}
73+
})
6674
.catch(this.options.console.warn);
6775
return this.options.markdownRenderer.node;
6876
} else {
69-
let node = document.createElement('div');
77+
let node = document.createElement('pre');
7078
node.textContent = item.documentation;
7179
return node;
7280
}
@@ -77,6 +85,7 @@ export namespace LSPCompletionRenderer {
7785
export interface IOptions {
7886
integrator: CompletionLabIntegration;
7987
markdownRenderer: IRenderMime.IRenderer;
88+
latexTypesetter?: IRenderMime.ILatexTypesetter;
8089
console: ILSPLogConsole;
8190
}
8291
}

0 commit comments

Comments
 (0)