]> git.rmz.io Git - dotfiles.git/blob - vim/ultisnips/cpp.snippets
vim/cpp: remove hint arguments hint in class snippet
[dotfiles.git] / vim / ultisnips / cpp.snippets
1 # replace snippets of parent ft
2 priority 1
3
4 # disable horrible one word snippets
5 clearsnippets pri pro pub fr mu
6
7 snippet inc "#include <>" b
8 #include <${1:iostream}>
9 endsnippet
10
11 snippet Inc "#include \'\'" b
12 #include "${1:`!p snip.rv = snip.basename+".hpp"`}"
13 endsnippet
14
15 snippet cl "class .. (class)" b
16 class ${1:`!p snip.rv = snip.basename or "name"`}
17 {
18 public:
19 ${1/(\w+).*/$1/}(${2}) = default;
20 virtual ~${1/(\w+).*/$1/}() = default;
21
22 private:
23 ${0:/* data */}
24 }; // class${1/.+/ $0/m}
25 endsnippet
26
27 snippet rule5 "Default constructors/destructors/operaters" b
28 ${1:classname}() = default;
29 ~$1() = default;
30 $1($1 const &) = default;
31 $1($1 &&) = default;
32 $1 &operator=($1 const &) = default;
33 $1 &operator=($1 &&) = default;
34 endsnippet
35
36 snippet ns "namespace .. (namespace)"
37 namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`} {
38 ${VISUAL}${0}
39 }${1/.+/ \/\/ namespace $0/m}
40 endsnippet
41
42 snippet mfun "Member Function" b
43 ${4:void} ${1:`!p snip.rv = snip.basename or "name"`}::${2:memberFunction}(${3})
44 {
45 ${0}
46 }
47 endsnippet
48
49 snippet for "for loop (for)"
50 for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2})
51 {
52 ${VISUAL}${0}
53 }
54 endsnippet
55
56 snippet fore "range-based for loop"
57 for (auto ${1:n} : ${2:v})
58 {
59 ${VISUAL}${0}
60 }
61 endsnippet
62
63 snippet cplat "Cross platform pre processor split" b
64 #if defined(__GNUC__) && defined(__unix__)
65 ${1}
66 #elif defined(__APPLE__)
67 ${2}
68 #elif defined(_WIN32)
69 ${3}
70 #endif
71 endsnippet
72
73 snippet pprint "Pretty print expression" b
74 #define PPRINT(x) std::cout << #x " = " << (x) << '\n';
75 PPRINT(${VISUAL}${0})
76 endsnippet
77
78 #
79 # Qt
80 #
81 global !p
82 def align(base, a, pad=' '):
83 amount = abs(len(base) - len(a))
84 return amount * pad if len(base) < len(a) else ''
85 endglobal
86
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});
90 ${0}
91 endsnippet
92
93 snippet connectl "Qt connect() lambda" b
94 connect(${1:this}, &${2:class::function},
95 [=](${3:void}) { ${4} });
96 ${0}
97 endsnippet
98
99 snippet w "Define a new QWidget" b
100 auto ${1:widget} = new ${2:QWidget};
101 $1->setObjectName("${3:$1}");
102 ${0}
103 endsnippet
104
105 snippet widget "Qt Widget Class" b
106 class ${1:`!p snip.rv = snip.basename or "WidgetClass"`} : public QWidget
107 {
108 Q_OBJECT
109
110 public:
111 explicit $1(${2}QWidget *parent = nullptr);
112 virtual ~$1() = default;
113
114 $0
115 public slots:
116
117 signals:
118
119 private:
120
121 }; // class${1/.+/ $0/m}
122 endsnippet
123
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)...))
129 {
130 return ${2:function}(std::forward<Args>(args)...);
131 }
132 endsnippet
133
134 # https://stackoverflow.com/a/14803335
135 snippet bind_memfun
136 template<typename Ret, typename T, typename... Args>
137 std::function<Ret(Args...)> ${1:object_bind}(Ret (T::* fun)(Args...), T &t)
138 {
139 return [=](Args... args) { return (t.*fun)(args...); };
140 }
141 endsnippet
142
143 snippet once "#pragma once" b
144 #pragma once
145
146 ${0}
147 endsnippet
148
149 snippet ostream "operator<<(ostream)" b
150 inline std::ostream & operator<<(std::ostream &os, ${1:Type} const & rhs)
151 {
152 os << ${0};
153 return os;
154 }
155 endsnippet