# replace snippets of parent ft priority 1 snippet inc "#include <>" b #include <${1:iostream}> endsnippet snippet Inc "#include \'\'" b #include "${1:`!p snip.rv = snip.basename+".h"`}" endsnippet snippet cl "class .. (class)" b class ${1:`!p snip.rv = snip.basename or "name"`} { public: ${1/(\w+).*/$1/}(${2:arguments}); virtual ~${1/(\w+).*/$1/}(); private: ${0:/* data */} }; // class${1/.+/ $0/m} endsnippet snippet ns "namespace .. (namespace)" namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`} { ${VISUAL}${0} }${1/.+/ \/\/ namespace $0/m} endsnippet snippet mfun "Member Function" b ${4:void} ${1:`!p snip.rv = snip.basename or "name"`}::${2:memberFunction}(${3}) { ${0} } endsnippet snippet for "for loop (for)" for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2}) { ${VISUAL}${0} } endsnippet snippet cplat "Cross platform pre processor split" b #if defined(__GNUC__) && defined(__unix__) ${1} #elif defined(__APPLE__) ${2} #elif defined(WIN32) ${3} #endif endsnippet # # Qt # snippet connect "Qt connect()" b connect(${1:this}, SIGNAL(${2:signal()}), ${3:this}, SLOT(${4:slot()})); endsnippet snippet connectl "Qt connect() lambda" b connect(${1:this}, &${2:class::function}, [=](${3:void}) { ${4} }); ${0} endsnippet snippet w "Define a new QWidget" b auto ${1:widget} = new ${2:QWidget}; $1->setObjectName("${3:$1}"); ${0} endsnippet snippet widget "Qt Widget Class" b class ${1:`!p snip.rv = snip.basename or "WidgetClass"`} : public QWidget { Q_OBJECT public: explicit $1(${2}QWidget *parent = 0); ~$1() = default; $0 public slots: signals: private: }; // class${1/.+/ $0/m} endsnippet # http://stackoverflow.com/a/9864472 snippet alias "Function alias" b template auto ${1:alias}(Args&&... args) -> decltype($2(std::forward(args)...)) { return ${2:function}(std::forward(args)...); } endsnippet