【问题标题】:How to choose Jupyter syntax highlighting language如何选择 Jupyter 语法高亮语言
【发布时间】:2022-01-22 09:40:28
【问题描述】:

我经常在 Jupyter 中阅读和编辑 .cu 文件 (cuda)。有没有办法让 Jupyter 对 .cu 文件使用 C++ 语法高亮显示? (它们基本上是 C++ 文件)

【问题讨论】:

    标签: jupyter-notebook syntax-highlighting jupyter-lab


    【解决方案1】:

    您可以创建一个 JupyterLab 扩展(guidetutorial),有一些示例,例如jupyterlab_robotmodethisthis 部分)和这个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

    【讨论】:

    • 谢谢,但是哇!这看起来很复杂。我希望通过在这里和那里修改配置文件来做到这一点,因为 C++ 语法突出显示已经有效。
    • 我同意,它可能只是设置中的一个简单映射,这将有助于许多简单的用例(尽管定义专用模式总是更好)。有一个启用它的功能请求已在此处打开:github.com/jupyterlab/jupyterlab/issues/4223。如果有人愿意贡献,我很乐意指导他们并查看拉取请求。
    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 2013-08-13
    • 2014-05-17
    • 2011-03-09
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多