<commit_before>Coding Style
============

No empty newlines in all parts of the code

C#
--
Use Visual Studio defaults - Follow [MSDN C# Coding Conventions](http://msdn.microsoft.com/en-us/library/ff926074.aspx) where possible except if specified below.

- Use var when creating a new object, specify type otherwise

        var x = new List<string, string>();
        var x = new Foo();
    
        Bar x = Foo.GetBar();
        Bar x = Foo.Bar;
        Bar x = Foo.SomeObject;


- Use explicit instantiation when creating flat arrays

        var x = new string[] {'foo', 'bar'};

- Prefer using keywords when performing LINQ. Always wrap in parentheses

        var style = (from foo in bar where foo.baz = "foobaz" select foo.qux)

HTML and Javascript
-------------------
Follow [Google HTML/CSS Style Guide](https://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml) where possible except if specified below.

Always tabs over spaces

Any theme objects that do not have a defined API must go under `snowflake.theme.heap`
Avoid node.js when theming. Only `snowflake.js` may use node.js.
Do not expose anything to the global scope. Instead expose under `snowflake.theme.heap`

HTML `id` properties must be camelCase. 
Class names must be separated with a hyphen.

Polymer exposed attributes and bound properties must be camelCase. 
`Polymer();` must be invoked inline.
CSS for a Web Component must be contained inline in a single `<style>` element.
Polymer elements must be done declaratively and available as an HTML import.

Do not use vendor prefixes at all, besides `-webkit` if nescessary. <commit_msg>Style: Update style guidelines<commit_after>Coding Style
============

C#
--
Snowflake uses C# 6.0 You will need Visual Studio 2015 Community Edition to build Snowflake.
Use Visual Studio 2015 defaults - Follow [MSDN C# Coding Conventions](http://msdn.microsoft.com/en-us/library/ff926074.aspx) where possible except if specified below.

- Use var when creating a new object, specify type otherwise

        var x = new List<string, string>();
        var x = new Foo();

        Bar x = Foo.GetBar();
        Bar x = Foo.Bar;
        Bar x = Foo.SomeObject;


- Use explicit instantiation when creating flat arrays

        var x = new string[] {'foo', 'bar'};

- Prepend all object-level properties, fields and methods with `this.`
- Prepand all static properties properties, fields and methods with the class name
- Never use static import, always import the full class
- Never use string concatenation or String.Format if a string literal is involved. Only string interpolation is allowed.
- Use null propagation when possible. There should not be any other forms of null checking
- If your class implements an interface, do not document implementation methods. Instead, document only the interface.
- Always use Allman bracket style. For example
```c#
if (condition)
{
    //good
}

if(condition) {
  //bad
}
```

HTML and Javascript
-------------------
Follow [Google HTML/CSS Style Guide](https://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml) where possible except if specified below.

Use K&R bracket placement.
```js
if (condition) {
  //good
}
if (condition)
{
  //bad
}
```

Always tabs over spaces

Any theme objects that do not have a defined API must go under `snowflake.theme.heap`
Avoid node.js when theming. Only `snowflake.js` may use node.js.
Do not expose anything to the global scope. Instead expose under `snowflake.theme.heap`

HTML `id` properties must be camelCase.
Class names must be separated with a hyphen.

Polymer exposed attributes and bound properties must be camelCase.
`Polymer();` must be invoked inline.
CSS for a Web Component must be contained inline in a single `<style>` element.
Polymer elements must be done declaratively and available as an HTML import.

Do not use vendor prefixes at all, besides `-webkit` if nescessary.
{'fraction_non_alphanumeric': 0.09328549461814455, 'fraction_numerical': 0.005638134290107637, 'mean_word_length': 3.517361111111111, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3118293', 'n_tokens_mistral': 1123, 'n_tokens_neox': 1056, 'n_words': 505}