snippet "/// p" "Doxygen parameter block" /// @param${1/.+/[/}$1${1/.+/]/} $0 endsnippet snippet "/// t" "Doxygen template parameter block" /// @tparam $0 endsnippet snippet "/// b" "Doxygen brief block" /// @brief $0 endsnippet snippet "/// r" "Doxygen return block" /// @return $0 endsnippet snippet "/// n" "Doxygen note block" /// @note $0 endsnippet snippet copydoc "Doxygen copydoc block" /// @copydoc $0 endsnippet snippet "/// a" "Doxygen attention block" /// @attention $0 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 "/// d" "Doxygen dot graph block" /// @dot${1: "${2:caption}"} /// $3`!p snip.rv=complete(t[3], ['graph', 'digraph'])` ${4:name} { /// $0 /// } /// @enddot endsnippet