snippet "/// p" "Doxygen parameter block" /// @param${1/.+/[/}$1${1/.+/]/} ${2:name} $0 endsnippet snippet "/// t" "Doxygen template parameter block" /// @tparam ${1:name} $0 endsnippet snippet "/// b" "Doxygen brief block" /// @brief $0 endsnippet snippet "/// d" "Doxygen define block" /// @def $1 /// $0 endsnippet snippet "/// r" "Doxygen return block" /// @return $0 endsnippet snippet "/// rv" "Doxygen retval block" /// @retval \`${1:name}\` $0 endsnippet snippet "/// n" "Doxygen note block" /// @note $0 endsnippet snippet copydoc "Doxygen copydoc block" /// @copydoc $0 endsnippet snippet "/// s" "Doxygen see block" /// @see $0 endsnippet snippet "/// a" "Doxygen attention block" /// @attention $0 endsnippet snippet "/// g" "Doxygen addtogroup" /// @addtogroup ${1:group} endsnippet snippet "/// {" "Doxygen group scope" /// @{ $0/// @} endsnippet snippet header "Header noise" b $1 /// @file /// /// @brief $2 /// /// @copyright /$1 #ifndef ${4/([A-Za-z_]){1}([A-Za-z0-9_]+).*/$1$2/}$3 #define $4${3:`!p import string snip.rv = re.sub(r'[^A-Za-z0-9]+','_', snip.fn).upper()`_INCLUDED} $0 #endif // ${4/([A-Za-z_]){1}([A-Za-z0-9_]+).*/$1$2/}$3 endsnippet snippet "/// cp" "Doxygen copydoc block" /// @copydoc $0 endsnippet global !p def complete(t, opts): if t: opts = [m[len(t):] for m in opts if m.startswith(t)] if len(opts) == 1: return opts[0] elif len(opts) == 0: return "" return '|'.join(opts) endglobal snippet "/// dot" "Doxygen dot graph block" /// @dot${1: "${2:caption}"} /// $3`!p snip.rv=complete(t[3], ['graph', 'digraph'])` ${4:name} { /// $0 /// } /// @enddot endsnippet