Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New snippets and cleanup for Rust #372

Merged
merged 1 commit into from
May 31, 2014
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 71 additions & 40 deletions UltiSnips/rust.snippets
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -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} };
Expand All @@ -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};
Expand All @@ -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
Expand All @@ -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} {
${VISUAL}${0}
}
endsnippet

snippet el "else .. (el)"
else {
${VISUAL}${0}
}
endsnippet


snippet if "if .. (if)" b
if ${1:/* condition */} {
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
Expand All @@ -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}
}

Expand All @@ -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}
Expand All @@ -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
Expand Down