From c80c2812199c2304e8049a7195f342c88a6f937c Mon Sep 17 00:00:00 2001 From: Piotr Jawniak Date: Sat, 31 May 2014 13:40:59 +0200 Subject: [PATCH] New snippets and cleanup for Rust --- UltiSnips/rust.snippets | 113 +++++++++++++++++++++++++--------------- 1 file changed, 72 insertions(+), 41 deletions(-) diff --git a/UltiSnips/rust.snippets b/UltiSnips/rust.snippets index 9985226..425833f 100644 --- a/UltiSnips/rust.snippets +++ b/UltiSnips/rust.snippets @@ -4,9 +4,6 @@ priority -50 -############### -# Functions # -############### snippet fn "A function, optionally with arguments and return type." b fn ${1:function_name}(${2})${3/..*/ -> /}${3} { ${VISUAL}${0} @@ -20,6 +17,16 @@ fn ${1:test_function_name}() { } endsnippet + +snippet bench "Bench function" b +#[bench] +fn ${1:bench_function_name}(b: &mut test::Bencher) { + b.iter(|| { + ${VISUAL}${0} + }) +} +endsnippet + snippet new "A new function" b pub fn new(${2}) -> ${1:Name} { ${VISUAL}${0}return $1 { ${3} }; @@ -32,17 +39,33 @@ pub fn main() { } endsnippet - - snippet let "A let statement" b let ${1:name}${3} = ${VISUAL}${2}; endsnippet +snippet lmut "let mut = .." b +let mut ${1:name}${3} = ${VISUAL}${2}; +endsnippet + +snippet pri "print!(..)" b +print!("${1}"${2/..*/, /}${2}); +endsnippet + snippet pln "println!(..)" b println!("${1}"${2/..*/, /}${2}); endsnippet +snippet fmt "format!(..)" +format!("${1}"${2/..*/, /}${2}); +endsnippet +snippet macro "macro_rules!" b +macro_rules! ${1:name} ( + (${2:matcher}) => ( + ${3} + ) +) +endsnippet snippet ec "extern crate ..." b extern crate ${1:sync}; @@ -53,10 +76,10 @@ snippet ecl "...extern crate log;" b #[phase(syntax, link)] extern crate log; endsnippet -snippet mod "A mod." b +snippet mod "A module" b mod ${1:`!p snip.rv = snip.basename.lower() or "name"`} { ${VISUAL}${0} -} /* $1 */ +} endsnippet snippet crate "Create header information" b @@ -80,35 +103,58 @@ snippet feat "#![feature(..)]" b #![feature(${1:macro_rules})] endsnippet +snippet der "#![deriving(..)]" b +#![deriving(${1:Show})] +endsnippet -################## -# Common types # -################## snippet opt "Option<..>" Option<${1:int}> endsnippet snippet res "Result<.., ..>" -Result<${1:~str}, ${2:()}> +Result<${1:int}, ${2:()}> endsnippet - - - snippet if "if .. (if)" b -if ${1:/* condition */} { +if ${1} { ${VISUAL}${0} } endsnippet +snippet el "else .. (el)" +else { + ${VISUAL}${0} +} +endsnippet + +snippet eli "else if .. (eli)" +else if ${1} { + ${VISUAL}${0} +} +endsnippet + +snippet ife "if .. else (ife)" +if ${1} { + ${2} +} else { + ${3} +} +endsnippet + snippet mat "match" match ${1} { ${2} => ${3}, } endsnippet +snippet loop "loop {}" b +loop { + ${VISUAL}${0} +} +endsnippet + snippet while "while .. {}" b -while ${1:condition} { +while ${1} { ${VISUAL}${0} } endsnippet @@ -133,25 +179,22 @@ snippet duplex "Duplex stream" b let (${1:from_child}, ${2:to_child}) = sync::duplex(); endsnippet -##################### -# TODO commenting # -##################### snippet todo "A Todo comment" // [TODO]: ${1:Description} - `!v strftime("%Y-%m-%d %I:%M%P")` endsnippet +snippet fixme "FIXME comment" +// FIXME: ${1} +endsnippet -############ -# Struct # -############ snippet st "Struct" b -struct ${1:`!p snip.rv = snip.basename.title() or "name"`} { +struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { ${VISUAL}${0} } endsnippet snippet stn "Struct with new constructor." b -pub struct ${1:`!p snip.rv = snip.basename.title() or "name"`} { +pub struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { ${3} } @@ -164,20 +207,16 @@ impl $1 { } endsnippet - -########## -# Enum # -########## snippet enum "An enum" b -enum ${1:enum_name} { +enum ${1:Name} { ${VISUAL}${0}, } endsnippet +snippet type "A type" b +type ${1:NewName} = ${VISUAL}${0}; +endsnippet -########## -# Impl # -########## snippet imp "An impl" b impl ${1:Name} { ${VISUAL}${0} @@ -192,20 +231,12 @@ impl Drop for ${1:Name} { } endsnippet - -############ -# Traits # -############ -snippet trait "Trait block" b +snippet trait "Trait definition" b trait ${1:Name} { ${VISUAL}${0} } endsnippet - -############# -# Statics # -############# snippet ss "A static string." static ${1}: &'static str = "${VISUAL}${0}"; endsnippet