@@ -25,6 +25,7 @@ pub struct FenceSettings<'a> {
25
25
pub highlight_lines : Vec < RangeInclusive < usize > > ,
26
26
pub hide_lines : Vec < RangeInclusive < usize > > ,
27
27
pub name : Option < & ' a str > ,
28
+ pub enable_copy : bool ,
28
29
}
29
30
30
31
impl < ' a > FenceSettings < ' a > {
@@ -36,6 +37,7 @@ impl<'a> FenceSettings<'a> {
36
37
highlight_lines : Vec :: new ( ) ,
37
38
hide_lines : Vec :: new ( ) ,
38
39
name : None ,
40
+ enable_copy : false ,
39
41
} ;
40
42
41
43
for token in FenceIter :: new ( fence_info) {
@@ -46,6 +48,7 @@ impl<'a> FenceSettings<'a> {
46
48
FenceToken :: HighlightLines ( lines) => me. highlight_lines . extend ( lines) ,
47
49
FenceToken :: HideLines ( lines) => me. hide_lines . extend ( lines) ,
48
50
FenceToken :: Name ( n) => me. name = Some ( n) ,
51
+ FenceToken :: EnableCopy => me. enable_copy = true ,
49
52
}
50
53
}
51
54
@@ -61,6 +64,7 @@ enum FenceToken<'a> {
61
64
HighlightLines ( Vec < RangeInclusive < usize > > ) ,
62
65
HideLines ( Vec < RangeInclusive < usize > > ) ,
63
66
Name ( & ' a str ) ,
67
+ EnableCopy ,
64
68
}
65
69
66
70
struct FenceIter < ' a > {
@@ -112,6 +116,7 @@ impl<'a> Iterator for FenceIter<'a> {
112
116
return Some ( FenceToken :: Name ( n) ) ;
113
117
}
114
118
}
119
+ "copy" => return Some ( FenceToken :: EnableCopy ) ,
115
120
lang => {
116
121
if tok_split. next ( ) . is_some ( ) {
117
122
eprintln ! ( "Warning: Unknown annotation {}" , lang) ;
0 commit comments