Skip to content

Commit 8b86b1f

Browse files
authored
Merge pull request #506 from krassowski/completion/doc-panel/fix-render
Improve completer documentation panel: enable latex
2 parents 9cf75aa + c562561 commit 8b86b1f

File tree

5 files changed

+30
-3
lines changed

5 files changed

+30
-3
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
## CHANGELOG
22

3+
### `@krassowski/jupyterlab-lsp 3.3.1` (unreleased)
4+
5+
- bug fixes:
6+
7+
- LaTeX is now rendered in documentation panel of completer ([#506])
8+
- completion response returned as plain text use pre tag to retain whitespace formatting ([#506])
9+
- pre-formatted code font size was reduced to match font-size of the text in completion panel ([#506])
10+
11+
[#506]: https://github.com/krassowski/jupyterlab-lsp/pull/506
12+
313
### `jupyter-lsp 1.1.3` (unreleased)
414

515
- features:
616

717
- add config for the classic notebook server extension ([#504])
818

19+
[#504]: https://github.com/krassowski/jupyterlab-lsp/pull/504
20+
921
### `@krassowski/jupyterlab-lsp 3.3.0` (2021-01-31)
1022

1123
- features:

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
}

python_packages/jupyter_lsp/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
(
2121
"etc/jupyter/jupyter_notebook_config.d",
2222
["jupyter_lsp/etc/jupyter_notebook_config.json"],
23-
)
23+
),
2424
],
2525
)

0 commit comments

Comments
 (0)