summaryrefslogtreecommitdiffstats
path: root/tools/Contracts/Languages/CSharp/Code Contract Snippets
diff options
context:
space:
mode:
Diffstat (limited to 'tools/Contracts/Languages/CSharp/Code Contract Snippets')
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractassert.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractassume.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensures.snippet22
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensuresnonnull.snippet32
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensuresnotisnullorempty.snippet25
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinterface.snippet41
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariant.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantmethod.snippet36
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantnonnull.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantnotisnullorempty.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractold.snippet28
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequires.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalways.snippet38
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalwaysnotisnullorempty.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalwaysnotnull.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresnotisnullorempty.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresnotnull.snippet31
-rw-r--r--tools/Contracts/Languages/CSharp/Code Contract Snippets/contractresult.snippet28
18 files changed, 560 insertions, 0 deletions
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractassert.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractassert.snippet
new file mode 100644
index 0000000..7a47503
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractassert.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Assert</Title>
+ <Shortcut>cca</Shortcut>
+ <Description>Emits a 'Contract.Assert' clause</Description>
+ <Author>MaF</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>condition</ID>
+ <ToolTip>condition that must be true</ToolTip>
+ <Default>false</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Assert($condition$);$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractassume.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractassume.snippet
new file mode 100644
index 0000000..4f78ef9
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractassume.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Assume</Title>
+ <Shortcut>cam</Shortcut>
+ <Description>Emits a 'Contract.Assume' clause</Description>
+ <Author>MaF</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>condition</ID>
+ <ToolTip>condition that must be true</ToolTip>
+ <Default>false</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Assume($condition$);$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensures.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensures.snippet
new file mode 100644
index 0000000..ecff2bf
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensures.snippet
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Ensures</Title>
+ <Shortcut>ce</Shortcut>
+ <Description>Emits a 'ensures' clause</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Ensures($end$);]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensuresnonnull.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensuresnonnull.snippet
new file mode 100644
index 0000000..3e4f24b
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensuresnonnull.snippet
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Ensures(Contract.Result() != null)</Title>
+ <Shortcut>cen</Shortcut>
+ <Description>Emits an 'ensures' clause specifying result not null</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>type</ID>
+ <ToolTip>the method return type</ToolTip>
+ <Default>string</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Ensures(Contract.Result<$type$>() != null);
+$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensuresnotisnullorempty.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensuresnotisnullorempty.snippet
new file mode 100644
index 0000000..6520876
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractensuresnotisnullorempty.snippet
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Ensures(!String.IsNullOrEmpty(Contract.Result()))</Title>
+ <Shortcut>cesn</Shortcut>
+ <Description>Emits an 'ensures' clause specifying result not null or empty</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Ensures(!String.IsNullOrEmpty(Contract.Result<string>()));
+$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinterface.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinterface.snippet
new file mode 100644
index 0000000..53c789b
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinterface.snippet
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contracted Interface</Title>
+ <Shortcut>cintf</Shortcut>
+ <Description>Boiler plate interface and contract</Description>
+ <Author>Maf</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>interface</ID>
+ <ToolTip>Interface name</ToolTip>
+ <Default>IFoo</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="type decl"><![CDATA[#region $interface$ contract binding
+[ContractClass(typeof($interface$Contract))]
+public partial interface $interface$ {
+ $end$
+}
+
+[ContractClassFor(typeof($interface$))]
+public class $interface$Contract : $interface$ {
+}
+#endregion
+]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariant.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariant.snippet
new file mode 100644
index 0000000..218a468
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariant.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Invariant</Title>
+ <Shortcut>ci</Shortcut>
+ <Description>Emits a 'Contract.Invariant' clause</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>condition</ID>
+ <ToolTip>boolean invariant condition</ToolTip>
+ <Default>false</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Invariant($condition$);$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantmethod.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantmethod.snippet
new file mode 100644
index 0000000..20eef7a
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantmethod.snippet
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract Invariant Method</Title>
+ <Shortcut>cim</Shortcut>
+ <Description>Boiler plate invariant method</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>condition</ID>
+ <ToolTip>boolean precondition</ToolTip>
+ <Default>false</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[[ContractInvariantMethod]
+void ObjectInvariant()
+{
+ Contract.Invariant($condition$);$end$
+}
+]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantnonnull.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantnonnull.snippet
new file mode 100644
index 0000000..f061cea
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantnonnull.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Invariant</Title>
+ <Shortcut>cin</Shortcut>
+ <Description>Emits a 'Contract.Invariant' non-null clause</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>expression</ID>
+ <ToolTip>the non-null expression</ToolTip>
+ <Default>m_X</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Invariant($expression$ != null);$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantnotisnullorempty.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantnotisnullorempty.snippet
new file mode 100644
index 0000000..d91b35c
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractinvariantnotisnullorempty.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Invariant</Title>
+ <Shortcut>cisn</Shortcut>
+ <Description>Emits a 'Contract.Invariant' not String.IsNullOrEmpty clause</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>expression</ID>
+ <ToolTip>expression that is not null or empty</ToolTip>
+ <Default>m_X</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Invariant(!String.IsNullOrEmpty($expression$));$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractold.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractold.snippet
new file mode 100644
index 0000000..7cbbfb4
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractold.snippet
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <Title>Contract.OldValue</Title>
+ <Shortcut>co</Shortcut>
+ <Description>Emits a 'Contract.OldValue' expression</Description>
+ <Author>Manuel Fahndrich</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>expression</ID>
+ <ToolTip>old expression</ToolTip>
+ <Default>x</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="any"><![CDATA[Contract.OldValue($expression$)$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequires.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequires.snippet
new file mode 100644
index 0000000..770fbc7
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequires.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Requires</Title>
+ <Shortcut>cr</Shortcut>
+ <Description>Emits a 'Contract.Requires' clause</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>condition</ID>
+ <ToolTip>precondition expression</ToolTip>
+ <Default>false</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Requires($condition$);$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalways.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalways.snippet
new file mode 100644
index 0000000..eb082d1
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalways.snippet
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Requires&lt;E&gt;</Title>
+ <Shortcut>cre</Shortcut>
+ <Description>Emits a 'Contract.Requires&lt;Exc&gt;' clause</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>exception</ID>
+ <ToolTip>Exception type</ToolTip>
+ <Default>ArgumentException</Default>
+ <Function>
+ </Function>
+ </Object>
+ <Object Editable="true">
+ <ID>condition</ID>
+ <ToolTip>precondition expression</ToolTip>
+ <Default>false</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Requires<$exception$>($condition$);$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalwaysnotisnullorempty.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalwaysnotisnullorempty.snippet
new file mode 100644
index 0000000..44f1bf6
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalwaysnotisnullorempty.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Requires&lt;ArgumentException&gt;(!String.IsNullOrEmpty(..))</Title>
+ <Shortcut>cresn</Shortcut>
+ <Description>Emits a 'requires with exception' not IsNullOrEmpty</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>variable</ID>
+ <ToolTip>argument name</ToolTip>
+ <Default>arg</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Requires<ArgumentException>(!String.IsNullOrEmpty($variable$));$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalwaysnotnull.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalwaysnotnull.snippet
new file mode 100644
index 0000000..2f1ca2a
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresalwaysnotnull.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Requires&lt;ArgumentNullException&gt;(.. != null)</Title>
+ <Shortcut>cren</Shortcut>
+ <Description>Emits a 'requires with exception' not null clause</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>variable</ID>
+ <ToolTip>variable name</ToolTip>
+ <Default>arg</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Requires<ArgumentNullException>($variable$ != null, "$variable$");$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresnotisnullorempty.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresnotisnullorempty.snippet
new file mode 100644
index 0000000..d6df838
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresnotisnullorempty.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Requires(!String.IsNullOrEmpty(..))</Title>
+ <Shortcut>crsn</Shortcut>
+ <Description>Emits a 'requires' not IsNullOrEmpty</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>variable</ID>
+ <ToolTip>argument name</ToolTip>
+ <Default>arg</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Requires(!String.IsNullOrEmpty($variable$));$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresnotnull.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresnotnull.snippet
new file mode 100644
index 0000000..e0607cc
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractrequiresnotnull.snippet
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <SnippetTypes>
+ <SnippetType>Expansion</SnippetType>
+ </SnippetTypes>
+ <Title>Contract.Requires(.. != null)</Title>
+ <Shortcut>crn</Shortcut>
+ <Description>Emits a 'requires' not null clause</Description>
+ <Author>Jonathan de Halleux</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>variable</ID>
+ <ToolTip>variable name</ToolTip>
+ <Default>arg</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="method body"><![CDATA[Contract.Requires($variable$ != null);$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>
diff --git a/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractresult.snippet b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractresult.snippet
new file mode 100644
index 0000000..3e3f4f2
--- /dev/null
+++ b/tools/Contracts/Languages/CSharp/Code Contract Snippets/contractresult.snippet
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+ <CodeSnippet Format="1.0.0">
+ <Header>
+ <Title>Contract.Result</Title>
+ <Shortcut>crr</Shortcut>
+ <Description>Emits a 'Contract.Result' expression</Description>
+ <Author>Manuel Fahndrich</Author>
+ </Header>
+ <Snippet>
+ <Imports>
+ <Import>
+ <Namespace>System.Diagnostics.Contracts</Namespace>
+ </Import>
+ </Imports>
+ <Declarations>
+ <Object Editable="true">
+ <ID>type</ID>
+ <ToolTip>method return type</ToolTip>
+ <Default>int</Default>
+ <Function>
+ </Function>
+ </Object>
+ </Declarations>
+ <Code Language="CSharp" Kind="any"><![CDATA[Contract.Result<$type$>()$end$]]></Code>
+ </Snippet>
+ </CodeSnippet>
+</CodeSnippets>