Last active
March 10, 2020 09:32
-
-
Save gyk/fee69b8bcfcce361aa5cc8d59538cf1e to your computer and use it in GitHub Desktop.
VS Code C# snippet (~/.vscode/extensions/ms-vscode.csharp-$VERSION/snippets/csharp.json) that doesn't put a newline before the opening brace in control blocks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"Attribute using recommended pattern": { | |
"prefix": "attribute", | |
"body": [ | |
"[System.AttributeUsage(System.AttributeTargets.${1:All}, Inherited = ${2:false}, AllowMultiple = ${3:true})]", | |
"sealed class ${4:My}Attribute : System.Attribute", | |
"{", | |
" // See the attribute guidelines at", | |
" // http://go.microsoft.com/fwlink/?LinkId=85236", | |
" readonly string positionalString;", | |
" ", | |
" // This is a positional argument", | |
" public ${4:My}Attribute(string positionalString)", | |
" {", | |
" this.positionalString = positionalString;", | |
" ", | |
" // TODO: Implement code here", | |
" ${5:throw new System.NotImplementedException();}", | |
" }", | |
" ", | |
" public string PositionalString", | |
" {", | |
" get { return positionalString; }", | |
" }", | |
" ", | |
" // This is a named argument", | |
" public int NamedInt { get; set; }", | |
"}" | |
], | |
"description": "Attribute using recommended pattern" | |
}, | |
"Checked block": { | |
"prefix": "checked", | |
"body": [ | |
"checked", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "Checked block" | |
}, | |
"Class": { | |
"prefix": "class", | |
"body": [ | |
"class ${1:Name}", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "Class" | |
}, | |
"Console.WriteLine": { | |
"prefix": "cw", | |
"body": [ | |
"System.Console.WriteLine($0);" | |
], | |
"description": "Console.WriteLine" | |
}, | |
"do...while loop": { | |
"prefix": "do", | |
"body": [ | |
"do {", | |
" $0", | |
"} while (${1:true});" | |
], | |
"description": "do...while loop" | |
}, | |
"Else statement": { | |
"prefix": "else", | |
"body": [ | |
"else {", | |
" $0", | |
"}" | |
], | |
"description": "Else statement" | |
}, | |
"Enum": { | |
"prefix": "enum", | |
"body": [ | |
"enum ${1:Name}", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "Enum" | |
}, | |
"Implementing Equals() according to guidelines": { | |
"prefix": "equals", | |
"body": [ | |
"// override object.Equals", | |
"public override bool Equals(object obj)", | |
"{", | |
" //", | |
" // See the full list of guidelines at", | |
" // http://go.microsoft.com/fwlink/?LinkID=85237", | |
" // and also the guidance for operator== at", | |
" // http://go.microsoft.com/fwlink/?LinkId=85238", | |
" //", | |
" ", | |
" if (obj == null || GetType() != obj.GetType())", | |
" {", | |
" return false;", | |
" }", | |
" ", | |
" // TODO: write your implementation of Equals() here", | |
" ${1:throw new System.NotImplementedException();}", | |
" return base.Equals (obj);", | |
"}", | |
"", | |
"// override object.GetHashCode", | |
"public override int GetHashCode()", | |
"{", | |
" // TODO: write your implementation of GetHashCode() here", | |
" ${2:throw new System.NotImplementedException();}", | |
" return base.GetHashCode();", | |
"}" | |
], | |
"description": "Implementing Equals() according to guidelines" | |
}, | |
"Exception": { | |
"prefix": "exception", | |
"body": [ | |
"[System.Serializable]", | |
"public class ${1:My}Exception : ${2:System.Exception}", | |
"{", | |
" public ${1:My}Exception() { }", | |
" public ${1:My}Exception(string message) : base(message) { }", | |
" public ${1:My}Exception(string message, System.Exception inner) : base(message, inner) { }", | |
" protected ${1:My}Exception(", | |
" System.Runtime.Serialization.SerializationInfo info,", | |
" System.Runtime.Serialization.StreamingContext context) : base(info, context) { }", | |
"}" | |
], | |
"description": "Exception" | |
}, | |
"Foreach statement": { | |
"prefix": "foreach", | |
"body": [ | |
"foreach (${1:var} ${2:item} in ${3:collection}) {", | |
" $0", | |
"}" | |
], | |
"description": "Foreach statement" | |
}, | |
"Reverse for loop": { | |
"prefix": "forr", | |
"body": [ | |
"for (int ${1:i} = ${2:length} - 1; ${1:i} >= 0 ; ${1:i}--) {", | |
" $0", | |
"}" | |
], | |
"description": "Reverse for loop" | |
}, | |
"for loop": { | |
"prefix": "for", | |
"body": [ | |
"for (int ${1:i} = 0; ${1:i} < ${2:length}; ${1:i}++) {", | |
" $0", | |
"}" | |
], | |
"description": "for loop" | |
}, | |
"if statement": { | |
"prefix": "if", | |
"body": [ | |
"if (${1:true}) {", | |
" $0", | |
"}" | |
], | |
"description": "if statement" | |
}, | |
"Indexer": { | |
"prefix": "indexer", | |
"body": [ | |
"${1:public} ${2:object} this[${3:int} index]", | |
"{", | |
" get { $4 }", | |
" set { $0 }", | |
"}" | |
], | |
"description": "Indexer" | |
}, | |
"Interface": { | |
"prefix": "interface", | |
"body": [ | |
"interface I${1:Name}", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "Interface" | |
}, | |
"Safely invoking an event": { | |
"prefix": "invoke", | |
"body": [ | |
"${1:EventHandler} temp = ${2:MyEvent};", | |
"if (temp != null) {", | |
" temp($0);", | |
"}" | |
], | |
"description": "Safely invoking an event" | |
}, | |
"Simple iterator": { | |
"prefix": "iterator", | |
"body": [ | |
"public System.Collections.Generic.IEnumerator<${1:ElementType}> GetEnumerator()", | |
"{", | |
" $0throw new System.NotImplementedException();", | |
" yield return default(${1:ElementType});", | |
"}" | |
], | |
"description": "Simple iterator" | |
}, | |
"Named iterator/indexer pair using a nested class": { | |
"prefix": "iterindex", | |
"body": [ | |
"public ${1:Name}Iterator ${1:Name}", | |
"{", | |
" get", | |
" {", | |
" return new ${1:Name}Iterator(this);", | |
" }", | |
"}", | |
"", | |
"public class ${1:Name}Iterator", | |
"{", | |
" readonly ${2:ClassName} outer;", | |
" ", | |
" internal ${1:Name}Iterator(${2:ClassName} outer)", | |
" {", | |
" this.outer = outer;", | |
" }", | |
" ", | |
" // TODO: provide an appropriate implementation here", | |
" public int Length { get { return 1; } }", | |
" ", | |
" public ${3:ElementType} this[int index]", | |
" {", | |
" get", | |
" {", | |
" //", | |
" // TODO: implement indexer here", | |
" //", | |
" // you have full access to ${2:ClassName} privates", | |
" //", | |
" ${4:throw new System.NotImplementedException();}", | |
" return default(${3:ElementType});", | |
" }", | |
" }", | |
" ", | |
" public System.Collections.Generic.IEnumerator<${3:ElementType}> GetEnumerator()", | |
" {", | |
" for (int i = 0; i < this.Length; i++) {", | |
" yield return this[i];", | |
" }", | |
" }", | |
"}" | |
], | |
"description": "Named iterator/indexer pair using a nested class" | |
}, | |
"Lock statement": { | |
"prefix": "lock", | |
"body": [ | |
"lock (${1:this}) {", | |
" $0", | |
"}" | |
], | |
"description": "Lock statement" | |
}, | |
"MessageBox.Show": { | |
"prefix": "mbox", | |
"body": [ | |
"System.Windows.Forms.MessageBox.Show(\"${1:Text}\");$0" | |
], | |
"description": "MessageBox.Show" | |
}, | |
"Namespace": { | |
"prefix": "namespace", | |
"body": [ | |
"namespace ${1:Name}", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "Namespace" | |
}, | |
"#if": { | |
"prefix": "ifd", | |
"body": [ | |
"#if ${1:true}", | |
" $0", | |
"#endif" | |
], | |
"description": "#if" | |
}, | |
"#region": { | |
"prefix": "region", | |
"body": [ | |
"#region ${1:Name}", | |
" $0", | |
"#endregion" | |
], | |
"description": "#region" | |
}, | |
"Property and backing field": { | |
"prefix": "propfull", | |
"body": [ | |
"private ${1:int} ${2:myVar};", | |
"public ${1:int} ${3:MyProperty}", | |
"{", | |
" get { return ${2:myVar}; }", | |
" set { ${2:myVar} = value; }", | |
"}", | |
"$0" | |
], | |
"description": "Property and backing field" | |
}, | |
"propg": { | |
"prefix": "propg", | |
"body": [ | |
"public ${1:int} ${2:MyProperty} { get; private set; }$0" | |
], | |
"description": "An automatically implemented property with a 'get' accessor and a private 'set' accessor. C# 3.0 or higher" | |
}, | |
"prop": { | |
"prefix": "prop", | |
"body": [ | |
"public ${1:int} ${2:MyProperty} { get; set; }$0" | |
], | |
"description": "An automatically implemented property. C# 3.0 or higher" | |
}, | |
"sim": { | |
"prefix": "sim", | |
"body": [ | |
"static int Main(string[] args)", | |
"{", | |
" $0", | |
" return 0;", | |
"}" | |
], | |
"description": "int Main()" | |
}, | |
"Struct": { | |
"prefix": "struct", | |
"body": [ | |
"struct ${1:Name}", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "Struct" | |
}, | |
"svm": { | |
"prefix": "svm", | |
"body": [ | |
"static void Main(string[] args)", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "void Main()" | |
}, | |
"Switch statement": { | |
"prefix": "switch", | |
"body": [ | |
"switch (${1:switch_on}) {", | |
" $0", | |
" default:", | |
"}" | |
], | |
"description": "Switch statement" | |
}, | |
"Try finally": { | |
"prefix": "tryf", | |
"body": [ | |
"try {", | |
" $1", | |
"}", | |
"finally {", | |
" $0", | |
"}" | |
], | |
"description": "Try finally" | |
}, | |
"Try catch": { | |
"prefix": "try", | |
"body": [ | |
"try {", | |
" $1", | |
"}", | |
"catch (${2:System.Exception})", | |
"{", | |
" $0", | |
" throw;", | |
"}" | |
], | |
"description": "Try catch" | |
}, | |
"Unchecked block": { | |
"prefix": "unchecked", | |
"body": [ | |
"unchecked", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "Unchecked block" | |
}, | |
"Unsafe statement": { | |
"prefix": "unsafe", | |
"body": [ | |
"unsafe", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "Unsafe statement" | |
}, | |
"Using statement": { | |
"prefix": "using", | |
"body": [ | |
"using (${1:resource}) {", | |
" $0", | |
"}" | |
], | |
"description": "Using statement" | |
}, | |
"While loop": { | |
"prefix": "while", | |
"body": [ | |
"while (${1:true}) {", | |
" $0", | |
"}" | |
], | |
"description": "While loop" | |
}, | |
"constructor": { | |
"prefix": "ctor", | |
"body": [ | |
"${1:public} ${2:$TM_FILENAME_BASE}(${3:Parameters})", | |
"{", | |
" $0", | |
"}" | |
], | |
"description": "constructor" | |
}, | |
"xUnit Test": { | |
"prefix": "fact", | |
"body": [ | |
"[Fact]", | |
"public void ${1:TestName}()", | |
"{", | |
"//Given", | |
"", | |
"//When", | |
"", | |
"//Then", | |
"}$0" | |
], | |
"description": "create xunit test method" | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"FormattingOptions": { | |
"NewLinesForBracesInLambdaExpressionBody": false, | |
"NewLinesForBracesInAnonymousMethods": false, | |
"NewLinesForBracesInAnonymousTypes": false, | |
"NewLinesForBracesInControlBlocks": false, | |
"NewLineForElse": false, | |
"NewLineForCatch": false, | |
"NewLineForFinally": false | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment