Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
scie
提交
f39f06a9
S
scie
项目概览
Phodal
/
scie
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
scie
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
f39f06a9
编写于
9月 03, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: add get_content name support for handle captures
上级
cca2769d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
39 addition
and
3 deletion
+39
-3
scie-grammar/src/grammar/grammar.rs
scie-grammar/src/grammar/grammar.rs
+22
-3
scie-grammar/src/rule/abstract_rule.rs
scie-grammar/src/rule/abstract_rule.rs
+17
-0
未找到文件。
scie-grammar/src/grammar/grammar.rs
浏览文件 @
f39f06a9
...
...
@@ -314,7 +314,27 @@ impl Grammar {
line_tokens
.produce
(
stack
,
capture_index
.start
as
i32
);
}
capture_rule
match
capture_rule
.get_rule_instance
()
{
RuleEnum
::
CaptureRule
(
capture
)
=>
{
if
capture
.retokenize_captured_with_rule_id
!=
0
{
let
scope_name
=
capture
.get_name
(
Some
(
line_text
.clone
()),
Some
(
capture_indices
.clone
()));
let
name_scopes_list
=
stack
.content_name_scopes_list
.push
(
grammar
,
scope_name
);
let
content_name
=
capture
.get_content_name
(
Some
(
line_text
.clone
()),
Some
(
capture_indices
.clone
()));
let
content_name_scopes_list
=
name_scopes_list
.push
(
grammar
,
content_name
);
let
stack_clone
=
stack
.clone
()
.push
(
capture
.retokenize_captured_with_rule_id
,
capture_index
.start
.clone
()
as
i32
,
-
1
,
false
,
None
,
name_scopes_list
,
content_name_scopes_list
,
);
// line
}
}
_
=>
{}
}
}
}
...
...
@@ -343,8 +363,7 @@ impl Grammar {
)
{
let
match_result
=
self
.match_rule
(
line_text
,
is_first_line
,
line_pos
,
stack
,
anchor_position
);
if
let
Some
(
result
)
=
match_result
{
}
else
{
if
let
Some
(
result
)
=
match_result
{}
else
{
// None
};
// todo: get injections logic
...
...
scie-grammar/src/rule/abstract_rule.rs
浏览文件 @
f39f06a9
...
...
@@ -40,8 +40,25 @@ pub trait AbstractRule: DynClone + erased_serde::Serialize {
return
name
;
}
println!
(
"todo: AbstractRule.get_name"
);
return
Some
(
String
::
from
(
""
));
}
fn
get_content_name
(
&
self
,
line_text
:
Option
<
String
>
,
capture_indices
:
Option
<
Vec
<
IOnigCaptureIndex
>>
,
)
->
Option
<
String
>
{
let
_
content_name
=
self
.get_rule
()
._content_name
.clone
();
let
has_captures
=
RegexSource
::
has_captures
(
_
content_name
.clone
());
if
!
has_captures
||
_
content_name
==
None
{
return
_
content_name
;
}
println!
(
"todo: AbstractRule.get_name"
);
return
Some
(
String
::
from
(
""
));
}
fn
has_missing_pattern
(
&
self
)
->
bool
{
false
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录