" Copyright (c) 2015 Advanced Micro Devices, Inc.
" All rights reserved.
"
" The license below extends only to copyright in the software and shall
" not be construed as granting a license to any other intellectual
" property including but not limited to intellectual property relating
" to a hardware implementation of the functionality of the software
" licensed hereunder.  You may use the software subject to the license
" terms below provided that you ensure that this notice is replicated
" unmodified and in its entirety in all distributions of the software,
" modified or unmodified, in source code or in binary form.
"
" Redistribution and use in source and binary forms, with or without
" modification, are permitted provided that the following conditions are
" met: redistributions of source code must retain the above copyright
" notice, this list of conditions and the following disclaimer;
" redistributions in binary form must reproduce the above copyright
" notice, this list of conditions and the following disclaimer in the
" documentation and/or other materials provided with the distribution;
" neither the name of the copyright holders nor the names of its
" contributors may be used to endorse or promote products derived from
" this software without specific prior written permission.
"
" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


" this vimrc file helps users follow the gem5 style guide see:
" www.gem5.org/documentation/general_docs/development/coding_style
" it highlights extraneaous whitespace and tabs (so you can easily remove
" them), sets column length to a max of 78 characters, expands tabs, and sets
" a tab width of 4 spaces.

" *NOTE 1* this doesn't guarantee that your code with fit the style guidelines,
" so you should still to double check everything, but it helps with a lot of
" tedious stuff.

" *NOTE 2* if you do actually NEED to use a tab, e.g., in a Makefile, enter
" insert mode and type ctrl-v first, which will make tabs behave as expected

filetype indent on "auto indenting
set tabstop=4 "tabs = 4 spaces
set shiftwidth=4 "auto indent = 4 spaces
set expandtab "expand tabs to spaces
set tw=78 "max cols is 78

" highlight extrawhite space with light blue background
highlight ExtraWhitespace ctermbg=lightblue guibg=lightblue
match ExtraWhitespace /\s\+$\|\t/

" stuff to prevent the light blue highlighting from showing up at the end of
" lines when you're in insert mode. i.e., everytime you enter a space as you're
" entering text the highlighting will kick in, which can be annoying. this will
" make the highlighting only show up if you finish editing and leave some extra
" whitespace
autocmd BufWinEnter * match ExtraWhitespace /\s\+$\|\t/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$\|\t\%#\@<!/
autocmd InsertLeave * match ExtraWhitespace /\s\+$\|\t/
autocmd BufWinLeave * call clearmatches()


" optionally set a vertical line on column 79. anything on, or after the line
" is over the limit. this can be useful as set tw=78 won't breakup existing
" lines that are over the limit, and the user can also do certain things to
" make lines go past the set textwidth, e.g., joining a line (shift-j or J)

"if exists('+colorcolumn')
"    set colorcolumn=79
"endif


" optionally set spell checking
"set spell

" optionally highlight whitespace with specified characters. tab for trailing
" tabs, trail for trailing whitespace, extends for lines that extend beyond
" screen when wrap is off, and non-breakable white spaces. list must be set
" for these characters to display.
"set list
"set listchars=tab:›\ ,trail:•,extends:#,nbsp:.
