代码块 vscode_在VScode中的Markdown代码嵌入块里面植入Wolfram语言高亮

f66ecc05f0dadeba3ab299d3ef1deea7.png

醉了……我乎不支持github图床的图片???带图版链接请移步到:

https://github.com/weihongliang233/vscode-fenced-code-block-grammar-injection-example/blob/master/%E8%AF%BB%E6%88%91.md​github.com

效果

原来:

现在:

可以看出,我们在VScode里面写Markdown时使用Mathematica代码块的时候当然希望会带有Mathematica的代码高亮。

然而实际上今天之前我都没有见到过这个功能的实现,那我就来把它添上,效果图如上面的第二张图。

大致思路

按照我的理解

  1. VScode中,代码的每个部分都属于某个scope,一个文件会被划分成多个部分(类似于词法分析里面的概念tokenization)。一个程序被划分之后大概就是下面这个样子,右边那些就是scope的名字。
  2. 划分的依据是一个语法规则表,通过正则表达式匹配等方法找出某个字符串属于哪个scope
  3. 你可以在A语言里面嵌入B语言的语法规则和着色规则,这种事情叫做“语法注入”。而我们要做的就是“往Markdown语法里面注入Wolfram的语法”(这句话需要意会,如果你觉得这句话意思有点奇怪的话,那就忽略它)
  4. wolfram语法的解析规则并不是我自己写的,而是由shigma的wolfram语言插件提供的。于是我们现在告诉VScode,解析Markdown的时候如果遇到mathematica代码块,在代码块中就用wolfram语法高亮来替代Markdown语法高亮。
  5. Github上面有个项目提供了一个范例,演示了如何往Markdown里面诸如某种语言高亮。

由于我自己理解水平和表达能力的问题,上面的几点只能当做一个前言(甚至可能有错)。强烈建议想了解细节的人阅读如下文档:

由于我自己理解水平和表达能力的问题,上面的几点只能当做一个前言(甚至可能有错)。强烈建议想了解细节的人阅读如下文档:

语言插件 - 语法高亮 - 《VS Code 插件开发文档》 - 书栈网 · BookStack​www.bookstack.cn
a75bd5506098a37c368a3d0c48071949.png
GitHub上的演示范例​github.com

安装

前提:你得先安装shigma写的wolfram插件:

https://marketplace.visualstudio.com/items?itemName=shigma.vscode-wl

然后克隆这个仓库:

https://github.com/weihongliang233/vscode-fenced-code-block-grammar-injection-example

找到里面那个后缀是.vsix的文件。这种文件是VScode插件的离线安装包,用于安装那些没有发布在微软市场上的插件,通过VSIX方式安装它。

安装完这个插件,试一下打开同目录的Test.md文件,这时你看到的mathematica代码块应该就是高亮的了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值