path: root/CodingStyle
diff options
authorAndreas Schneider <asn@cryptomilk.org>2011-08-10 19:05:15 +0200
committerAndreas Schneider <asn@cryptomilk.org>2011-08-10 19:05:15 +0200
commit37a38d49596e42d50894d81f2d241239ede8e209 (patch)
tree6ac4a1a0c6f6c8a9cea1868e63ab28701f2fd9f4 /CodingStyle
parent13227714f25b57b95594f33d395bc3cea0b7fe8e (diff)
Added CodingStyle file.
Diffstat (limited to 'CodingStyle')
1 files changed, 59 insertions, 0 deletions
diff --git a/CodingStyle b/CodingStyle
new file mode 100644
index 00000000..3709269c
--- /dev/null
+++ b/CodingStyle
@@ -0,0 +1,59 @@
+Coding Style Convetions
+Coding style guidelines are about reducing the number of unnecessary
+reformatting patches and making things easier for developers to work together.
+You don't have to like them or even agree with them, but once put in place we
+all have to abide by them (or vote to change them). However, coding style
+should never outweigh coding itself and so the guidelines described here are
+hopefully easy enough to follow as they are very common and supported by tools
+and editors.
+The basic style for C code is the Linux kernel coding style [1] with one
+excecption, we use 4 spaces instead of tabs. This closely matches what most
+libssh developers use already anyways, with a few exceptions as mentioned
+To shorthen this here are the highlights:
+* Maximum line width is 80 characters
+ The reason is not about people with low-res screens but rather sticking
+ to 80 columns prevents you from easily nesting more than one level of
+ if statements or other code blocks.
+* Use 4 spaces to indent
+* No trailing whitespaces
+* Follow the K&R guidelines. We won't go through all of them here. Do you
+ have a copy of "The C Programming Language" anyways right?
+set ts=4 sw=4 et cindent
+For Vim, the following settings in $HOME/.vimrc will also deal with
+displaying trailing whitespace:
+ if has("syntax") && (&t_Co > 2 || has("gui_running"))
+ syntax on
+ function! ActivateInvisibleCharIndicator()
+ syntax match TrailingSpace "[ \t]\+$" display containedin=ALL
+ highlight TrailingSpace ctermbg=Red
+ endf
+ autocmd BufNewFile,BufRead * call ActivateInvisibleCharIndicator()
+ endif
+ " Show tabs, trailing whitespace, and continued lines visually
+ set list listchars=tab:»·,trail:·,extends:…
+ " highlight overly long lines same as TODOs.
+ set textwidth=80
+ autocmd BufNewFile,BufRead *.c,*.h exec 'match Todo /\%>' . &textwidth . 'v.\+/'
+[1] https://www.kernel.org/doc/Documentation/CodingStyle