" Code formatting settings for Vim.
"
" To enable this for GCC files by default, you can either source this file
" in your .vimrc via autocmd:
"   :au BufNewFile,BufReadPost path/to/gcc/* :so path/to/gcc/contrib/vimrc
" or source the script manually for each newly opened file:
"   :so contrib/vimrc
" You could also use numerous plugins that enable local vimrc e.g.
" mbr's localvimrc or thinca's vim-localrc (but note that the latter
" is much less secure). To install local vimrc config, run
"   $ make vimrc
" from GCC build folder.
" 
" Copyright (C) 2014 Free Software Foundation, Inc.
"
" This program is free software; you can redistribute it and/or modify
" it under the terms of the GNU General Public License as published by
" the Free Software Foundation; either version 3 of the License, or
" (at your option) any later version.
"
" This program is distributed in the hope that it will be useful,
" but WITHOUT ANY WARRANTY; without even the implied warranty of
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
" GNU General Public License for more details.
"
" You should have received a copy of the GNU General Public License
" along with this program.  If not, see <http://www.gnu.org/licenses/>.

function! SetStyle()
  let l:fname = expand("%:p")
  let l:ext = fnamemodify(l:fname, ":e")
  let l:c_exts = ['c', 'h', 'cpp', 'cc', 'C', 'H', 'def', 'java']
  if stridx(l:fname, 'libsanitizer') != -1
    return
  endif
  if l:ext != "py"
    setlocal tabstop=8
    setlocal softtabstop=2
    setlocal shiftwidth=2
    setlocal noexpandtab
  endif
  if &filetype == "gitcommit"
    setlocal textwidth=72
  else
    setlocal textwidth=79
  endif
  setlocal formatoptions-=ro formatoptions+=cqlt
  if index(l:c_exts, l:ext) != -1 || &filetype == "c" || &filetype == "cpp"
    setlocal cindent
    setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,f0,h2,p4,t0,+2,(0,u0,w1,m0
  endif
endfunction

call SetStyle()
