on master help sign in
Simplify view/doc macros
27ceeb8Blaž Hrastnik
helix-view/src/macros.rs+20−20
@@ -11,10 +11,19 @@
11/// Returns `(&mut View, &mut Document)`
11/// Returns `(&mut View, &mut Document)`
12#[macro_export]
12#[macro_export]
13macro_rules! current {
13macro_rules! current {
14− ( $( $editor:ident ).+ ) => {{
14+ ($editor:expr) => {{
15− let view = $crate::view_mut!( $( $editor ).+ );
15+ let view = $crate::view_mut!($editor);
16 let id = view.doc;
16 let id = view.doc;
17− let doc = $( $editor ).+ .documents.get_mut(&id).unwrap();
17+ let doc = $editor.documents.get_mut(&id).unwrap();
18+ (view, doc)
19+ }};
20+}
21+
22+#[macro_export]
23+macro_rules! current_ref {
24+ ($editor:expr) => {{
25+ let view = $editor.tree.get($editor.tree.focus);
26+ let doc = &$editor.documents[&view.doc];
18 (view, doc)
27 (view, doc)
19 }};
28 }};
20}
29}
@@ -23,8 +32,8 @@ macro_rules! current {
23/// Returns `&mut Document`
32/// Returns `&mut Document`
24#[macro_export]
33#[macro_export]
25macro_rules! doc_mut {
34macro_rules! doc_mut {
26− ( $( $editor:ident ).+ ) => {{
35+ ($editor:expr) => {{
27− $crate::current!( $( $editor ).+ ).1
36+ $crate::current!($editor).1
28 }};
37 }};
29}
38}
30
39
@@ -32,8 +41,8 @@ macro_rules! doc_mut {
32/// Returns `&mut View`
41/// Returns `&mut View`
33#[macro_export]
42#[macro_export]
34macro_rules! view_mut {
43macro_rules! view_mut {
35− ( $( $editor:ident ).+ ) => {{
44+ ($editor:expr) => {{
36− $( $editor ).+ .tree.get_mut($( $editor ).+ .tree.focus)
45+ $editor.tree.get_mut($editor.tree.focus)
37 }};
46 }};
38}
47}
39
48
@@ -41,23 +50,14 @@ macro_rules! view_mut {
41/// Returns `&View`
50/// Returns `&View`
42#[macro_export]
51#[macro_export]
43macro_rules! view {
52macro_rules! view {
44− ( $( $editor:ident ).+ ) => {{
53+ ($editor:expr) => {{
45− $( $editor ).+ .tree.get($( $editor ).+ .tree.focus)
54+ $editor.tree.get($editor.tree.focus)
46 }};
55 }};
47}
56}
48
57
49#[macro_export]
58#[macro_export]
50macro_rules! doc {
59macro_rules! doc {
51− ( $( $editor:ident ).+ ) => {{
60+ ($editor:expr) => {{
52− $crate::current_ref!( $( $editor ).+ ).1
61+ $crate::current_ref!($editor).1
53− }};
54−}
55−
56−#[macro_export]
57−macro_rules! current_ref {
58− ( $( $editor:ident ).+ ) => {{
59− let view = $( $editor ).+ .tree.get($( $editor ).+ .tree.focus);
60− let doc = &$( $editor ).+ .documents[&view.doc];
61− (view, doc)
62 }};
62 }};
63}
63}