diff options
| author | tslil <tslil@posteo.de> | 2026-03-21 08:49:35 +0000 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-03-21 17:26:50 +0000 |
| commit | c22cc3b348bdcb446fb0e44070da36fdf6b05800 (patch) | |
| tree | 81371ff735529e7b2a5b1727be9c8b06123609e6 /rprt-engine/src/selection_functions/function_character.rs | |
| parent | 5a5da7bc299bee12072e421d1936554690e34dd6 (diff) | |
big rework to support evaluation of selection functions, WiP
Diffstat (limited to 'rprt-engine/src/selection_functions/function_character.rs')
| -rw-r--r-- | rprt-engine/src/selection_functions/function_character.rs | 31 |
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, +); |
