Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
张文彪
/
employmentBusinessPc
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
5245b766
authored
Nov 26, 2025
by
zwb
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
招聘会演示平台搭建与简历导入
parent
a1af464c
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
597 additions
and
0 deletions
employmentBusiness-pc-auth/src/main/java/com/bkty/properties/UserPasswordProperties.java
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/enums/UserStatus.java
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/enums/UserType.java
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java
employmentBusiness-pc-common/employmentBusiness-pc-common-mybatis/src/main/java/org/dromara/common/mybatis/service/SysDataScopeService.java
employmentBusiness-pc-modules/employmentBusiness-pc-system/src/main/java/com/bkty/system/config/SyncConfigProperties.java
employmentBusiness-pc-modules/employmentBusiness-pc-system/src/main/java/com/bkty/system/domain/entity/SysDept.java
employmentBusiness-pc-modules/employmentBusiness-pc-system/src/main/java/com/bkty/system/mapper/SysDeptMapper.java
employmentBusiness-pc-nacos/src/main/resources/static/console-ui/public/js/vs/basic-languages/src/swift.js
employmentBusiness-pc-auth/src/main/java/com/bkty/properties/UserPasswordProperties.java
0 → 100644
View file @
5245b766
package
com
.
bkty
.
properties
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.cloud.context.config.annotation.RefreshScope
;
import
org.springframework.context.annotation.Configuration
;
/**
* 用户密码配置
*
* @author Lion Li
*/
@Data
@Configuration
@RefreshScope
@ConfigurationProperties
(
prefix
=
"user.password"
)
public
class
UserPasswordProperties
{
/**
* 密码最大错误次数
*/
private
Integer
maxRetryCount
;
/**
* 密码锁定时间(默认10分钟)
*/
private
Integer
lockTime
;
}
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/enums/UserStatus.java
0 → 100644
View file @
5245b766
package
org
.
dromara
.
common
.
core
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* 用户状态
*
* @author ruoyi
*/
@Getter
@AllArgsConstructor
public
enum
UserStatus
{
/**
* 正常
*/
OK
(
"0"
,
"正常"
),
/**
* 停用
*/
DISABLE
(
"1"
,
"停用"
),
/**
* 删除
*/
DELETED
(
"2"
,
"删除"
);
private
final
String
code
;
private
final
String
info
;
}
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/enums/UserType.java
0 → 100644
View file @
5245b766
package
org
.
dromara
.
common
.
core
.
enums
;
import
org.dromara.common.core.utils.StringUtils
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* 设备类型
* 针对多套 用户体系
*
* @author Lion Li
*/
@Getter
@AllArgsConstructor
public
enum
UserType
{
/**
* pc端
*/
SYS_USER
(
"sys_user"
),
/**
* app端
*/
APP_USER
(
"app_user"
);
private
final
String
userType
;
public
static
UserType
getUserType
(
String
str
)
{
for
(
UserType
value
:
values
())
{
if
(
StringUtils
.
contains
(
str
,
value
.
getUserType
()))
{
return
value
;
}
}
throw
new
RuntimeException
(
"'UserType' not found By "
+
str
);
}
}
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java
0 → 100644
View file @
5245b766
This diff is collapsed.
Click to expand it.
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java
0 → 100644
View file @
5245b766
package
org
.
dromara
.
common
.
core
.
utils
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.lang.Validator
;
import
cn.hutool.core.util.StrUtil
;
import
lombok.AccessLevel
;
import
lombok.NoArgsConstructor
;
import
org.springframework.util.AntPathMatcher
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* 字符串工具类
*
* @author Lion Li
*/
@NoArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
public
class
StringUtils
extends
org
.
apache
.
commons
.
lang3
.
StringUtils
{
public
static
final
String
SEPARATOR
=
","
;
public
static
final
String
SLASH
=
"/"
;
/**
* 获取参数不为空值
*
* @param str defaultValue 要判断的value
* @return value 返回值
*/
public
static
String
blankToDefault
(
String
str
,
String
defaultValue
)
{
return
StrUtil
.
blankToDefault
(
str
,
defaultValue
);
}
/**
* * 判断一个字符串是否为空串
*
* @param str String
* @return true:为空 false:非空
*/
public
static
boolean
isEmpty
(
String
str
)
{
return
StrUtil
.
isEmpty
(
str
);
}
/**
* * 判断一个字符串是否为非空串
*
* @param str String
* @return true:非空串 false:空串
*/
public
static
boolean
isNotEmpty
(
String
str
)
{
return
!
isEmpty
(
str
);
}
/**
* 去空格
*/
public
static
String
trim
(
String
str
)
{
return
StrUtil
.
trim
(
str
);
}
/**
* 截取字符串
*
* @param str 字符串
* @param start 开始
* @return 结果
*/
public
static
String
substring
(
final
String
str
,
int
start
)
{
return
substring
(
str
,
start
,
str
.
length
());
}
/**
* 截取字符串
*
* @param str 字符串
* @param start 开始
* @param end 结束
* @return 结果
*/
public
static
String
substring
(
final
String
str
,
int
start
,
int
end
)
{
return
StrUtil
.
sub
(
str
,
start
,
end
);
}
/**
* 格式化文本, {} 表示占位符<br>
* 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
* 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
* 例:<br>
* 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
* 转义{}: format("this is \\{} for {}", "a", "b") -> this is {} for a<br>
* 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
*
* @param template 文本模板,被替换的部分用 {} 表示
* @param params 参数值
* @return 格式化后的文本
*/
public
static
String
format
(
String
template
,
Object
...
params
)
{
return
StrUtil
.
format
(
template
,
params
);
}
/**
* 是否为http(s)://开头
*
* @param link 链接
* @return 结果
*/
public
static
boolean
ishttp
(
String
link
)
{
return
Validator
.
isUrl
(
link
);
}
/**
* 字符串转set
*
* @param str 字符串
* @param sep 分隔符
* @return set集合
*/
public
static
Set
<
String
>
str2Set
(
String
str
,
String
sep
)
{
return
new
HashSet
<>(
str2List
(
str
,
sep
,
true
,
false
));
}
/**
* 字符串转list
*
* @param str 字符串
* @param sep 分隔符
* @param filterBlank 过滤纯空白
* @param trim 去掉首尾空白
* @return list集合
*/
public
static
List
<
String
>
str2List
(
String
str
,
String
sep
,
boolean
filterBlank
,
boolean
trim
)
{
List
<
String
>
list
=
new
ArrayList
<>();
if
(
isEmpty
(
str
))
{
return
list
;
}
// 过滤空白字符串
if
(
filterBlank
&&
isBlank
(
str
))
{
return
list
;
}
String
[]
split
=
str
.
split
(
sep
);
for
(
String
string
:
split
)
{
if
(
filterBlank
&&
isBlank
(
string
))
{
continue
;
}
if
(
trim
)
{
string
=
trim
(
string
);
}
list
.
add
(
string
);
}
return
list
;
}
/**
* 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写
*
* @param cs 指定字符串
* @param searchCharSequences 需要检查的字符串数组
* @return 是否包含任意一个字符串
*/
public
static
boolean
containsAnyIgnoreCase
(
CharSequence
cs
,
CharSequence
...
searchCharSequences
)
{
return
StrUtil
.
containsAnyIgnoreCase
(
cs
,
searchCharSequences
);
}
/**
* 驼峰转下划线命名
*/
public
static
String
toUnderScoreCase
(
String
str
)
{
return
StrUtil
.
toUnderlineCase
(
str
);
}
/**
* 是否包含字符串
*
* @param str 验证字符串
* @param strs 字符串组
* @return 包含返回true
*/
public
static
boolean
inStringIgnoreCase
(
String
str
,
String
...
strs
)
{
return
StrUtil
.
equalsAnyIgnoreCase
(
str
,
strs
);
}
/**
* 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld
*
* @param name 转换前的下划线大写方式命名的字符串
* @return 转换后的驼峰式命名的字符串
*/
public
static
String
convertToCamelCase
(
String
name
)
{
return
StrUtil
.
upperFirst
(
StrUtil
.
toCamelCase
(
name
));
}
/**
* 驼峰式命名法 例如:user_name->userName
*/
public
static
String
toCamelCase
(
String
s
)
{
return
StrUtil
.
toCamelCase
(
s
);
}
/**
* 查找指定字符串是否匹配指定字符串列表中的任意一个字符串
*
* @param str 指定字符串
* @param strs 需要检查的字符串数组
* @return 是否匹配
*/
public
static
boolean
matches
(
String
str
,
List
<
String
>
strs
)
{
if
(
isEmpty
(
str
)
||
CollUtil
.
isEmpty
(
strs
))
{
return
false
;
}
for
(
String
pattern
:
strs
)
{
if
(
isMatch
(
pattern
,
str
))
{
return
true
;
}
}
return
false
;
}
/**
* 判断url是否与规则配置:
* ? 表示单个字符;
* * 表示一层路径内的任意字符串,不可跨层级;
* ** 表示任意层路径;
*
* @param pattern 匹配规则
* @param url 需要匹配的url
*/
public
static
boolean
isMatch
(
String
pattern
,
String
url
)
{
AntPathMatcher
matcher
=
new
AntPathMatcher
();
return
matcher
.
match
(
pattern
,
url
);
}
/**
* 数字左边补齐0,使之达到指定长度。注意,如果数字转换为字符串后,长度大于size,则只保留 最后size个字符。
*
* @param num 数字对象
* @param size 字符串指定长度
* @return 返回数字的字符串格式,该字符串为指定长度。
*/
public
static
String
padl
(
final
Number
num
,
final
int
size
)
{
return
padl
(
num
.
toString
(),
size
,
'0'
);
}
/**
* 字符串左补齐。如果原始字符串s长度大于size,则只保留最后size个字符。
*
* @param s 原始字符串
* @param size 字符串指定长度
* @param c 用于补齐的字符
* @return 返回指定长度的字符串,由原字符串左补齐或截取得到。
*/
public
static
String
padl
(
final
String
s
,
final
int
size
,
final
char
c
)
{
final
StringBuilder
sb
=
new
StringBuilder
(
size
);
if
(
s
!=
null
)
{
final
int
len
=
s
.
length
();
if
(
s
.
length
()
<=
size
)
{
sb
.
append
(
String
.
valueOf
(
c
).
repeat
(
size
-
len
));
sb
.
append
(
s
);
}
else
{
return
s
.
substring
(
len
-
size
,
len
);
}
}
else
{
sb
.
append
(
String
.
valueOf
(
c
).
repeat
(
Math
.
max
(
0
,
size
)));
}
return
sb
.
toString
();
}
/**
* 切分字符串(分隔符默认逗号)
*
* @param str 被切分的字符串
* @return 分割后的数据列表
*/
public
static
List
<
String
>
splitList
(
String
str
)
{
return
splitTo
(
str
,
Convert:
:
toStr
);
}
/**
* 切分字符串
*
* @param str 被切分的字符串
* @param separator 分隔符
* @return 分割后的数据列表
*/
public
static
List
<
String
>
splitList
(
String
str
,
String
separator
)
{
return
splitTo
(
str
,
separator
,
Convert:
:
toStr
);
}
/**
* 切分字符串自定义转换(分隔符默认逗号)
*
* @param str 被切分的字符串
* @param mapper 自定义转换
* @return 分割后的数据列表
*/
public
static
<
T
>
List
<
T
>
splitTo
(
String
str
,
Function
<?
super
Object
,
T
>
mapper
)
{
return
splitTo
(
str
,
SEPARATOR
,
mapper
);
}
/**
* 切分字符串自定义转换
*
* @param str 被切分的字符串
* @param separator 分隔符
* @param mapper 自定义转换
* @return 分割后的数据列表
*/
public
static
<
T
>
List
<
T
>
splitTo
(
String
str
,
String
separator
,
Function
<?
super
Object
,
T
>
mapper
)
{
if
(
isBlank
(
str
))
{
return
new
ArrayList
<>(
0
);
}
return
StrUtil
.
split
(
str
,
separator
)
.
stream
()
.
filter
(
Objects:
:
nonNull
)
.
map
(
mapper
)
.
collect
(
Collectors
.
toList
());
}
}
employmentBusiness-pc-common/employmentBusiness-pc-common-mybatis/src/main/java/org/dromara/common/mybatis/service/SysDataScopeService.java
0 → 100644
View file @
5245b766
package
org
.
dromara
.
common
.
mybatis
.
service
;
import
org.apache.dubbo.config.annotation.DubboReference
;
import
org.springframework.stereotype.Service
;
/**
* 数据权限 实现
* <p>
* 注意: 此Service内不允许调用标注`数据权限`注解的方法
* 例如: deptMapper.selectList 此 selectList 方法标注了`数据权限`注解 会出现循环解析的问题
*
* @author Lion Li
*/
@Service
(
"sdss"
)
public
class
SysDataScopeService
{
/*@DubboReference
private RemoteDataScopeService remoteDataScopeService;*/
/**
* 获取角色自定义权限语句
*
* @param roleId 角色ID
* @return 返回角色的自定义权限语句,如果没有找到则返回 null
*/
/*public String getRoleCustom(Long roleId) {
return remoteDataScopeService.getRoleCustom(roleId);
}*/
/**
* 获取部门和下级权限语句
*
* @param deptId 部门ID
* @return 返回部门及其下级的权限语句,如果没有找到则返回 null
*/
/*public String getDeptAndChild(Long deptId) {
return remoteDataScopeService.getDeptAndChild(deptId);
}*/
}
employmentBusiness-pc-modules/employmentBusiness-pc-system/src/main/java/com/bkty/system/config/SyncConfigProperties.java
0 → 100644
View file @
5245b766
package
com
.
bkty
.
system
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.cloud.context.config.annotation.RefreshScope
;
import
org.springframework.stereotype.Component
;
@Data
@Component
@RefreshScope
@ConfigurationProperties
(
prefix
=
"last.sync"
)
public
class
SyncConfigProperties
{
private
String
time
;
private
String
status
;
}
\ No newline at end of file
employmentBusiness-pc-modules/employmentBusiness-pc-system/src/main/java/com/bkty/system/domain/entity/SysDept.java
0 → 100644
View file @
5245b766
package
com
.
bkty
.
system
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.dromara.common.mybatis.core.domain.BaseEntity
;
import
java.io.Serial
;
/**
* 部门表
* @author Herbert
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"sys_dept"
)
public
class
SysDept
extends
BaseEntity
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
* 院系/班级名称ID
*/
@TableId
(
value
=
"dept_id"
)
private
Long
deptId
;
/**
* 父院系/班级名称ID
*/
private
Long
parentId
;
/**
* 院系/班级名称
*/
private
String
deptName
;
/**
* 院系/班级编码
*/
private
String
deptCategory
;
/**
* 显示顺序
*/
private
Integer
orderNum
;
/**
* 部门状态:0正常,1停用
*/
private
String
status
;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private
String
delFlag
;
/**
* 祖级列表
*/
private
String
ancestors
;
/**
* 简称
*/
private
String
deptAlias
;
/**
* 租户ID
*/
private
String
tenantId
;
}
employmentBusiness-pc-modules/employmentBusiness-pc-system/src/main/java/com/bkty/system/mapper/SysDeptMapper.java
0 → 100644
View file @
5245b766
package
com
.
bkty
.
system
.
mapper
;
import
com.bkty.system.domain.entity.SysDept
;
import
com.bkty.system.domain.vo.DeptVo
;
import
org.apache.ibatis.annotations.Param
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
java.util.List
;
/**
* @author Herbert
* @description 部门管理
* @data 2025/04/08
**/
public
interface
SysDeptMapper
extends
BaseMapperPlus
<
SysDept
,
DeptVo
>
{
/**
* 根据角色ID查询部门树信息
* @param roleId 角色ID
* @param menuCheckStrictly 部门树选择项是否关联显示
* @return 选中部门列表
*/
List
<
Long
>
selectDeptListByRoleId
(
@Param
(
"roleId"
)
Long
roleId
,
@Param
(
"menuCheckStrictly"
)
boolean
menuCheckStrictly
,
@Param
(
"status"
)
String
status
);
/**
* 根据用户ID查询部门数据
* @param userId 角色ID
* @return 选中部门列表
*/
List
<
Long
>
selectDeptIds
(
@Param
(
"userId"
)
Long
userId
);
}
employmentBusiness-pc-nacos/src/main/resources/static/console-ui/public/js/vs/basic-languages/src/swift.js
0 → 100644
View file @
5245b766
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* monaco-languages version: 0.9.0(e162b4ba29044167bc7181c42b3270fa8a467424)
* Released under the MIT license
* https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md
*-----------------------------------------------------------------------------*/
/*!---------------------------------------------------------------------------------------------
* Copyright (C) David Owens II, owensd.io. All rights reserved.
*--------------------------------------------------------------------------------------------*/
define
(
"vs/basic-languages/src/swift"
,[
"require"
,
"exports"
],
function
(
e
,
o
){
"use strict"
;
Object
.
defineProperty
(
o
,
"__esModule"
,{
value
:
!
0
}),
o
.
conf
=
{
comments
:{
lineComment
:
"//"
,
blockComment
:[
"/*"
,
"*/"
]},
brackets
:[[
"{"
,
"}"
],[
"["
,
"]"
],[
"("
,
")"
]],
autoClosingPairs
:[{
open
:
"{"
,
close
:
"}"
},{
open
:
"["
,
close
:
"]"
},{
open
:
"("
,
close
:
")"
},{
open
:
'"'
,
close
:
'"'
},{
open
:
"'"
,
close
:
"'"
},{
open
:
"`"
,
close
:
"`"
}],
surroundingPairs
:[{
open
:
"{"
,
close
:
"}"
},{
open
:
"["
,
close
:
"]"
},{
open
:
"("
,
close
:
")"
},{
open
:
'"'
,
close
:
'"'
},{
open
:
"'"
,
close
:
"'"
},{
open
:
"`"
,
close
:
"`"
}]},
o
.
language
=
{
defaultToken
:
""
,
tokenPostfix
:
".swift"
,
identifier
:
/
[
a-zA-Z_
][\w
$
]
*/
,
attributes
:[
"@autoclosure"
,
"@noescape"
,
"@noreturn"
,
"@NSApplicationMain"
,
"@NSCopying"
,
"@NSManaged"
,
"@objc"
,
"@UIApplicationMain"
,
"@noreturn"
,
"@availability"
,
"@IBAction"
,
"@IBDesignable"
,
"@IBInspectable"
,
"@IBOutlet"
],
accessmodifiers
:[
"public"
,
"private"
,
"internal"
],
keywords
:[
"__COLUMN__"
,
"__FILE__"
,
"__FUNCTION__"
,
"__LINE__"
,
"as"
,
"as!"
,
"as?"
,
"associativity"
,
"break"
,
"case"
,
"catch"
,
"class"
,
"continue"
,
"convenience"
,
"default"
,
"deinit"
,
"didSet"
,
"do"
,
"dynamic"
,
"dynamicType"
,
"else"
,
"enum"
,
"extension"
,
"fallthrough"
,
"final"
,
"for"
,
"func"
,
"get"
,
"guard"
,
"if"
,
"import"
,
"in"
,
"infix"
,
"init"
,
"inout"
,
"internal"
,
"is"
,
"lazy"
,
"left"
,
"let"
,
"mutating"
,
"nil"
,
"none"
,
"nonmutating"
,
"operator"
,
"optional"
,
"override"
,
"postfix"
,
"precedence"
,
"prefix"
,
"private"
,
"protocol"
,
"Protocol"
,
"public"
,
"repeat"
,
"required"
,
"return"
,
"right"
,
"self"
,
"Self"
,
"set"
,
"static"
,
"struct"
,
"subscript"
,
"super"
,
"switch"
,
"throw"
,
"throws"
,
"try"
,
"try!"
,
"Type"
,
"typealias"
,
"unowned"
,
"var"
,
"weak"
,
"where"
,
"while"
,
"willSet"
,
"FALSE"
,
"TRUE"
],
symbols
:
/
[
=(){}
\[\]
.,:;@#
\_
&
\-
<>`?!+*
\\\/]
/
,
operatorstart
:
/
[\/
=
\-
+!*%<>&|^~?
\u
00A1-
\u
00A7
\u
00A9
\u
00AB
\u
00AC
\u
00AE
\u
00B0-
\u
00B1
\u
00B6
\u
00BB
\u
00BF
\u
00D7
\u
00F7
\u
2016-
\u
2017
\u
2020-
\u
2027
\u
2030-
\u
203E
\u
2041-
\u
2053
\u
2055-
\u
205E
\u
2190-
\u
23FF
\u
2500-
\u
2775
\u
2794-
\u
2BFF
\u
2E00-
\u
2E7F
\u
3001-
\u
3003
\u
3008-
\u
3030
]
/
,
operatorend
:
/
[\u
0300-
\u
036F
\u
1DC0-
\u
1DFF
\u
20D0-
\u
20FF
\u
FE00-
\u
FE0F
\u
FE20-
\u
FE2F
\u
E0100-
\u
E01EF
]
/
,
operators
:
/
(
@operatorstart
)((
@operatorstart
)
|
(
@operatorend
))
*/
,
escapes
:
/
\\(?:[
abfnrtv
\\
"'
]
|x
[
0-9A-Fa-f
]{1,4}
|u
[
0-9A-Fa-f
]{4}
|U
[
0-9A-Fa-f
]{8})
/
,
tokenizer
:{
root
:[{
include
:
"@comment"
},{
include
:
"@attribute"
},{
include
:
"@literal"
},{
include
:
"@keyword"
},{
include
:
"@invokedmethod"
},{
include
:
"@symbol"
}],
symbol
:[[
/
[
{}()
\[\]]
/
,
"@brackets"
],[
/
[
<>
](?!
@symbols
)
/
,
"@brackets"
],[
/
[
.
]
/
,
"delimiter"
],[
/@operators/
,
"operator"
],[
/@symbols/
,
"operator"
]],
comment
:[[
/
\/\/\/
.*$/
,
"comment.doc"
],[
/
\/\*\*
/
,
"comment.doc"
,
"@commentdocbody"
],[
/
\/\/
.*$/
,
"comment"
],[
/
\/\*
/
,
"comment"
,
"@commentbody"
]],
commentdocbody
:[[
/
\/\*
/
,
"comment"
,
"@commentbody"
],[
/
\*\/
/
,
"comment.doc"
,
"@pop"
],[
/
\:[
a-zA-Z
]
+
\:
/
,
"comment.doc.param"
],[
/./
,
"comment.doc"
]],
commentbody
:[[
/
\/\*
/
,
"comment"
,
"@commentbody"
],[
/
\*\/
/
,
"comment"
,
"@pop"
],[
/./
,
"comment"
]],
attribute
:[[
/
\@
@identifier/
,{
cases
:{
"@attributes"
:
"keyword.control"
,
"@default"
:
""
}}]],
literal
:[[
/"/
,{
token
:
"string.quote"
,
next
:
"@stringlit"
}],[
/0
[
b
]([
01
]
_
?)
+/
,
"number.binary"
],[
/0
[
o
]([
0-7
]
_
?)
+/
,
"number.octal"
],[
/0
[
x
]([
0-9a-fA-F
]
_
?)
+
([
pP
][\-
+
](\d
_
?)
+
)?
/
,
"number.hex"
],[
/
(\d
_
?)
*
\.(\d
_
?)
+
([
eE
][\-
+
]?(\d
_
?)
+
)?
/
,
"number.float"
],[
/
(\d
_
?)
+/
,
"number"
]],
stringlit
:[[
/
\\\(
/
,{
token
:
"operator"
,
next
:
"@interpolatedexpression"
}],[
/@escapes/
,
"string"
],[
/
\\
./
,
"string.escape.invalid"
],[
/"/
,{
token
:
"string.quote"
,
next
:
"@pop"
}],[
/./
,
"string"
]],
interpolatedexpression
:[[
/
\(
/
,{
token
:
"operator"
,
next
:
"@interpolatedexpression"
}],[
/
\)
/
,{
token
:
"operator"
,
next
:
"@pop"
}],{
include
:
"@literal"
},{
include
:
"@keyword"
},{
include
:
"@symbol"
}],
keyword
:[[
/`/
,{
token
:
"operator"
,
next
:
"@escapedkeyword"
}],[
/@identifier/
,{
cases
:{
"@keywords"
:
"keyword"
,
"[A-Z][a-zA-Z0-9$]*"
:
"type.identifier"
,
"@default"
:
"identifier"
}}]],
escapedkeyword
:[[
/`/
,{
token
:
"operator"
,
next
:
"@pop"
}],[
/./
,
"identifier"
]],
invokedmethod
:[[
/
([
.
])(
@identifier
)
/
,{
cases
:{
$2
:[
"delimeter"
,
"type.identifier"
],
"@default"
:
""
}}]]}}});
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment