【发布时间】:2022-01-22 09:40:28
【问题描述】:
我经常在 Jupyter 中阅读和编辑 .cu 文件 (cuda)。有没有办法让 Jupyter 对 .cu 文件使用 C++ 语法高亮显示? (它们基本上是 C++ 文件)
【问题讨论】:
标签: jupyter-notebook syntax-highlighting jupyter-lab
我经常在 Jupyter 中阅读和编辑 .cu 文件 (cuda)。有没有办法让 Jupyter 对 .cu 文件使用 C++ 语法高亮显示? (它们基本上是 C++ 文件)
【问题讨论】:
标签: jupyter-notebook syntax-highlighting jupyter-lab
您可以创建一个 JupyterLab 扩展(guide、tutorial),有一些示例,例如jupyterlab_robotmode(this 和this 部分)和这个comment。您将希望重用 CodeMirror 的 clike 模式,可能包含 these c++ bits。大概是这样的:
import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application';
import { ICodeMirror } from '@jupyterlab/codemirror';
const extension: JupyterFrontEndPlugin<void> = {
id: 'jupyterlab-cuda-mode',
autoStart: true,
requires: [ICodeMirror],
activate: (app: JupyterFrontEnd, codeMirrorToken: ICodeMirror) => {
const cm = codeMirrorToken.CodeMirror as any;
cm.defineMIME(
"text/x-cuda",
{
name: "clike",
// add more configuration below
namespaceSeparator: "::",
modeProps: {fold: ["brace", "include"]}
}
);
// add more keywords
cm.registerHelper('hintWords', 'text/x-cuda', {'__global__': true});
cm.modeInfo.push({
ext: ["cu"],
mime: "text/x-cuda",
mode: "clike",
name: "cuda"
});
}
};
export default extension;
现在,如果您还想在启动器中有漂亮的图标,则需要使用 DocumentRegistry 注册它,就像内置文件类型是 here
【讨论】: