- Relax the rule for sizeof(varname) vs. sizeof(type).
- Allow an exception for nonconst reference parameters where
convention dictates their use, such as for swap.
- C++11: allow static_assert.
- Require non-trivial fall-through between cases in switch
statements to be annotated. Trivial fall-through includes
consecutive case labels with no intervening code, and no comment
is required in these cases.
- C++11: allow constexpr.
- Revise the "Integer Types" section to note type-width problems.
- Clarify that the "arguments on subsequent lines" function call
style is acceptable even when the 80-column limit doesn't require
it.
- Boost: allow part of Polygon.
- C++11: allow <tuple>.
Update Objective-C style guide to 2.52:
- Fix ARC example to not imply the use of @private in .m files.
- Add an example to the "Category Names" section.
- Require that ARC-using files insert preprocessor directives that
generate an error when compiling without ARC.
- Fix spacing around the *s in the ARC example per the C++ style
guide.
Update Python style guide to 2.48:
- Allow comments with URLs to exceed 80 characters per line.
- Update outdated implicit-line-joining URLs.
Update HTML/CSS style guide to 2.21:
- Consistent use of title case.
- Add new "Declaration Block Separation" section.
- Add a CSS example to the "Capitalization" section.
- Minor fixes to whitespace.
Update JavaScript style to guide to 2.72:
- Make it clear that the injunction against aliasing namespaces only
applies to local aliases, not goog.scope.
- Clarify the style guide's recommendation on array/object literals.
- Add documentation on @private {type}, @protected {type}, and
@const {type}.
- Make JSDoc descriptions required only if not obvious.
- Clarify that only private properties and methods need a trailing
underscore.
- Fix spelling of arv's name.
Update Common Lisp style guide to 1.18:
- Macro-defining macros are harder to understand for everyone, not
just for the "uninitiated." There's no need to condescend.
In all of the above style guides:
- The guide source is now encoded as UTF-8. The numeric character
references have been replaced with raw UTF-8-encoded characters.
- Better emacs-flymake integration
- Fix false positives in macros and template parameters
- Improve the wording on the make_pair warning
- Remove virtual keyword checks (now a warning in clang)
- Add checks for namespaces
- Check that DISALLOW_* macros are always in the "private:" section
- Fix false positives for gMock
- Check for alternative boolean operator tokens
- Fix false positives for space on parens
- Fix false positives about placement of "{" near preprocessor macros
- Don't lint inside inlined assembler
- Don't warn on "auto"; it is now a type shortcut, not a storage class
- Don't warn on c++11 for loops
- Warn on empty loop bodies
- Don't warn on unnamed args for the postincrement operator
- Fixes for "<" placement now allowed in c++11
Review URL: https://codereview.appspot.com/7039047
- Clarify that sentence-like non-sentence comments are permitted.
- Note that older code with incorrect #include ordering should be fixed.
- Revamp the section on default function arguments.
- Avoid explicitly recommending Init() methods.
- C++11: permit "auto".
- C++11: permit ">>" in place of "> >".
- C++11: permit range-based "for".
- C++11: permit variadic macros (already permitted as a C++03 extension).
- C++11: permit "LL" and "ULL" literal suffixes (already permitted as a C++03
extension).
- Reflect the revised copyright and author line policy: copyright notices are
not required, but license boilerplate may still be used (and generally
contains a copyright notice). Author lines are not required.
- C++11: permit new features in <algorithm> and the portion of <numeric> that
does not require initializer lists.
- Revise rules on forward declarations: explicitly forbid forward-declared
functions, do not mandate forward declarations, discourage forward-declared
templates.
- Remove the rule requiring "const" qualifiers for member functions to be
on the same line as the closing parenthesis of the parameter list.
- Fix typo: "unnamed namespaces."
- C++11: permit local types as template parameters.
- Fix typo: "unfamiliar."
- Relax RTTI rules to permit its use, but warn about its abuse.
- C++11: permit nullptr and nullptr_t. Revise text referring to NULL to refer
more generically to null pointers.
- Remove the "don't go crazy with const" rule.
- Fix typo: "dir/foo2" should bee "dir2/foo2."
- Remove reference to a specific GCC version.
Update Objective-C style guide to 2.48:
- Revise method declaration and invocation formatting rules for long names.
- Reflect the revised copyright and author line policy: copyright notices are
not required, but license boilerplate may still be used (and generally
contains a copyright notice). Author lines are not required. Top-of-file
comments are not required.
- Fix dead link in the "nil Checks" section.
- Cover ARC.
- Specify that @private is only required for instance variables in header
files.
- Permit NSNumber literals.
- Change the naming convention for instance variables from trailing underscore
to leading underscore, allowing a wide exception for existing code and
projects.
- Fix description of BOOL with respect to its signedness.
Update Python style guide to 2.45:
- Recommend "pylint: disable" over "pylint: disable-msg."
- Fix case-sensitive anchor.
- Provide a better explanation of the problems with catch-all "except:."
- Permit "map" and "filter" in absence of inlined lambdas.
Update JavaScript style guide to 2.64:
- Clarify rules for requiring and providing inner dependencies on classes.
- Clarify semicolons for functions.
- Note proper namespace and filename casing.
- Fix typos: "@extends."
- Permit parentheses to be omitted on unions.
- Don't require method descriptions when obvious.
- "in" is a keyword, put it in <code>.
- New "Aliasing with goog.scope" section.
- Rewrite the "Constants" section.
- Remove the recommendation to use join() to build strings.
- Add the "@expose" annotation.
- Fix the "@suppress" example.
- Remove reference alternate cast syntax.
- Reflect the revised copyright and author line policy: copyright notices are
not required, but license boilerplate may still be used (and generally
contains a copyright notice). Author lines are not required.
- Say that "use strict" is not required.
- Fix links to "optional" section.
- Rewrite "JavaScript Types" section.
- Fix typos: "parameterizes," "converted."
- Prefer in-constructor field initialization.
- Add a section on "delete" and null-assignment.
- Add a note about optional JSDoc comments on enum values.
- State explicitly that dot operators belong at the ends of lines.
- Add "@dict" and "@struct" annotations.
- Add links to the JavaScript Types section.
- Require (rather than encourage) compiling.
Update HTML/CSS style guide to 2.19:
- Rephrased quotation guidelines.
- Updated W3C I18N article reference.
- Fixed revision number.
Update styleguide.xsl to 1.34:
- Fix error in RefreshVisibilityFromHashParam when a URL fragment points to a
named anchor within a section, as used by the JavaScript style guide.
- Update an example to omit the blank line between C and C++ #includes.
- Rewrite the paragraph about #include ordering.
- Clarify namespace closing comments.
- Discourage const references for input arguments which are aliased beyond
the scope of the function call.
- Replace all '&' with '&'.
- Clarify that interfaces must have virtual destructors.
- Add an explicit example for |else if|.
- C++11 updates.
Update Objective-C style guide to 2.36:
- Remove requirement to list @dynamic implementations.
- Remove requirement to never synthesize CFType properties, since they may
be retained on 10.6.
- Use __weak and __strong type declaration modifiers rather than comments.
- Make the copyright/license information consistent.
- An example initializer comment revealed too much about the implementation.
- Correct spelling mistakes.
- Fix names that didn't follow Cocoa conventions.
- Fix examples to conform to style.
- Add a section about no braces for empty interfaces.
- Add a section about automatically synthesized instance variables.
- Codify avoidance of accessors in -init and -dealloc methods.
- Changes for the 80-column rule.
- Weaken the language around object ownership type qualifiers.
- Document the rules for formatting blocks.
Update JavaScript style guide to 2.27:
- Introduce EcmaScript 5 Strict verbiage.
- Add a note about private constructors.
- Simplify explanations about JSDoc comments.
- Sort the JSDoc tags.
- Remove the sections about type-checking now that the JSDoc tags and JS
types are no longer one table.
- Convert <tt> to <code>, because the XSL processor eats <tt>.
- Add @suppress.
- Mark @inheritDoc deprecated in favor of @override.
- Add a section about inner classes and enums being defined in the same file
as the top-level class they are defined on.
Update Python style guide to 2.28:
- Change "Naming" summary to match body.
- Make the prohibition against backslash line continuation explicit.
- Update the TODO section to match the C++ style guide.
- Declare Python code without a shebang line to be stylish.
- Clarify rules on function docstrings.
- Fix spelling errors.
- Update with styleguide.xsl 1.33.
Update styleguide.xsl to 1.33:
- Clean up style guide JS.
- Links to anchor tags auto-expand.
- Suggest "const_cast" when encountering "(char*)".
- Warn on template arguments to make_pair().
- Require <utility> if pair<> is seen now that <map> doesn't include it.
- Warn on lack of "explicit" keyword on single argument inline constructors.
- Better check for hanging ')' when closing function calls.
- Don't warn on: 'int v[1][3] = {{1, 2, 3}};'
- Allow function calls as the first argument to printf().
Review URL: http://codereview.appspot.com/4974066
- ostream should be treated as a system header
- Expand the MockCallback whitelist entry for gMock.
- Virtual destructor check shouldn't get confused with
"class EXPORT ClassName {" constructs.
- Don't warn about the length of "$ Id: ... $" lines.
- Better semicolon checks in for() loops.
- Better whitespace comment checks.
Review URL: http://codereview.appspot.com/4964064
- Revise "Smart Pointers" section.
- Clarify that it's OK to have spaces after '#' in a preprocessor directive,
even though '#' itself must not be indented.
- Revise "TODO Comments" section.
- Fix wording.
- Explicitly recommend foo.h be the first file #included by foo_test.cc.
Update Objective-C style guide to 2.24:
- Clarify the spacing of @property declarations.
- Add "Overridden NSObject Method Placement" section.
- Explicitly permit blank lines around @interface, @implementation, and @end.
Update JavaScript style guide to 2.20:
- Provide additional guidance with respect to the compiler.
- Add {function(new:Type)} as a type syntax for constructors of Type.
- Revise "Method and Function Comments" section.
- Harmonize text and example in the "Passing Anonymous Functions" section.
- Explicitly state that @param and @return types must be enclosed in braces.
- Add documentation on the UNKNOWN type.
- Replace a CODE_SNIPPET with BAD_CODE_SNIPPET in the "Internet Explorer's
Conditional Comments" section.
- Remove a redundant "Expand for more information" in the "Naming" section
and fully spell out "information" in the "Code Formatting" section.
- Provide a positive example in the "Multiline string literals" section.
- Provide guidance for indentation within nested functions.
Update Python style guide to 2.20:
- Clarify shebang rule.
- Remove comment about naming macros like enums.
- Move a bad code snippet from a CODE_SNIPPET to a BAD_CODE_SNIPPET element.
Update Python style guide to 2.18:
- Clarify the syntax for import statements.
Update styleguide.xsl to 1.31:
- Substitute underscore for apostrophe in anchor names.
- Add leading blank line exception.
- Improve guidance for function definition comments.
- Tweak class comment example to not violate type naming guidelines.
Update Objective-C style guide to 2.21:
- Prohibit +new.
Update JavaScript style guide to 2.9:
- Add new "Function Declarations Within Blocks" section.
- Add new "Internet Explorer's Conditional Comments" section.
- Add new "Alias long type names to improve readability" section.
- Add @lends.
- Allow overloading a function judiciously.
- _unittest and _regtest are deprecated.
- Document C++0x policy.
- Allow namespace aliases in .h files when inside namespaces.
- Give examples for and against parentheses with return.
- Update set of allowed Boost headers.
- Add a caveat to the forward-declaration section, mentioning impicit
constructors.
- Forbid the use of operator synonyms such as "and."
- Specify the naming convention (OrDie) to use when a function has
crash-on-failure semantics.
- Allow static const data members to be non-private.
- Specify placement of friend declarations.
- Require each file to include headers that they use.
Update Objective-C style guide to 2.18:
- Prefer @optional to informal protocols when possible.
- Specify formatting for invoking methods.
- Require that -dealloc be easy to review.