# replace snippets of parent ft priority 1 # disable horrible one word snippets clearsnippets pri pro pub fr mu snippet inc "#include <>" b #include <${1:iostream}> endsnippet snippet Inc "#include \'\'" b #include "${1:`!p snip.rv = snip.basename+".hpp"`}" 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 snippet pprint "Pretty print expression" b #define PPRINT(x) std::cout << #x " = " << (x) << '\n'; PPRINT(${VISUAL}${0}) endsnippet # # Qt # global !p def align(base, a, pad=' '): amount = abs(len(base) - len(a)) return amount * pad if len(base) < len(a) else '' endglobal snippet connect "Qt connect()" b connect(${1:this}, `!p snip.rv = align(t[1],t[3])`&${2:class::function}, ${3:this}, `!p snip.rv = align(t[3],t[1])`&${4:class::function}); ${0} 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 snippet once "#pragma once" b #pragma once ${0} endsnippet