From: Lukas Jiriste Date: Fri, 11 Oct 2024 15:13:57 +0000 (+0200) Subject: Add a skeleton file for a C++ class X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=a76b3421f47601242bd27de0bbd220b0acd820ed;p=dotfiles.git Add a skeleton file for a C++ class Also add a function to .vimrc that invokes it and names it appropriately. --- diff --git a/vim/.vimrc b/vim/.vimrc index 99a32c1..e79d3f5 100644 --- a/vim/.vimrc +++ b/vim/.vimrc @@ -19,7 +19,7 @@ set number relativenumber set incsearch set autoindent syntax on -" filetype plugin indent on " redundant after syntax on +filetype plugin indent on " redundant after syntax on set splitright " Add every subfolder of the vim root folder to path for find command @@ -27,3 +27,10 @@ set path+=** " Add visual menu set wildmenu + +function Cpp_class(classname) + let skel = join(readfile(glob('~/.vim/templates/class_skeleton.h')), "\n") + let skel = substitute(skel, 'Classname', a:classname, 'g') + let skel = substitute(skel, 'CLASSNAME_H', toupper(a:classname) . "_H", 'g') + put! =skel +endfunction diff --git a/vim/templates/class_skeleton.h b/vim/templates/class_skeleton.h new file mode 100644 index 0000000..035c568 --- /dev/null +++ b/vim/templates/class_skeleton.h @@ -0,0 +1,36 @@ +#ifndef CLASSNAME_H +# define CLASSNAME_H + +class Classname +{ + private: + + public: + Classname(); + Classname(const Classname &other); + ~Classname(); + + Classname &operator=(const Classname &other); +}; + +Classname::Classname() +{ +} + +Classname::Classname(const Classname &other) +{ + *this = other; +} + +Classname::~Classname() +{ +} + +Classname &Classname::operator=(const Classname &other) +{ + if (this == &other) + return (*this); + return (*this); +} + +#endif // CLASSNAME_H