@@ -1952,6 +1952,34 @@ fn run_shell_command(
1952
1952
Ok ( ( ) )
1953
1953
}
1954
1954
1955
+ fn clear_register (
1956
+ cx : & mut compositor:: Context ,
1957
+ args : & [ Cow < str > ] ,
1958
+ event : PromptEvent ,
1959
+ ) -> anyhow:: Result < ( ) > {
1960
+ if event != PromptEvent :: Validate {
1961
+ return Ok ( ( ) ) ;
1962
+ }
1963
+ ensure ! ( args. len( ) <= 1 , ":clear-register takes at most 1 argument" ) ;
1964
+ if args. is_empty ( ) {
1965
+ cx. editor . registers . clear ( ) ;
1966
+ cx. editor . set_status ( "All registers cleared" ) ;
1967
+ return Ok ( ( ) ) ;
1968
+ }
1969
+
1970
+ ensure ! ( args[ 0 ] . len( ) == 1 , format!( "Invalid register {}" , args[ 0 ] ) ) ;
1971
+ let register = args[ 0 ] . chars ( ) . next ( ) . unwrap_or_default ( ) ;
1972
+ match cx. editor . registers . remove ( register) {
1973
+ Some ( _) => cx
1974
+ . editor
1975
+ . set_status ( format ! ( "Register {} cleared" , register) ) ,
1976
+ None => cx
1977
+ . editor
1978
+ . set_error ( format ! ( "Register {} not found" , register) ) ,
1979
+ }
1980
+ Ok ( ( ) )
1981
+ }
1982
+
1955
1983
pub const TYPABLE_COMMAND_LIST : & [ TypableCommand ] = & [
1956
1984
TypableCommand {
1957
1985
name : "quit" ,
@@ -2474,6 +2502,13 @@ pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
2474
2502
fun : run_shell_command,
2475
2503
completer : Some ( completers:: filename) ,
2476
2504
} ,
2505
+ TypableCommand {
2506
+ name : "clear-register" ,
2507
+ aliases : & [ ] ,
2508
+ doc : "Clear given register. If no argument is provided, clear all registers." ,
2509
+ fun : clear_register,
2510
+ completer : None ,
2511
+ } ,
2477
2512
] ;
2478
2513
2479
2514
pub static TYPABLE_COMMAND_MAP : Lazy < HashMap < & ' static str , & ' static TypableCommand > > =
0 commit comments