vscode/sublime 语法高亮定义和代码段的区别
vscode插件数据格式基于json,sublime插件数据格式基于xml。sublime插件的官方文档说的不清楚,相关教程也很难找,遇到的一些坑记录一下
语法定义文件对比
同样使用TextMate定义(tmLanguage),sublime可读取的是xml格式,使用plist结构,极其坑爹
vscode: test.tmLanguage.json
{
"name": "Test",
"scopeName": "source.test",
"fileTypes": [
"test"
],
"patterns": [
{"include": "#comments"},
],
"repository": {
"comments": {
"match": "//.*",
"name": "comment.line.double-slash"
}
}
}
sublime: test.tmLanguage
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>uuid</key>
<string>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</string>
<key>name</key>
<string>Test</string>
<key>scopeName</key>
<string>source.test</string>
<key>fileTypes</key>
<array>
<string>test</string>
</array>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>comments</key>
<dict>
<key>match</key>
<string>//.*</string>
<key>name</key>
<string>comment.line.double-slash</string>
</dict>
</dict>
</dict>
</plist>
- 格式区别: sublime提供一种单独的
sublime-syntax格式,使用YAML格式编写,没试过。sublime提供了一种安装PackageDev后,使用YAML编写"*.YAML-tmLanguage"文件,再生成XML文件的格式,但在有一定限制需要手写的时候不太好用。因为使用xml,支持多行文本(vscode的json中使用字符串列表),字符串不需要使用双引号包围,也不需要''转义 - 生效区别: vscode的语法文件需要在
package.json中正确配置,sublime的语法定义文件直接塞到Packages文件夹就可以生效。但有一点需要注意的是sublime需要uuid字段来识别文件...因为这个问题纠结了一段比较长的时间
代码段定义对比
vscode
test.json 或 test.code-snippets
{
"snippet1": {
"scope": "source.test",
"prefix": "header",
"body": [
"this is a header.",
"this is the 2nd line."
]
},
"snippet2": {
"scope": "source.test",
"prefix": "header2",
"body": [
"this is a header 2.",
"this is the 2nd line."
]
}
}
sublime
header.sublime-snippets
<snippet>
<scope>source.proto</scope>
<tabTrigger>header</tabTrigger>
<content>this is a header.
this is the 2nd line.</content>
</snippet>
header2.sublime-snippets
<snippet>
<scope>source.proto</scope>
<tabTrigger>header2</tabTrigger>
<content>this is a header 2.
this is the 2nd line.</content>
</snippet>
二者的文件后缀名似乎都没什么限制。
sublime的代码段定义文件默认好像是只会读取第一个<snippet>片段,有多个代码段需要建立多个文件,没有深入研究是否有一个文件定义多个代码段的形式
vscode/sublime 语法高亮定义和代码段的区别的更多相关文章
- Sublime 代码段设置
# Sublime 代码段 > 依次找到:Tools -> Developer -> New Snippet,默认代码段配置文件如下: <snippet><cont ...
- [UWP]为附加属性和依赖属性自定义代码段(兼容UWP和WPF)
1. 前言 之前介绍过依赖属性和附加属性的代码段,这两个代码段我用了很多年,一直都帮了我很多.不过这两个代码段我也多年没修改过,Resharper老是提示我生成的代码可以修改,它这么有诚意,这次就只好 ...
- sublime text3 设置快速生成代码
依次打开 Tools > Developer(开发者选项) > new Snippet(新的代码块).可以看到注释的说明: <snippet> <content>& ...
- 用 highlight.js 为文章中的代码添加语法高亮
来源:http://www.ghostchina.com/adding-syntax-highlighting-to-ghost-using-highlight-js/ --------------- ...
- 环境搭建基础知识2(sublime text3中配置verilog语法高亮)
需求说明:Verilog设计 内容 :verilog开发环境搭建 来自 :时间的诗 1 软件下载 1.1 官方下载 地址http://www.sublimetext.com/3 ...
- LaTeX中Python代码的语法高亮
LaTeX中Python代码的语法高亮 本文中,"{}"中的字母为LaTeX或Python的包名,只有"Pygments"是Python的包,其他都是LaTeX ...
- 利用sublime的snippet功能快速创建代码段
在前端开发中我们经常会输入相同的一些基本代码,例如常用的jquery引用,bootstrap框架,cssreset等等,如果每次使用时在复制粘贴感觉很麻烦,这里介绍一种更为简洁的方法 利用sublim ...
- 为sublime text2 添加SASS语法高亮
以前写CSS时,都是直接写样式,没有任何的第三方工具,后面发现越是面向大网站,越难管理,上次参加完携程UED大会后,发现SASS对于前端团队多人协作和站点代码维护上很有帮助,很多同学都开始用了,我还是 ...
- 在word中使用notepad++实现代码的语法高亮
转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...
- 写了一个Hy的vscode语法高亮插件
-------2018 8 3----------- 把函数名和参数改了,正则有点古怪,参考自带的lambda表达式才搞定 但彩色括号走了弯路,各种配图有彩色括号的插件其实很少是自己搞的,其实只要再装 ...
随机推荐
- python 将中文数字转换成阿拉伯数字
日常遇到的中文数字主要有两种情况: 1."二零零一"这种类型,只包含[0-9]对应的十个中文字,需要转换成数字:2001.这种情况的转换十分简单. 2. "三百二十一&q ...
- Composer 镜像原理 (2) —— composer.json
相关文章 Composer 镜像原理 (1) -- 初识 Composer Composer 镜像原理 (2) -- composer.json Composer 镜像原理 (3) -- 完结篇 有使 ...
- MAUI Blazor 显示本地图片的新思路
前言 好久没写文章了,水一篇 关于MAUI Blazor 显示本地图片这个问题,有大佬发过了. 就是 token 大佬的那篇 Blazor Hybrid (Blazor混合开发)更好的读取本地图片 主 ...
- Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.ConnectException: 拒绝连接 (Connection refused) (state=08S01,code=0)
一:启动hiveserver2服务 二:启动beeline 三:连接hiveserver2(下面的1000000端口号适当改小写因为其超出最大端口号的范围建议改为10000) 如果启动不成功实现我们先 ...
- Java并发(十三)----共享存在的问题
1.小故事 老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快 小南.小女(不同的线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用 但小南不能一天24小时使用算盘 ...
- Redis持久化机制 RDB、AOF、混合持久化详解!如何选择?
本文已经收录进 JavaGuide(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识.) Redis 持久化机制属于后端面试超高频的面试知识点,老生常谈了,需要重点花时间 ...
- Linux下定时清空某个文件
问题 在一台单点机器部署完成且运行一段时间后,发现页面接口报错,登上机器发现磁盘满了.通过du -lh --max-depth=1 和 du -sh * 找出是哪个文件. 发现是 项目中 stdout ...
- Angular:修改启动端口号
目标 修改预先设定的4200端口号,改为4100 解决方案 在启动命令中添加 --port 4100.参数 --open,会在启动时自动打开浏览器. ng serve --open --port 41 ...
- Powe AutoMate:列表操作
大纲 记录对列表的操作 创建列表 向列表中添加元素 添加多个 合并列表 运行结果 反转列表 反转前 反转后 删除列表中的重复项 结果: 减去列表 结果:
- 使用 Habana Gaudi2 加速视觉语言模型 BridgeTower
在对最先进的视觉语言模型 BridgeTower 进行微调时,使用 Optimum Habana v1.6, Habana Gaudi2 可以达到 近 3 倍于 A100 的速度.硬件加速的数据加载以 ...