priority -50
extends c
# We want to overwrite everything in parent ft.
priority -49
###########################################################################
# Global functions #
###########################################################################
global !p
def write_docstring_args(arglist, snip):
args = str(arglist).split(',')
if len(args) > 1:
c = 0
for arg in args:
if c == 0:
snip.rv += arg
c = 1
else:
snip += '* : %s' % arg.strip()
else:
snip.rv = args[0]
endglobal
###########################################################################
# TextMate Snippets #
###########################################################################
snippet beginend "$1.begin(), $1.end() (beginend)"
${1:v}${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}begin(), $1${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}end()
endsnippet
snippet ns "namespace .. (namespace)"
namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`}
{
${VISUAL}$0
}${1/.+/ \/* /m}$1${1/.+/ *\/ /m}
endsnippet
snippet map "std::map (map)"
std::map<${1:key}, ${2:value}> map$0;
endsnippet
snippet vector "std::vector (v)"
std::vector<${1:char}> v$0;
endsnippet
snippet tp "template <typename ..> (template)"
template <typename ${1:_InputIter}>
endsnippet
#snippet cla "An entire .h generator" b
##ifndef ${2:`!v substitute(vim_snippets#Filename('$1_H','ClassName'),'.*','\U&\E','')`}
##define $2
#
#class ${1:`!v substitute(substitute(vim_snippets#Filename('$1','ClassName'),'^.','\u&',''), '_\(\w\)', '\u\1', 'g')`}
#{
#private:
# $3
#
#public:
# $1();
# virtual ~$1();
#};
#
##endif /* $2 */
#endsnippet
########################################################self-defined##################################
snippet class "class .. (class)"
/**
* @brief ${1:`!p snip.rv = snip.basename or "name"`}
*/
class ${1:`!p snip.rv = snip.basename or "name"`} final
{
public:
${1/(\w+).*/$1/}();
~${1/(\w+).*/$1/}()=default;
${1/(\w+).*/$1/}(const ${1:`!p snip.rv = snip.basename or "name"`} &)=delete;
${1/(\w+).*/$1/}& operator=(const ${1:`!p snip.rv = snip.basename or "name"`} &)=delete;
${1/(\w+).*/$1/}(${1:`!p snip.rv = snip.basename or "name"`} &&)=default;
${1/(\w+).*/$1/}& operator=(${1:`!p snip.rv = snip.basename or "name"`} &&)=default;
private:
};
endsnippet
snippet bclass " base class .. (class)"
/**
* @brief ${1:`!p snip.rv = snip.basename or "name"`}
*/
class ${1:`!p snip.rv = snip.basename or "name"`} :public std::enable_shared_from_this<${1:`!p snip.rv = snip.basename or "name"`}>
{
public:
${1/(\w+).*/$1/}();
virtual ~${1/(\w+).*/$1/}()=default;
${1/(\w+).*/$1/}(const ${1:`!p snip.rv = snip.basename or "name"`} &)=delete;
${1/(\w+).*/$1/}& operator=(const ${1:`!p snip.rv = snip.basename or "name"`} &)=delete;
${1/(\w+).*/$1/}(${1:`!p snip.rv = snip.basename or "name"`} &&)=default;
${1/(\w+).*/$1/}& operator=(${1:`!p snip.rv = snip.basename or "name"`} &&)=default;
protected:
private:
};
endsnippet
snippet #inc "#include <>"
#include <$1>
endsnippet
snippet #inc2 "#include "
#include "$1"
endsnippet
snippet #incb "#include <boost>"
#include <boost/$1>
endsnippet
snippet uns "using namespace "
using namespace $1
endsnippet
snippet sp "shared_ptr"
std::shared_ptr<$1> $1Ptr;
endsnippet
snippet usp "using std::shared_ptr"
using $1Ptr=std::shared_ptr<$1>;
endsnippet
snippet wp "weak_ptr"
std::weak_ptr<$1> $1Wptr;
endsnippet
snippet uwp "using std::weak_ptr"
using $1Wptr=std::weak_ptr<$1>;
endsnippet
snippet up "unique_ptr"
std::unique_ptr<$1> $1Uptr;
endsnippet
snippet uup "using unique_ptr"
using $1Uptr=std::unique_ptr<$1>;
endsnippet
snippet um "std::unordered_map"
std::unordered_map<${1:key},${2:value}> umap;
endsnippet
snippet cout "cout..."
std::cout<<$1<<std::endl;
endsnippet
snippet sfs "sleep_for(s)"
std::this_thread::sleep_for(std::chrono::seconds($1));
endsnippet
snippet sfms "sleep_for(ms)"
std::this_thread::sleep_for(std::chrono::milliseconds($1));
endsnippet
snippet sfus "slee_for(us)"
std::this_thread::sleep_for(std::chrono::microseconds($1));
endsnippet
snippet sfns "slee_for(ns)"
std::this_thread::sleep_for(std::chrono::nanoseconds($1));
endsnippet
snippet for "for i"
for(int i=0;i<$1;++i)
{
}
endsnippet
snippet forr "for range"
for(auto &${1:element}:${2:container})
{
}
endsnippet
snippet foreach "std::for_each()"
std::for_each($1begin(),$1end(),[](auto & item)->void{
});
endsnippet
snippet lam "lambda"
[$1]($2)->$3{
$4
}
endsnippet
snippet try "try...catch"
try{
}catch(std::exception &ex)
{
}
endsnippet
########################################################end self-defined##################################
#snippet fnc "Basic c++ doxygen function template" b
#/**
#* @brief: ${4:brief}
#*
#* @param: `!p write_docstring_args(t[3],snip)`
#*
#* @return: `!p snip.rv = t[1]`
#*/
#${1:ReturnType} ${2:FunctionName}(${3:param})
#{
# ${0:FunctionBody}
#}
#endsnippet
# vim:ft=snippets:
已经配置好的cpp.snippets,可直接使用或根据自己的需求修改
猜你喜欢
转载自blog.csdn.net/lianshaohua/article/details/108469300
今日推荐
周排行