1 # replace snippets of parent ft
 
   4 # disable horrible one word snippets
 
   5 clearsnippets pri pro pub fr mu t
 
   7 snippet inc "#include <>" b
 
   8 #include <${1:iostream}>
 
  11 snippet Inc "#include \'\'" b
 
  12 #include "${1:`!p snip.rv = snip.basename+".hpp"`}"
 
  15 snippet cl "class .. (class)" b
 
  16 class ${1:`!p snip.rv = snip.basename or "name"`}
 
  19         ${1/(\w+).*/$1/}(${2}) = default;
 
  20         virtual ~${1/(\w+).*/$1/}() = default;
 
  24 }; // class${1/.+/ $0/m}
 
  27 snippet rule5 "Default constructors/destructors/operaters" b
 
  28 ${1:classname}() = default;
 
  30 $1($1 const &) = default;
 
  32 $1 &operator=($1 const &) = default;
 
  33 $1 &operator=($1 &&) = default;
 
  36 snippet ns "namespace .. (namespace)"
 
  37 namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`} {
 
  39 }${1/.+/ \/\/ namespace $0/m}
 
  42 snippet mfun "Member Function" b
 
  43 ${4:void} ${1:`!p snip.rv = snip.basename or "name"`}::${2:memberFunction}(${3})
 
  49 snippet for "for loop (for)"
 
  50 for (${4:size_t} ${2:i} = 0; $2 < ${1:count}; ${3:++$2})
 
  56 snippet fore "range-based for loop"
 
  57 for (auto ${1:n} : ${2:v})
 
  63 snippet cplat "Cross platform pre processor split" b
 
  64 #if defined(__GNUC__) && defined(__unix__)
 
  66 #elif defined(__APPLE__)
 
  73 snippet pprint "Pretty print expression" b
 
  74 #define PPRINT(x) std::cout << #x " = " << (x) << '\n';
 
  82 def align(base, a, pad=' '):
 
  83         amount = abs(len(base) - len(a))
 
  84         return amount * pad if len(base) < len(a) else ''
 
  87 snippet connect "Qt connect()" b
 
  88 connect(${1:this}, `!p snip.rv = align(t[1],t[3])`&${2:class::function},
 
  89         ${3:this}, `!p snip.rv = align(t[3],t[1])`&${4:class::function});
 
  93 snippet connectl "Qt connect() lambda" b
 
  94 connect(${1:this}, &${2:class::function},
 
  95         [=](${3:void}) { ${4} });
 
  99 snippet w "Define a new QWidget" b
 
 100 auto ${1:widget} = new ${2:QWidget};
 
 101 $1->setObjectName("${3:$1}");
 
 105 snippet widget "Qt Widget Class" b
 
 106 class ${1:`!p snip.rv = snip.basename or "WidgetClass"`} : public QWidget
 
 111         explicit $1(${2}QWidget *parent = nullptr);
 
 112         virtual ~$1() = default;
 
 121 }; // class${1/.+/ $0/m}
 
 124 # http://stackoverflow.com/a/9864472
 
 125 snippet alias "Function alias" b
 
 126 template <typename... Args>
 
 127 auto ${1:alias}(Args&&... args)
 
 128         -> decltype($2(std::forward<Args>(args)...))
 
 130         return ${2:function}(std::forward<Args>(args)...);
 
 134 # https://stackoverflow.com/a/14803335
 
 136 template<typename Ret, typename T, typename... Args>
 
 137 std::function<Ret(Args...)> ${1:object_bind}(Ret (T::* fun)(Args...), T &t)
 
 139         return [=](Args... args) { return (t.*fun)(args...); };
 
 143 snippet once "#pragma once" b
 
 149 snippet ostream "operator<<(ostream)" b
 
 150 inline std::ostream & operator<<(std::ostream &os, ${1:Type} const & rhs)