From c22cc3b348bdcb446fb0e44070da36fdf6b05800 Mon Sep 17 00:00:00 2001 From: tslil Date: Sat, 21 Mar 2026 08:49:35 +0000 Subject: big rework to support evaluation of selection functions, WiP --- .../src/selection_functions/function_character.rs | 31 +++++++++++++++------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'rprt-engine/src/selection_functions/function_character.rs') 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