Tea-代码高亮设置
本文面向准备为编辑器添加 Tea 语法高亮功能的读者。
扩展名
Tea 语言代码的默认扩展名名 .tea 。包文件为 .teapkg。 项目文件为 .teaproj 。 数据文件为 .teadata 。
高亮策略
1. 数字
数字格式只有这三种:1
、-0.3
、0x1
。
2. 字符串
字符串的格式只有这三种:'这是没有任何转义的字符串,字符串内部用''代替'
、"这是支持\转义的字符串,转义的情况和JavaScript、C++、Java等相同。"
、`这是支持$转义的字符串。$开头的部分被认为是变量,这和 Php 的情况相同。`
3. 常量
null
、undefined
、true
、false
、arguments
、this
、base
、that
。
4. 关键字
abstract
、arguments
、as
、assert
、auto
、await
、 base
、bool
、break
、byte
、case
、catch
、char
、 class
、const
、continue
、double
、else
、enum
、 extends
、extern
、false
、finally
、float
、for
、 goto
、if
、implements
、import
、int
、interface
、' is
、let
、lock
、long
、namespace
、new
、null
、 object
、once
、or
、override
、return
、short
、 static
、string
、switch
、that
、this
、throw
、 true
、try
、typeof
、undefined
、var
、virtual
、 void
、volatile
、while
、yield
5. 上下文关键字
add
、arguments
、base
、that
、this
、get
、in
、remove
、set
6. 保留字
checked
、decimal
、delete
、do
、export
、final
、 fixed
、function
、internal
、package
、private
、 protected
、public
、readonly
、sbyte
、struct
、 typedef
、uint
、ulong
、unchecked
、unsafe
、 until
、ushort
、using
7. 标识符
标识符开头可以是:$
、^
、@
、标识符主体中的字符。 标识符主体可以是:英文字母、数字、_、中文非符号字符。
8. 类
所有首字母大写的标识符可以认为是类名,可以作特殊的高亮。
折叠策略
1. 括号
Tea 语言使用C风格的大括号({、})来折叠代码,折叠策略同其它C风格的语言。
2. 注释
Tea 语言使用C风格的 // /**/ 来注释代码,折叠策略同其它C风格的语言。
3. 文档注释
Tea 语言使用 /// /* / 来定义文档注释,折叠策略同注释,但是应该以不同的颜色标示,因为文档注释是代码的一部分,并且具有一定的规范。
4. import
连续的多个 import 语句应该是可以折叠的。
5. []
换行的 [] 表达式应该是可以可以折叠的。
6. region
代码中的 #region 和 #endregion 应该可以创建一个可折叠区域。
7.
## 注释多用于代码头部的版权声明,连续的多个 ## 注释应该是可以折叠的。
智能提示策略
1. 成员名
当用户输入 . 之后,应该列出之前表达式所属类型的全部成员。
2. 变量名
当用户输入任何变量时,应该列出可用的变量名。
3. 函数
当用户输入 ( 时,应该列出之前表达式对应的函数的全部重载。
4. goto
当用户输入 goto 时,应该列出可用的标签名。
5. 类型
当用户输入 as、is、< 时,应该列出可用的类名。