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+".h"`}"
 
  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__)
 
  59 def align(base, a, pad=' '):
 
  60         amount = abs(len(base) - len(a))
 
  61         return amount * pad if len(base) < len(a) else ''
 
  64 snippet connect "Qt connect()" b
 
  65 connect(${1:this}, `!p snip.rv = align(t[1],t[3])`&${2:class::function},
 
  66         ${3:this}, `!p snip.rv = align(t[3],t[1])`&${4:class::function});
 
  70 snippet connectl "Qt connect() lambda" b
 
  71 connect(${1:this}, &${2:class::function},
 
  72         [=](${3:void}) { ${4} });
 
  76 snippet w "Define a new QWidget" b
 
  77 auto ${1:widget} = new ${2:QWidget};
 
  78 $1->setObjectName("${3:$1}");
 
  82 snippet widget "Qt Widget Class" b
 
  83 class ${1:`!p snip.rv = snip.basename or "WidgetClass"`} : public QWidget
 
  88         explicit $1(${2}QWidget *parent = 0);
 
  98 }; // class${1/.+/ $0/m}
 
 101 # http://stackoverflow.com/a/9864472
 
 102 snippet alias "Function alias" b
 
 103 template <typename... Args>
 
 104 auto ${1:alias}(Args&&... args)
 
 105         -> decltype($2(std::forward<Args>(args)...))
 
 107         return ${2:function}(std::forward<Args>(args)...);