From: Stefan Huber Date: Sat, 12 Oct 2013 18:13:24 +0000 (+0200) Subject: vim: extend PrependSTLNamespace() X-Git-Url: https://git.sthu.org/?a=commitdiff_plain;h=7b03120cdd459ce0e9b32d237c98b7badf02621d;p=shutils.git vim: extend PrependSTLNamespace() --- diff --git a/dotfiles/vim/.vimrc b/dotfiles/vim/.vimrc index 7a05e1d..8c716d4 100644 --- a/dotfiles/vim/.vimrc +++ b/dotfiles/vim/.vimrc @@ -130,25 +130,30 @@ function PrependCppNamespaceToIdent(ns, id) " |/* id */ " |::id " |/**/ ::id + " |#include " " In order to not match '* id' it is assumed that multi-line comment lines " in the middle begin with a star. - " If // and /* and ^* and :: is not prepend: - execute ':%s_\(\(\/\/\|\/\*\|^\s*\*[^/]\).*\|::\)\@_' . a:ns . '::' . a:id . '_ge' - " If // and :: is not prepend, but */ is, and no further /* or // are found - execute ':%s_\(\/\/.*\)\@_' . a:ns . '::' . a:id . '_ge' + " If #include and // and /* and ^* and :: is not prepend: + execute ':%s_\(\(#include\|\/\/\|\/\*\|^\s*\*[^/]\).*\|::\)\@_' . a:ns . '::' . a:id . '_ge' + " If #include and // and :: is not prepend, but */ is, and no further /* or // are found + execute ':%s_\(\(#include\|\/\/\).*\)\@_' . a:ns . '::' . a:id . '_ge' endfunction "Prepend STL namespace 'std::' to several identifiers function PrependSTLNamespace() + " This list of identifier is not complete, but adding all of them is too + " much. We rather like to add identifieres that are 'typical' for C++. + " Others, like 'move' are likely to not be C++ specific. In this cases the + " user is asked to call PrependCppNamespaceToIdent by hand. let id = [] let id = id +['cin', 'cout', 'cerr', 'endl'] let id = id +['swap', 'sort', 'max', 'min'] let id = id +['vector', 'deque', 'list', 'map', 'multimap', 'set'] let id = id +['queue', 'stack', 'priority_queue'] - let id = id +['ostream', 'istream'] + let id = id +['ostream', 'istream', 'sstream'] let id = id +['pair', 'string'] let id = ['map']