Skip to content

Add snipmate style rust snippets #355

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

Closed
wants to merge 1 commit into from
Closed
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
125 changes: 125 additions & 0 deletions snippets/rust.snippets
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
#################
# Rust Snippets #
#################

# Functions
snippet fn
fn ${1:function_name}(${2}) {
${0}
}
snippet fn-
fn ${1:function_name}(${2}) -> ${3} {
${0}
}
snippet test
#[test]
fn ${1:test_function_name}() {
${0}
}
snippet new
pub fn new(${2}) -> ${1:Name} {
${0}return $1 { ${3} };
}
snippet main
pub fn main() {
${0}
}
snippet let
let ${1:name}${3} = ${2};
snippet pln
println!("${1}");
snippet pln,
println!("${1}", ${2});
snippet ec
extern crate ${1:sync};
snippet ecl
#![feature(phase)]
#[phase(syntax, link)] extern crate log;
snippet mod
mod ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} {
${0}
} /* $1 */
snippet crate
// Crate ID
#![crate_id = "${1:crate_name}#${2:0.0.1}"]
// Additional metadata attributes
#![desc = "${3:Descrption.}"]
#![license = "${4:BSD}"]
#![comment = "${5:Comment.}"]
// Specify the output type
#![crate_type = "${6:lib}"]
snippet allow
#[allow(${1:unused_variable})]
snippet feat
#![feature(${1:macro_rules})]
# Common types
snippet opt
Option<${1:int}>
snippet res
Result<${1:~str}, ${2:()}>
snippet if
if ${1:/* condition */} {
${0}
}
snippet mat
match ${1} {
${2} => ${3},
}
snippet while
while ${1:condition} {
${0}
}
snippet for
for ${1:i} in ${2:range(0u, 10)} {
${0}
}
snippet spawn
spawn(proc() {
${0}
});
snippet chan
let (${1:tx}, ${2:rx}): (Sender<${3:int}>, Receiver<${4:int}>) = channel();
snippet duplex
let (${1:from_child}, ${2:to_child}) = sync::duplex();
# TODO commenting
snippet todo
// [TODO]: ${1:Description}
# Struct
snippet st
struct ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} {
${0}
}

impl $1 {
pub fn new(${2}) -> $1 {
${4}return $1 {
${5}
};
}
}
# Enum
snippet enum
enum ${1:enum_name} {
${0},
}
# Impl
snippet imp
impl ${1:Name} {
${0}
}
snippet drop
impl Drop for ${1:Name} {
fn drop(&mut self) {
${0}
}
}
# Traits
snippet trait
trait ${1:Name} {
${0}
}
# Statics
snippet ss
static ${1}: &'static str = "${0}";
snippet stat
static ${1}: ${2:uint} = ${0};