User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
cs:coding_conventions:start [2016/09/23 18:52]
James Irwin [C++]
cs:coding_conventions:start [2017/04/08 12:44]
Brandon Kallaher [All Languages]
Line 2: Line 2:
 Due to this being a collaborative software project among new developers, it's important to make sure that the code you write is clean and usable by others. We predominantly use two languages in this project, C++ and Python. Below are a list of coding conventions for each respective language in the project. There may be exceptions to these rules, but otherwise they should be followed. A code linter will be created to ensure that code conforms to there standards. Due to this being a collaborative software project among new developers, it's important to make sure that the code you write is clean and usable by others. We predominantly use two languages in this project, C++ and Python. Below are a list of coding conventions for each respective language in the project. There may be exceptions to these rules, but otherwise they should be followed. A code linter will be created to ensure that code conforms to there standards.
  
 +====== roslint ======
 +To check if you code passes standard checks, compile using:
 +  rsmake roslint
 +This will invoke the compiler with the code linter turned on. The C++ linter will run first and will fail with an error if the linter fails and the Python linter will not be run. If the C++ code passes the linter then the Python linter will be run.
 ===== All Languages ===== ===== All Languages =====
 ===Indentation=== ===Indentation===
 Spaces shall be used for indentation,​ no tabs. \\ Spaces shall be used for indentation,​ no tabs. \\
-**Rational:​** mixing tabs a.nd spaces can cause major bugs in Python, and can create ugly formatted code in all other languages, so consistency is important. Although I prefer all tabs in Python, spaces makes more sense for other languages.+**Rational:​** mixing tabs and spaces can cause major bugs in Python, and can create ugly formatted code in all other languages, so consistency is important. Although I prefer all tabs in Python, spaces makes more sense for other languages.
 ===Line Length=== ===Line Length===
 The maximum length of a line shall be 80 characters \\ The maximum length of a line shall be 80 characters \\
Line 11: Line 15:
  
 ===Trailing Spaces=== ===Trailing Spaces===
-Trailing whitespace at the end of a line is not allowed.+Trailing whitespace at the end of a line is not allowed. ​\\
 **Rational:​** most text editors will actually automatically chop the trailing whitespace when you open a file. If people aren't paying attention, this can result in them commiting a file where they made no functional changes other than to cut the whitespace, resulting in a confusing source control history. In addition, it's just a cleanliness thing. **Rational:​** most text editors will actually automatically chop the trailing whitespace when you open a file. If people aren't paying attention, this can result in them commiting a file where they made no functional changes other than to cut the whitespace, resulting in a confusing source control history. In addition, it's just a cleanliness thing.
 +
 +===Extra Newlines===
 +More than one blank line in a row is not allowed. \\
 +**Rational**:​ If you need to break up your code into logical chunks it is better to use a single newline and a comment describing the next code block.
 ===== C++ ===== ===== C++ =====
 running ​ running ​