Style guides for Google-originated open-source projects

Overview

Google Style Guides

Every major open-source project has its own style guide: a set of conventions (sometimes arbitrary) about how to write code for that project. It is much easier to understand a large codebase when all the code in it is in a consistent style.

“Style” covers a lot of ground, from “use camelCase for variable names” to “never use global variables” to “never use exceptions.” This project (google/styleguide) links to the style guidelines we use for Google code. If you are modifying a project that originated at Google, you may be pointed to this page to see the style guides that apply to that project.

This project holds the C++ Style Guide, C# Style Guide, Swift Style Guide, Objective-C Style Guide, Java Style Guide, Python Style Guide, R Style Guide, Shell Style Guide, HTML/CSS Style Guide, JavaScript Style Guide, TypeScript Style Guide, AngularJS Style Guide, Common Lisp Style Guide, and Vimscript Style Guide. This project also contains cpplint, a tool to assist with style guide compliance, and google-c-style.el, an Emacs settings file for Google style.

If your project requires that you create a new XML document format, the XML Document Format Style Guide may be helpful. In addition to actual style rules, it also contains advice on designing your own vs. adapting an existing format, on XML instance document formatting, and on elements vs. attributes.

The style guides in this project are licensed under the CC-By 3.0 License, which encourages you to share these documents. See https://creativecommons.org/licenses/by/3.0/ for more details.

The following Google style guides live outside of this project: Go Code Review Comments and Effective Dart.

Creative Commons License

Issues
  • Fix the `cpplint.py` `build/endif_comment` check.

    Fix the `cpplint.py` `build/endif_comment` check.

    • The check needs to be run before we remove comments, otherwise valid lines will be found as invalid.
    • A single character different from / after the spaces is enough to indicate an error.
    • Also catch errors when only one / is present. (For example #endif / MY_FILE_H.)

    Tested with:

    // Correct
    
    #endif// FOO_1
    #endif // FOO_2
    #endif  // FOO_3
    #endif  //
    #endif  // blargh
    #endif  // one tab
    #endif      // two tabs
    
    // Incorrect
    // Note that there are spaces and tabs below.
    #endif
    #endif 
    #endif          
    #endif  
    #endif                          
    #endif x
    #endif xxx
    #endif / xxx
    
    opened by arames 16
  • UTF-8 no BOM

    UTF-8 no BOM

    Specify that no byte order mark should be used (when applicable) for source files.

    opened by veganaize 12
  • C++ style for enum classes is missing

    C++ style for enum classes is missing

    The style guide doesn't mention how to label enum classes: http://www.cprogramming.com/c++11/c++11-nullptr-strongly-typed-enum-class.html

    opened by rggjan 11
  • Fixed

    Fixed "full hairy example" of formatting control string in Common Lisp style guide

    Example produced wrong results:

    CL-USER> (format nil "Items:~#[ none~; ~S~; ~S and ~S~:;[email protected]{~#[~; and~] ~S~^ ,~}~]." :foo :bar :baz :kadabr)
    "Items: :FOO , :BAR , :BAZ , and :KADABR."
    

    With this fix, it uses commas correctly:

    CL-USER> (format nil "Items: ~#[ none~; ~S~; ~S and ~S~:;[email protected]{~S~^~#[~; and ~:;, ~]~}~]." :foo :bar :baz :kadabr)
    "Items: :FOO, :BAR, :BAZ and :KADABR."
    
    cla: yes 
    opened by svetlyak40wt 10
  • C++ Style Guide: 64-bit Portability conflicts with Integer Types section

    C++ Style Guide: 64-bit Portability conflicts with Integer Types section

    Under 64-bit Portability, the guide advises:

    Use the LL or ULL suffixes as needed to create 64-bit constants.

    Yet, the Integer Types section states:

    stdint.h defines types like int16_t, uint32_t, int64_t, etc. You should always use those in preference to short, unsigned long long and the like, when you need a guarantee on the size of an integer.

    Therefore, it seems that the 64-bit Portability section should instead advise developers to use the INTn_C() and UINTn_C() macros, defined in stdint.h (or cstdint). See:

    http://en.cppreference.com/w/c/types/integer
    http://en.cppreference.com/w/cpp/header/cstdint
    

    BTW, if any rationale was given to prefer stdint.h over cstdint, I seem to have missed it.

    opened by mattgruenke 10
  • Render python guide from markdown

    Render python guide from markdown

    Fixes #381 Fixes #357

    It turns out Github pages will automatically render markdown to html. So we just need to delete the old pyguide.html and that's it!

    See working version on my fork: https://sfdye.github.io/styleguide/pyguide.html or https://sfdye.github.io/styleguide/pyguide

    Ref: https://blog.github.com/2016-12-09-publishing-with-github-pages-now-as-easy-as-1-2-3/

    opened by sfdye 10
  • Shell - Command Chaining in place of if statement.

    Shell - Command Chaining in place of if statement.

    The shell style guide is relatively silent on the topic of using command chaining in place of an if statement. I would propose the following guidance be considered.

    In simple test and execute situations like the following:

    if [[ -z "${VARIABLE} ]]; then
      exit 1
    fi
    

    Simplify the code into a more compact form for readability.

    [[ -z "${VARIABLE}" ]] && exit 1
    
    opened by chuckwolber 10
  • Cannot add intelij-java-google-style.xml to idea for checkstyle plugin

    Cannot add intelij-java-google-style.xml to idea for checkstyle plugin

    IDE: intelij idea

    version: 2018.1

    checkstyle plugin version: 5.18.5

    error:

    org.infernus.idea.checkstyle.exception.CheckStylePluginException: <html><b>The Checkstyle rules file could not be parsed.</b><br>Element type "html" must be declared.<br>The file has been blacklisted for 60s.</html>
    	at org.infernus.idea.checkstyle.checker.CheckerFactory.lambda$blacklistAndShowMessage$0(CheckerFactory.java:198)
    	at org.infernus.idea.checkstyle.checker.CheckerFactory.blacklistAnd(CheckerFactory.java:222)
    	at org.infernus.idea.checkstyle.checker.CheckerFactory.blacklistAndShowMessage(CheckerFactory.java:194)
    	at org.infernus.idea.checkstyle.checker.CheckerFactory.blacklistAndShowMessage(CheckerFactory.java:234)
    	at org.infernus.idea.checkstyle.checker.CheckerFactory.createChecker(CheckerFactory.java:148)
    	at org.infernus.idea.checkstyle.checker.CheckerFactory.getOrCreateCachedChecker(CheckerFactory.java:77)
    	at org.infernus.idea.checkstyle.checker.CheckerFactory.checker(CheckerFactory.java:59)
    	at org.infernus.idea.checkstyle.checker.CheckerFactory.verify(CheckerFactory.java:47)
    	at org.infernus.idea.checkstyle.ui.LocationDialogue.attemptLoadOfFile(LocationDialogue.java:209)
    	at org.infernus.idea.checkstyle.ui.LocationDialogue.access$900(LocationDialogue.java:36)
    	at org.infernus.idea.checkstyle.ui.LocationDialogue$NextAction.actionPerformed(LocationDialogue.java:256)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
    	at java.awt.Component.processMouseEvent(Component.java:6541)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
    	at java.awt.Component.processEvent(Component.java:6306)
    	at java.awt.Container.processEvent(Container.java:2237)
    	at java.awt.Component.dispatchEventImpl(Component.java:4897)
    	at java.awt.Container.dispatchEventImpl(Container.java:2295)
    	at java.awt.Component.dispatchEvent(Component.java:4719)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    	at java.awt.Container.dispatchEventImpl(Container.java:2281)
    	at java.awt.Window.dispatchEventImpl(Window.java:2746)
    	at java.awt.Component.dispatchEvent(Component.java:4719)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    	at java.awt.EventQueue.access$500(EventQueue.java:98)
    	at java.awt.EventQueue$3.run(EventQueue.java:715)
    	at java.awt.EventQueue$3.run(EventQueue.java:709)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    	at java.awt.EventQueue$4.run(EventQueue.java:737)
    	at java.awt.EventQueue$4.run(EventQueue.java:735)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:837)
    	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:762)
    	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:434)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    	at java.awt.Dialog.show(Dialog.java:1077)
    	at java.awt.Component.show(Component.java:1679)
    	at java.awt.Component.setVisible(Component.java:1631)
    	at java.awt.Window.setVisible(Window.java:1014)
    	at java.awt.Dialog.setVisible(Dialog.java:998)
    	at org.infernus.idea.checkstyle.ui.LocationDialogue.setVisible(LocationDialogue.java:162)
    	at org.infernus.idea.checkstyle.ui.CheckStyleConfigPanel$AddLocationAction.actionPerformed(CheckStyleConfigPanel.java:276)
    	at org.infernus.idea.checkstyle.ui.CheckStyleConfigPanel$ToolbarAction.run(CheckStyleConfigPanel.java:364)
    	at org.infernus.idea.checkstyle.ui.CheckStyleConfigPanel$ToolbarAction.run(CheckStyleConfigPanel.java:359)
    	at com.intellij.ui.ToolbarDecorator$2.doAdd(ToolbarDecorator.java:440)
    	at com.intellij.ui.CommonActionsPanel$Buttons.performAction(CommonActionsPanel.java:60)
    	at com.intellij.ui.CommonActionsPanel$MyActionButton.actionPerformed(CommonActionsPanel.java:272)
    	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:220)
    	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:237)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:193)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:153)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:357)
    	at java.awt.Component.processEvent(Component.java:6306)
    	at java.awt.Container.processEvent(Container.java:2237)
    	at java.awt.Component.dispatchEventImpl(Component.java:4897)
    	at java.awt.Container.dispatchEventImpl(Container.java:2295)
    	at java.awt.Component.dispatchEvent(Component.java:4719)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    	at java.awt.Container.dispatchEventImpl(Container.java:2281)
    	at java.awt.Window.dispatchEventImpl(Window.java:2746)
    	at java.awt.Component.dispatchEvent(Component.java:4719)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    	at java.awt.EventQueue.access$500(EventQueue.java:98)
    	at java.awt.EventQueue$3.run(EventQueue.java:715)
    	at java.awt.EventQueue$3.run(EventQueue.java:709)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    	at java.awt.EventQueue$4.run(EventQueue.java:737)
    	at java.awt.EventQueue$4.run(EventQueue.java:735)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:837)
    	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:762)
    	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:434)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    	at java.awt.Dialog.show(Dialog.java:1077)
    	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:694)
    	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:427)
    	at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1682)
    	at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1631)
    	at com.intellij.openapi.options.newEditor.SettingsDialog.lambda$show$0(SettingsDialog.java:69)
    	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
    	at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:153)
    	at com.intellij.openapi.options.newEditor.SettingsDialog.show(SettingsDialog.java:69)
    	at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:97)
    	at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:63)
    	at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:52)
    	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:220)
    	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:237)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:193)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:153)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:357)
    	at java.awt.Component.processEvent(Component.java:6306)
    	at java.awt.Container.processEvent(Container.java:2237)
    	at java.awt.Component.dispatchEventImpl(Component.java:4897)
    	at java.awt.Container.dispatchEventImpl(Container.java:2295)
    	at java.awt.Component.dispatchEvent(Component.java:4719)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    	at java.awt.Container.dispatchEventImpl(Container.java:2281)
    	at java.awt.Window.dispatchEventImpl(Window.java:2746)
    	at java.awt.Component.dispatchEvent(Component.java:4719)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    	at java.awt.EventQueue.access$500(EventQueue.java:98)
    	at java.awt.EventQueue$3.run(EventQueue.java:715)
    	at java.awt.EventQueue$3.run(EventQueue.java:709)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    	at java.awt.EventQueue$4.run(EventQueue.java:737)
    	at java.awt.EventQueue$4.run(EventQueue.java:735)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:837)
    	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:762)
    	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:434)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    
    
    opened by Ryan-Miao 10
  • Add structured binding support from c++17 to cpplint

    Add structured binding support from c++17 to cpplint

    http://en.cppreference.com/w/cpp/language/structured_binding Allow code like auto [a, b] = pair;

    opened by artditel 10
  • Cpplint is unnecessarily polluting stderr

    Cpplint is unnecessarily polluting stderr

    This solves #181. Allows to separate errors and normal output into separate streams. Useful when standard output is to be redirected to /dev/null leaving only errors.

    opened by LukeCz 9
  • Seeing the Table of Contents section with delay.

    Seeing the Table of Contents section with delay.

    Hi, when we go to this page jsGuide, at first we see all the page contents at first and after a delay, we see the table of contents on the top of the page.

    opened by ellietms 0
  • Missing some titles in the jsguide.html page under 3 Source file structure section.

    Missing some titles in the jsguide.html page under 3 Source file structure section.

    Hi, I realised we are missing some titles under the 3 Source file structure section. jsguide

    it shows us 3.3 and we do not have 3.3.1, 3.3.2 but we have 3.3.3. The Table content links are being created inside of the "include/jsguide.js" with pure javascript.

    opened by ellietms 0
  • Missing some titles in the jsguide.html file, under

    Missing some titles in the jsguide.html file, under "3 Source file structure" title + seeing the table of contents with delay .

    Hi, I realised we are missing some titles under the 3 Source file structure section. JavascriptGuide

    it shows us 3.3 and we do not have 3.3.1, 3.3.2 but we have 3.3.3. The Table contents are being created inside of the "include/jsguide.js" with pure javascript. I added some comments that where I think the issue is happening.

    one more thing is when I refresh the page, it takes longer for me to see all the links in my table of contents. It is slow.

    cla: yes 
    opened by ellietms 0
  • [Shell] Shebang `#!/bin/bash` vs. `#!/usr/bin/env bash`

    [Shell] Shebang `#!/bin/bash` vs. `#!/usr/bin/env bash`

    Hi friends,

    On the Shell Style Guide, there is strong language around how bash shebangs should be implemented: "Executables must start with #!/bin/bash..."

    However, from past experience and research online, a lot of developers in the community has suggested that #!/usr/bin/env bash is a better shebang for portability reasons. Here are just a few of those resources:

    • https://stackoverflow.com/questions/10376206/what-is-the-preferred-bash-shebang
    • https://www.cyberciti.biz/tips/finding-bash-perl-python-portably-using-env.html
    • https://stackoverflow.com/questions/21612980/why-is-usr-bin-env-bash-superior-to-bin-bash

    Ask: Can someone help me understand why the shell style guide recommends such strongly on #!/bin/bash vs. #!/usr/bin/env bash? In my opinion, it will be better to recommend different options of shebangs and highlight their tradeoffs in the style guide instead.

    opened by kawo123 1
  • Indention is not defined for R

    Indention is not defined for R

    The style guide for R does not define any indention style.

    The example code in the document use 2 spaces, but nothing is explicitly stated.

    opened by vanillajonathan 0
  • Revert

    Revert "cppguide: remove space before comma"

    These style guides are copies of Google's internal style guides to assist developers working on Google owned and originated open source projects. Changes should be made to the internal style guide first and only then copied here.

    Unsolicited pull requests will not be merged and are usually closed without comment. If a PR points out a simple mistake — a typo, a broken link, etc. — then the correction can be made internally and copied here through the usual process.

    Substantive changes to the style rules and suggested new rules should not be submitted as a PR in this repository. Material changes must be proposed, discussed, and approved on the internal forums first.

    cla: no 
    opened by FAVE01 1
  • Delete Code Owners

    Delete Code Owners

    JASON ALAN JAMES

    These style guides are copies of Google's internal style guides to assist developers working on Google owned and originated open source projects. Changes should be made to the internal style guide first and only then copied here.

    Unsolicited pull requests will not be merged and are usually closed without comment. If a PR points out a simple mistake — a typo, a broken link, etc. — then the correction can be made internally and copied here through the usual process.

    Substantive changes to the style rules and suggested new rules should not be submitted as a PR in this repository. Material changes must be proposed, discussed, and approved on the internal forums first.

    cla: no 
    opened by KingnQueenJJnKJ 1
  • Unused list item

    Unused list item

    Unused list item after Constants under Identifiers :heart_eyes:

    cla: yes 
    opened by at758 2
  • Missing framework style guides

    Missing framework style guides

    Please append framework-specific style guides like Django or Express to preserve the comprehensibility of the repo

    opened by moghadas76 0
  • Missing chapter 3.9, in Python style guide

    Missing chapter 3.9, in Python style guide

    Hello there,

    I'm seeing 2 issues in Python style guide:

    1. Chapter 3.9 is missing.
    2. In chapter 3.4 Indentation, the 2nd example is incorrect. The comment is "# Aligned with opening delimiter in a dictionary", but this example is not aligned with the delimiter, using "4-space hanging indent" instead.

    https://google.github.io/styleguide/pyguide.html#34-indentation missing

    indent

    opened by westlake-moonlight 8
Owner
Google
Google ❤️ Open Source
Google
Materials for CSGO Video Game Hacking workshop Google DSC 2021-2022

Intro to Video Game Hacking Workshop for UBCO Google DSC All of the code is in the Internal Cheat Project. The DSC Internal Demo was the code that we

Jordan Ribbink 1 Oct 26, 2021
2017-2019 math projects

Project Mathematics All the projects Name Language Grade Year 101 Pong Python3 16.2/20 2017 102 Architect Python3 19.8/20 2017 103 Cipher C 17.2/20 20

Luis Rosario 11 Mar 30, 2021
My projects while i learn C language.

Coding Exercises Projects that i made while i am learning C language. Exercise 1: prime-numbers.c It is a program that checks whether the given number

Berkay Şahin 1 Oct 29, 2021
An open source, OOP language with editable syntax.

Copper An Open source compiled programming language, In development. Goals Copper is an general-purpose OOP language. Coppers main goal is to allow ea

null 12 Oct 4, 2021
An Repositery with Ghost eShop Homebrew Source Code

Ghost-Eshop-Alternative-3DS An Alternative eShop for Nintendo 3DS This is a clone of Universal-Updater Download Requirement -Latest version available

Ghost0159 20 Nov 26, 2021
BRL-CAD's main source code

BRL-CAD Release 7.32.4 http://brlcad.org/ BRL-CAD is a powerful cross-platform open source combinatorial solid modeling system that incl

BRL-CAD 39 Nov 28, 2021
Cmusic source code, based on the CARL 0.2.0 distribution

CMUSIC These are the sources and makefiles for a build of the classic CARL cmusic and related programs. The build has been tested on OSX and Linux, an

null 6 Apr 10, 2021
Supplemental source code for "A Halfedge Refinement Rule for Parallel Catmull-Clark Subdivision".

This repository provides source code to reproduce some of the results of my paper "A Halfedge Refinement Rule for Parallel Catmull-Clark Subdivision". The key contribution of this paper is to provide super simple algorithms to compute Catmull-Clark subdivision in parallel with support for semi-sharp creases. The algorithms are compiled in the C header-only library CatmullClark.h. In addition you will find a direct GLSL port of these algorithms in the glsl/ folder. For various usage examples, see the examples/ folder.

Jonathan Dupuy 11 Aug 11, 2021
Basic Fortnite Internal Cheat Source

Basic Fortnite Internal Cheat Source That's a basic fortnite cheat internal source for pasters and for people that just want to learn from it. This is a trash code that will be improved when I have time and when I want.

Android1337 10 Jul 13, 2021
GalaxyEngine is a MySQL branch originated from Alibaba Group, especially supports large-scale distributed database system.

GalaxyEngine is a MySQL branch originated from Alibaba Group, especially supports large-scale distributed database system.

null 147 Nov 29, 2021
miniz: Single C source file zlib-replacement library, originally from code.google.com/p/miniz

Miniz Miniz is a lossless, high performance data compression library in a single source file that implements the zlib (RFC 1950) and Deflate (RFC 1951

Rich Geldreich 1.3k Dec 5, 2021
MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.

Copyright (c) 2000, 2021, Oracle and/or its affiliates. This is a release of MySQL, an SQL database server. License information can be found in the

MySQL 7.2k Dec 7, 2021
This is a list of different open-source video games and commercial video games open-source remakes.

This is a list of different open-source video games and commercial video games open-source remakes.

Ivan Bobev 30 Nov 14, 2021
C++ promise/A+ library in Javascript style.

C++ promise/A+ library in Javascript style. C++ promise/A+ library in Javascript style. What is promise-cpp ? Examples Examples list Compiler required

null 360 Dec 1, 2021
Go-style concurrency in C

LIBMILL Libmill is a library that introduces Go-style concurrency to C. Documentation For the documentation check the project website: http://libmill.

Martin Sustrik 2.5k Dec 4, 2021
Cross-platform C++ library providing a simple API to read and write INI-style configuration files

simpleini A cross-platform library that provides a simple API to read and write INI-style configuration files. It supports data files in ASCII, MBCS a

Brodie Thiesfield 628 Dec 7, 2021
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

bgfx - Cross-platform rendering library GitHub Discussions Discord Chat What is it? Cross-platform, graphics API agnostic, "Bring Your Own Engine/Fram

Бранимир Караџић 10.2k Dec 3, 2021
A fast JSON parser/generator for C++ with both SAX/DOM style API

A fast JSON parser/generator for C++ with both SAX/DOM style API Tencent is pleased to support the open source community by making RapidJSON available

Tencent 11.5k Nov 28, 2021
Functional programming style pattern-matching library for C++

Mach7: Pattern Matching for C++ by Yuriy Solodkyy, Gabriel Dos Reis, Bjarne Stroustrup Abstract Pattern matching is an abstraction mechanism that can

Yuriy Solodkyy 1.2k Nov 30, 2021
A collecton of generic reference counted data structures, tools to create compatible C style classes, and demo applications

The Offbrand library is a collection of reference counted generic data structures written in C for C. The library includes bash scripts to assist in t

Tyler Heck 81 Jul 22, 2021
The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.

libxo libxo - A Library for Generating Text, XML, JSON, and HTML Output The libxo library allows an application to generate text, XML, JSON, and HTML

Juniper Networks 218 Nov 18, 2021
TensorRT implementation of RepVGG models from RepVGG: Making VGG-style ConvNets Great Again

RepVGG RepVGG models from "RepVGG: Making VGG-style ConvNets Great Again" https://arxiv.org/pdf/2101.03697.pdf For the Pytorch implementation, you can

weiwei zhou 53 Oct 11, 2021
Jing-Kalk is a beautifully designed calculator that conforms to the JingOS style and Integrating the interactive experience of pad and PC.

Jing-Kalk Jing-Kalk is based on Kalk gitlab. Jing-Kalk is a beautifully designed calculator that conforms to the JingOS style and Integrating the inte

JingOS 37 Nov 16, 2021
Single header lib for JPEG encoding. Public domain. C99. stb style.

tiny_jpeg.h A header-only public domain implementation of Baseline JPEG compression. Features: stb-style header only library. Does not do dynamic allo

Sergio Gonzalez 161 Sep 10, 2021
A golang-style C++ coroutine library and more.

CO is an elegant and efficient C++ base library that supports Linux, Windows and Mac platforms. It pursues minimalism and efficiency, and does not rely on third-party library such as boost.

Alvin 2.2k Dec 3, 2021
A 3D Printable Retro-style Raspberry Pi HQ Camera

3D Printable Retro-style Raspberry Pi HQ Camera

Ping-Hsun 356 Nov 25, 2021
Diagon transforms markdown-style expression into an ascii-art representation.

Diagon is an interactive interpreter. It transforms markdown-style expression into an ascii-art representation.It is written in C++ and use WebAssembly, HTML and CSS to make a Web Application.

Arthur Sonzogni 365 Nov 30, 2021
fmtlog is a performant fmtlib-style logging library with latency in nanoseconds.

fmtlog fmtlog is a performant asynchronous logging library using fmt library format. Features Faster - lower runtime latency than NanoLog and higher t

Meng Rao 245 Dec 7, 2021
C++11/14/17 std::expected with functional-style extensions

expected Single header implementation of std::expected with functional-style extensions. Clang + GCC: MSVC: Available on Vcpkg and Conan. std::expecte

Sy Brand 658 Nov 27, 2021