aboutsummaryrefslogtreecommitdiff
path: root/rprt-engine/src/selection_functions/function_character.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rprt-engine/src/selection_functions/function_character.rs')
-rw-r--r--rprt-engine/src/selection_functions/function_character.rs31
1 files changed, 22 insertions, 9 deletions
diff --git a/rprt-engine/src/selection_functions/function_character.rs b/rprt-engine/src/selection_functions/function_character.rs
index 0d0699f..94c0963 100644
--- a/rprt-engine/src/selection_functions/function_character.rs
+++ b/rprt-engine/src/selection_functions/function_character.rs
@@ -1,9 +1,12 @@
-use crate::selection::Selection;
-use crate::selection_function_param;
-use crate::selection_functions::types::{get_buffer, SFArguments, SFError, SFResult};
-use crate::state::EditorState;
+use crate::{
+ dispatch_selection_function,
+ selection::Selection,
+ selection_function,
+ selection_functions::types::{get_buffer, SFArguments, SFError, SFResult},
+ state::EditorState,
+};
-selection_function_param! {
+selection_function! {
name: character,
param_type: usize,
niladic: |(param, es): (usize, &EditorState)| {
@@ -19,7 +22,7 @@ selection_function_param! {
)
}
-selection_function_param!(
+selection_function!(
name: sequential_character,
param_type: usize,
niladic: |_| Err(SFError::NoNiladicForm(";n").into()),
@@ -33,7 +36,7 @@ selection_function_param!(
}
);
-selection_function_param!(
+selection_function!(
name: reverse_character,
param_type: usize,
niladic: |(param, es): (usize, &EditorState)| {
@@ -53,7 +56,7 @@ selection_function_param!(
)
);
-selection_function_param!(
+selection_function!(
name: sequential_reverse_character,
param_type: usize,
niladic: |_| Err(SFError::NoNiladicForm(";'n").into()),
@@ -65,7 +68,7 @@ selection_function_param!(
}
);
-selection_function_param!(
+selection_function!(
name: reverse_sequential_character,
param_type: usize,
niladic: |_| Err(SFError::NoNiladicForm("';n").into()),
@@ -76,3 +79,13 @@ selection_function_param!(
Ok(Selection::Position {buffer_id, pos: if *param<int.start {int.start - *param} else {0}})
}
);
+
+dispatch_selection_function!(
+ name: selection_function_character,
+ param_type: usize,
+ base: character,
+ sequential: sequential_character,
+ reverse: reverse_character,
+ sequential_reverse: sequential_reverse_character,
+ reverse_sequential: reverse_sequential_character,
+);