コード例 #1
0
        public void TestEditorBrowsableAttributeMembers()
        {
            int cp;
            var engine1 = CodeCompletionBugTests.CreateEngine(
                @"
using System;
using System.ComponentModel;
public class FooBar
{
	[EditorBrowsable(EditorBrowsableState.Always)]
	public int BrowsableTest { get; set; }

	[EditorBrowsable(EditorBrowsableState.Never)]
	public int NotBrowsableTest { get; set; }
}
", out cp);
            CompletionDataList provider = CodeCompletionBugTests.CreateProvider(
                @"class Test : FooBar
{
	void Test ()
	{
		$B$
	}
}", false, engine1.ctx.CurrentAssembly.UnresolvedAssembly);

            Assert.IsNotNull(provider, "provider == null");
            Assert.IsNotNull(provider.Find("BrowsableTest"), "'BrowsableTest' not found.");
            Assert.IsNull(provider.Find("NotBrowsableTest"), "'NotBrowsableTest' found.");
        }
コード例 #2
0
        public CompletionResult CreateProvider(string input, SourceCodeKind?sourceCodeKind = null, bool usePreviousCharAsTrigger = false)
        {
            int           cursorPosition;
            SemanticModel semanticModel;
            Document      document;
            var           idx = input.IndexOf("$$", StringComparison.Ordinal);

            if (idx >= 0)
            {
                input = input.Substring(0, idx) + input.Substring(idx + 1);
            }
            var  engine            = CodeCompletionBugTests.CreateEngine(input, out cursorPosition, out semanticModel, out document, null, sourceCodeKind);
            char triggerChar       = cursorPosition > 0 ? document.GetTextAsync().Result [cursorPosition - 1] : '\0';
            var  completionContext = new CompletionContext(document, cursorPosition, semanticModel);
            var  exclusiveHandler  = CreateContextHandler();

            if (exclusiveHandler != null)
            {
                completionContext.AdditionalContextHandlers = new [] { exclusiveHandler };
                completionContext.UseDefaultContextHandlers = false;
            }

            return(engine.GetCompletionDataAsync(
                       completionContext,
                       new CompletionTriggerInfo(usePreviousCharAsTrigger ? CompletionTriggerReason.CharTyped : CompletionTriggerReason.CompletionCommand, triggerChar)).Result);
        }
コード例 #3
0
        public void TestHideAdvanced()
        {
            int cp;
            var engine1 = CodeCompletionBugTests.CreateEngine(
                @"
using System;
using System.ComponentModel;

[EditorBrowsable(EditorBrowsableState.Always)]
public class BrowsableTest {}

[EditorBrowsable(EditorBrowsableState.Advanced)]
public class NotBrowsableTest {}
", out cp);

            CompletionDataList provider = CodeCompletionBugTests.CreateProvider(
                @"class Test
				{
				void Test ()
				{
					$B$
				}
			}"            , false, e => e.EditorBrowsableBehavior = ICSharpCode.NRefactory.CSharp.Completion.EditorBrowsableBehavior.Normal, engine1.ctx.CurrentAssembly.UnresolvedAssembly);

            Assert.IsNotNull(provider, "provider == null");
            Assert.IsNotNull(provider.Find("BrowsableTest"), "'BrowsableTest' not found.");
            Assert.IsNull(provider.Find("NotBrowsableTest"), "'NotBrowsableTest' found.");
        }
コード例 #4
0
        public static CompletionDataList CreateProvider(string text, params IUnresolvedAssembly[] references)
        {
            int cursorPosition;
            var engine = CodeCompletionBugTests.CreateEngine(text, out cursorPosition, references);
            var data   = engine.GetImportCompletionData(cursorPosition);

            return(new CompletionDataList()
            {
                Data = data,
                AutoCompleteEmptyMatch = engine.AutoCompleteEmptyMatch,
                AutoSelect = engine.AutoSelect,
                DefaultCompletionString = engine.DefaultCompletionString
            });
        }
コード例 #5
0
        public static CSharpCompletionTextEditorExtension.CSharpCompletionDataList CreateProvider(string text)
        {
            int           cursorPosition;
            SemanticModel semanticModel;
            Document      document;

            var engine = CodeCompletionBugTests.CreateEngine(text, out cursorPosition, out semanticModel, out document, null);
            var ext    = new CSharpCompletionTextEditorExtension();
            var list   = new CSharpCompletionTextEditorExtension.CSharpCompletionDataList();
            var result = CodeCompletionBugTests.CreateProvider(text);

            list.AddRange(result);
            ext.AddImportCompletionData(result, list, new RoslynCodeCompletionFactory(ext, semanticModel), semanticModel, cursorPosition);

            return(list);
        }