Skip to content

Commit 9d8a666

Browse files
lpilMarcWeber
authored andcommitted
Add snipmate style rust snippets
1 parent a066d60 commit 9d8a666

File tree

1 file changed

+125
-0
lines changed

1 file changed

+125
-0
lines changed

snippets/rust.snippets

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
#################
2+
# Rust Snippets #
3+
#################
4+
5+
# Functions
6+
snippet fn
7+
fn ${1:function_name}(${2}) {
8+
${0}
9+
}
10+
snippet fn-
11+
fn ${1:function_name}(${2}) -> ${3} {
12+
${0}
13+
}
14+
snippet test
15+
#[test]
16+
fn ${1:test_function_name}() {
17+
${0}
18+
}
19+
snippet new
20+
pub fn new(${2}) -> ${1:Name} {
21+
${0}return $1 { ${3} };
22+
}
23+
snippet main
24+
pub fn main() {
25+
${0}
26+
}
27+
snippet let
28+
let ${1:name}${3} = ${2};
29+
snippet pln
30+
println!("${1}");
31+
snippet pln,
32+
println!("${1}", ${2});
33+
snippet ec
34+
extern crate ${1:sync};
35+
snippet ecl
36+
#![feature(phase)]
37+
#[phase(syntax, link)] extern crate log;
38+
snippet mod
39+
mod ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} {
40+
${0}
41+
} /* $1 */
42+
snippet crate
43+
// Crate ID
44+
#![crate_id = "${1:crate_name}#${2:0.0.1}"]
45+
// Additional metadata attributes
46+
#![desc = "${3:Descrption.}"]
47+
#![license = "${4:BSD}"]
48+
#![comment = "${5:Comment.}"]
49+
// Specify the output type
50+
#![crate_type = "${6:lib}"]
51+
snippet allow
52+
#[allow(${1:unused_variable})]
53+
snippet feat
54+
#![feature(${1:macro_rules})]
55+
# Common types
56+
snippet opt
57+
Option<${1:int}>
58+
snippet res
59+
Result<${1:~str}, ${2:()}>
60+
snippet if
61+
if ${1:/* condition */} {
62+
${0}
63+
}
64+
snippet mat
65+
match ${1} {
66+
${2} => ${3},
67+
}
68+
snippet while
69+
while ${1:condition} {
70+
${0}
71+
}
72+
snippet for
73+
for ${1:i} in ${2:range(0u, 10)} {
74+
${0}
75+
}
76+
snippet spawn
77+
spawn(proc() {
78+
${0}
79+
});
80+
snippet chan
81+
let (${1:tx}, ${2:rx}): (Sender<${3:int}>, Receiver<${4:int}>) = channel();
82+
snippet duplex
83+
let (${1:from_child}, ${2:to_child}) = sync::duplex();
84+
# TODO commenting
85+
snippet todo
86+
// [TODO]: ${1:Description}
87+
# Struct
88+
snippet st
89+
struct ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} {
90+
${0}
91+
}
92+
93+
impl $1 {
94+
pub fn new(${2}) -> $1 {
95+
${4}return $1 {
96+
${5}
97+
};
98+
}
99+
}
100+
# Enum
101+
snippet enum
102+
enum ${1:enum_name} {
103+
${0},
104+
}
105+
# Impl
106+
snippet imp
107+
impl ${1:Name} {
108+
${0}
109+
}
110+
snippet drop
111+
impl Drop for ${1:Name} {
112+
fn drop(&mut self) {
113+
${0}
114+
}
115+
}
116+
# Traits
117+
snippet trait
118+
trait ${1:Name} {
119+
${0}
120+
}
121+
# Statics
122+
snippet ss
123+
static ${1}: &'static str = "${0}";
124+
snippet stat
125+
static ${1}: ${2:uint} = ${0};

0 commit comments

Comments
 (0)