コード例 #1
0
        static ForeachStatement MakeForeach(Expression node, IType type, RefactoringContext context)
        {
            var namingHelper = new NamingHelper(context);

            return(new ForeachStatement()
            {
                VariableType = new SimpleType("var"),
                VariableName = namingHelper.GenerateVariableName(type),
                InExpression = node.Clone(),
                EmbeddedStatement = new BlockStatement()
            });
        }
コード例 #2
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameTest()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{ $ }
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("i", name);
				}
コード例 #3
0
        public void GenerateVariableNameTest()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{ $ }
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("i", name);
        }
コード例 #4
0
        public void GenerateVariableNameInForInitializerList()
        {
            var context = MakeContext(@"
class A
{
	void F(int i)
	{
		for($ ; i < 0; i++);
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
        }
コード例 #5
0
        public void GenerateVariableNameInMethodIgnoresParameters()
        {
            var context = MakeContext(@"
class A
{
	void F(int i)
	{
		$
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
        }
コード例 #6
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameIgnoresNamesUsedPreviouslyInScope()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		int i;
		$
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
				}
コード例 #7
0
        public void GenerateVariableNameIgnoresFixedVariables()
        {
            var context = MakeContext(@"
class A
{
	unsafe void F()
	{
		$
		fixed (int i = 13) {}
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("j", name);
        }
コード例 #8
0
        public void GenerateVariableNameFallsBackToNumbering()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		int i, j, k;
		$
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("i2", name);
        }
コード例 #9
0
        public void GenerateVariableNameIgnoresNamesUsedInNestedScope()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		$
		for (int i; i < 0; i++);
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
        }
コード例 #10
0
        public void GenerateVariableNameIgnoresLinqIdentifiers()
        {
            // Snippet tests that identifiers from in, into and let clauses are found
            var context = MakeContext(@"
class A
{
	void F()
	{
		$
		var ints = from i in new int [] {} group i by i % 2 into j let k = 2 select j.Count() + k;
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("i2", name);
        }
コード例 #11
0
        public void GenerateVariableNameForCustomType()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		$
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new SimpleType()
            {
                Identifier = "VariableNameGenerationTester"
            });

            Assert.NotNull(name);
            Assert.AreEqual("variableNameGenerationTester", name);
        }
コード例 #12
0
        public void GenerateVariableNameDoesNotRepeatNames()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		$
	}
}"
                                      );
            var namingHelper = new NamingHelper(context);
            var name1        = namingHelper.GenerateVariableName(new PrimitiveType("int"));
            var name2        = namingHelper.GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name1);
            Assert.NotNull(name2);
            Assert.AreNotEqual(name1, name2, "The generated names should not repeat.");
        }
コード例 #13
0
        public void GenerateVariableNameWithNumberedVariableInParentBlock()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		int i2;
		{
			int i, j, k;
			$
		}
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("i3", name);
        }
コード例 #14
0
        public IEnumerable<CodeAction> GetActions(RefactoringContext context)
        {
            var catchClause = context.GetNode<CatchClause>();
            if (catchClause == null)
                yield break;
            if (!catchClause.Type.IsNull)
                yield break;
            yield return new CodeAction(context.TranslateString("Add type specifier"), script => {
                var newType = context.CreateShortType("System", "Exception");
                var namingHelper = new NamingHelper(context);
                var newIdentifier = Identifier.Create(namingHelper.GenerateVariableName(newType, "e"));

                script.Replace(catchClause, new CatchClause {
                    Type = newType,
                    VariableNameToken = newIdentifier,
                    Body = catchClause.Body.Clone() as BlockStatement
                });
                script.Select(newType);
            }, catchClause);
        }
コード例 #15
0
        public void GenerateVariableNameShouldNotIgnoreBasedOnMethodCallIdentifiers()
        {
            var context = MakeContext(@"
class B
{
	void i()
	{
	}
}
class A
{
	void F()
	{
		
		for($ ;;)
			B.i();
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.IsTrue(name == "i");
        }
コード例 #16
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameWithNumberedVariableInParentBlock()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		int i2;
		{
			int i, j, k;
			$
		}
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("i3", name);
				}
コード例 #17
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameDoesNotRepeatNames()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		$
	}
}"
						);
						var namingHelper = new NamingHelper(context);
						var name1 = namingHelper.GenerateVariableName(new PrimitiveType("int"));
						var name2 = namingHelper.GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name1);
						Assert.NotNull(name2);
						Assert.AreNotEqual(name1, name2, "The generated names should not repeat.");
				}
コード例 #18
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameForCustomType()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		$
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new SimpleType() { Identifier = "VariableNameGenerationTester" });
						Assert.NotNull(name);
						Assert.AreEqual("variableNameGenerationTester", name);
				}
コード例 #19
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameFallsBackToNumbering()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		int i, j, k;
		$
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("i2", name);
				}
コード例 #20
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameIgnoresFixedVariables()
				{
						var context = MakeContext(@"
class A
{
	unsafe void F()
	{
		$
		fixed (int i = 13) {}
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("j", name);
				}
コード例 #21
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameIgnoresLinqIdentifiers()
				{
						// Snippet tests that identifiers from in, into and let clauses are found
						var context = MakeContext(@"
class A
{
	void F()
	{
		$
		var ints = from i in new int [] {} group i by i % 2 into j let k = 2 select j.Count() + k;
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("i2", name);
				}
コード例 #22
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameShouldNotIgnoreBasedOnMethodCallIdentifiers()
				{
						var context = MakeContext(@"
class B
{
	void i()
	{
	}
}
class A
{
	void F()
	{
		
		for($ ;;)
			B.i();
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.IsTrue(name == "i");
				}
コード例 #23
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameInForInitializerList()
				{
						var context = MakeContext(@"
class A
{
	void F(int i)
	{
		for($ ; i < 0; i++);
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
				}
コード例 #24
0
		static ForeachStatement MakeForeach(Expression node, IType type, RefactoringContext context)
		{
			var namingHelper = new NamingHelper(context);
			return new ForeachStatement() {
				VariableType = new SimpleType("var"),
				VariableName = namingHelper.GenerateVariableName(type),
				InExpression = node.Clone(),
				EmbeddedStatement = new BlockStatement()
			};
		}
コード例 #25
0
 public InitializerConversionVisitor(RefactoringContext context)
 {
     this.context = context;
     namingHelper = new NamingHelper(context);
 }
コード例 #26
0
ファイル: NamingHelperTests.cs プロジェクト: Gobiner/ILSpy
				public void GenerateVariableNameInMethodIgnoresParameters()
				{
						var context = MakeContext(@"
class A
{
	void F(int i)
	{
		$
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
				}