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表达式才搞定 但彩色括号走了弯路,各种配图有彩色括号的插件其实很少是自己搞的,其实只要再装 ...
随机推荐
- clickhouse使用入门
转载请注明出处(- ̄▽ ̄)-严禁用于商业目的的转载- 导语:同学,你也不想你根本不懂ClickHouse,却赶鸭子上架使用的事情被其他人知道吧? 写在前面:本文旨在让原先有一定SQL基础的人快速简单了 ...
- 简单的python3脚本:从日志中提取信息
命名:log_extractor.py or download_stats_extractor.py # coding:utf-8 #!/usr/bin/python3 def filter_line ...
- java无法加载maper.xml问题
项目依赖其他模块,模块中有 mapper,本项目也有mapper,导致项目无法正常运行. 解决办法: 1.配置 mybatis: # 搜索指定包别名 typeAliasesPackage: com.X ...
- html5 3.0 表单
表单的定义:多个输入框,以表格的形式展示 表单常用在网页登录和注册功能中 表单的元素属性:<input type="text"name=" "valu ...
- 一个简单利用WebGL绘制频谱瀑布图示例
先看效果 还是比较节省性能的,这个还是包含了生成测试数据的性能,实际应用如果是直接通信获得数据应该还能少几毫秒吧! 准备工作 用了React,但是关系不大 WebGL的基础用法(推荐看一看掘金里的一个 ...
- do_fork(一)
fork 是linux创建进程的系统调用,相关的函数(不只是系统调用)还有 vfork,clone,sys_frok等.这些函数会整理不同参数,再调用到 do_fork 中. 本篇文章主要介绍do_f ...
- [apue] 进程环境那些事儿
main 函数与进程终止 众所周知,main 函数为 unix like 系统上可执行文件的"入口",然而这个入口并不是指链接器设置的程序起始地址,后者通常是一个启动例程,它从内核 ...
- 线程方法接收参数和返回参数,Java的两种线程实现方式对比
The difference beteen two way 总所周知,Java实现多线程有两种方式,分别是继承Thread类和实现Runable接口,那么它们的区别是什么? 继承 Thread 类: ...
- 架构师必会之-DBA级问题的数据库底层设计思想
大家好,我是sulny_ann,这期想跟大家分享一下我之前在面试里面问过比较难的数据库相关的问题. 大家经常也在调侃后端好像就是技术数据库的增删改查,所以作为后端开发,你对应数据库这一块掌握的怎么样, ...
- 【后端面经-数据库】Redis数据结构和底层数据类型
目录 1. Redis数据类型 1.1 基本数据类型 1. string 2. hash 3. list 4. set 5. sortset/Zset 1.2 特殊数据类型 1. bitmap 2. ...