" 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.
"
" Authors: Anthony Gutierrez


" this vimrc file helps users follow the gem5 style guide see:
" www.gem5.org/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:.
