1 # replace snippets of parent ft
4 snippet inc "#include <>" b
5 #include <${1:iostream}>
8 snippet Inc "#include \'\'" b
9 #include "${1:`!p snip.rv = snip.basename+".hpp"`}"
12 snippet cl "class .. (class)" b
13 class ${1:`!p snip.rv = snip.basename or "name"`}
16 ${1/(\w+).*/$1/}(${2:arguments});
17 virtual ~${1/(\w+).*/$1/}();
21 }; // class${1/.+/ $0/m}
24 snippet ns "namespace .. (namespace)"
25 namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`}
28 }${1/.+/ \/\/ namespace $0/m}
31 snippet mfun "Member Function" b
32 ${4:void} ${1:`!p snip.rv = snip.basename or "name"`}::${2:memberFunction}(${3})
38 snippet for "for loop (for)"
39 for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2})
45 snippet cplat "Cross platform pre processor split" b
46 #if defined(__GNUC__) && defined(__unix__)
48 #elif defined(__APPLE__)
55 snippet pprint "Pretty print expression" b
56 #define PPRINT(x) std::cout << #x " = " << (x) << '\n';
64 def align(base, a, pad=' '):
65 amount = abs(len(base) - len(a))
66 return amount * pad if len(base) < len(a) else ''
69 snippet connect "Qt connect()" b
70 connect(${1:this}, `!p snip.rv = align(t[1],t[3])`&${2:class::function},
71 ${3:this}, `!p snip.rv = align(t[3],t[1])`&${4:class::function});
75 snippet connectl "Qt connect() lambda" b
76 connect(${1:this}, &${2:class::function},
77 [=](${3:void}) { ${4} });
81 snippet w "Define a new QWidget" b
82 auto ${1:widget} = new ${2:QWidget};
83 $1->setObjectName("${3:$1}");
87 snippet widget "Qt Widget Class" b
88 class ${1:`!p snip.rv = snip.basename or "WidgetClass"`} : public QWidget
93 explicit $1(${2}QWidget *parent = 0);
103 }; // class${1/.+/ $0/m}
106 # http://stackoverflow.com/a/9864472
107 snippet alias "Function alias" b
108 template <typename... Args>
109 auto ${1:alias}(Args&&... args)
110 -> decltype($2(std::forward<Args>(args)...))
112 return ${2:function}(std::forward<Args>(args)...);
116 snippet once "#pragma once" b