static VisualBasicControlVM()
        {
            const LanguageVersion latestVersion = LanguageVersion.VisualBasic14;

            Debug.Assert(!Enum.IsDefined(typeof(LanguageVersion), (LanguageVersion)((int)latestVersion + 1)));
            parseOptions = new VisualBasicParseOptions(languageVersion: latestVersion, kind: SourceCodeKind.Script);
        }
Exemple #2
0
        public static VisualBasicParseOptions GetVisualBasicParseOptionsForSourceCodeKind(SourceCodeKind sourceCodeKind)
        {
            VisualBasicParseOptions options = new VisualBasicParseOptions();

            options.GetType().GetProperty("Kind").SetValue(options, sourceCodeKind);
            return(options);
        }
Exemple #3
0
        public SyntaxTree ParseText(string code, SourceCodeKind kind)
        {
            var options = new VisualBasicParseOptions(
                kind: kind,
                languageVersion: MaxLanguageVersion
                ).WithFeatures(_features);

            return(VisualBasicSyntaxTree.ParseText(code, options));
        }
 public VisualBasicCodeVerificationOptions WithParseOptions(VisualBasicParseOptions parseOptions)
 {
     return(new VisualBasicCodeVerificationOptions(
                parseOptions: parseOptions,
                compilationOptions: CompilationOptions,
                assemblyNames: AssemblyNames,
                allowedCompilerDiagnosticSeverity: AllowedCompilerDiagnosticSeverity,
                allowedCompilerDiagnosticIds: AllowedCompilerDiagnosticIds));
 }
        public async Task Initialize(Project project)
        {
            _sourceCsProject = project;
            var cSharpCompilationOptions = VisualBasicCompiler.CreateCompilationOptions(RootNamespace);

            _visualBasicParseOptions = VisualBasicParseOptions.Default;
            _convertedVbProject      = project.ToProjectFromAnyOptions(cSharpCompilationOptions, _visualBasicParseOptions);
            _vbViewOfCsSymbols       = (VisualBasicCompilation)await project.CreateReferenceOnlyCompilationFromAnyOptionsAsync(cSharpCompilationOptions);
        }
 public VisualBasicCodeVerificationOptions WithParseOptions(VisualBasicParseOptions parseOptions)
 {
     return(new VisualBasicCodeVerificationOptions(
                parseOptions: parseOptions,
                compilationOptions: CompilationOptions,
                allowNewCompilerDiagnostics: AllowNewCompilerDiagnostics,
                enableDiagnosticsDisabledByDefault: EnableDiagnosticsDisabledByDefault,
                maxAllowedCompilerDiagnosticSeverity: MaxAllowedCompilerDiagnosticSeverity,
                allowedCompilerDiagnosticIds: AllowedCompilerDiagnosticIds));
 }
 public VisualBasicTestOptions(
     VisualBasicCompilationOptions compilationOptions     = null,
     VisualBasicParseOptions parseOptions                 = null,
     IEnumerable <MetadataReference> metadataReferences   = null,
     IEnumerable <string> allowedCompilerDiagnosticIds    = null,
     DiagnosticSeverity allowedCompilerDiagnosticSeverity = DiagnosticSeverity.Info)
     : base(metadataReferences, allowedCompilerDiagnosticIds, allowedCompilerDiagnosticSeverity)
 {
     CompilationOptions = compilationOptions ?? new VisualBasicCompilationOptions(OutputKind.DynamicallyLinkedLibrary);
     ParseOptions       = parseOptions ?? VisualBasicParseOptions.Default;
 }
 public VisualBasicCodeVerificationOptions(
     VisualBasicParseOptions parseOptions,
     VisualBasicCompilationOptions compilationOptions,
     IEnumerable <string> assemblyNames,
     DiagnosticSeverity allowedCompilerDiagnosticSeverity = DiagnosticSeverity.Info,
     IEnumerable <string> allowedCompilerDiagnosticIds    = null)
     : base(assemblyNames, allowedCompilerDiagnosticSeverity, allowedCompilerDiagnosticIds)
 {
     ParseOptions       = parseOptions ?? throw new ArgumentNullException(nameof(parseOptions));
     CompilationOptions = compilationOptions ?? throw new ArgumentNullException(nameof(compilationOptions));
 }
 public VisualBasicCodeVerificationOptions(
     VisualBasicParseOptions parseOptions             = null,
     VisualBasicCompilationOptions compilationOptions = null,
     bool allowNewCompilerDiagnostics        = false,
     bool enableDiagnosticsDisabledByDefault = true,
     DiagnosticSeverity maxAllowedCompilerDiagnosticSeverity = DiagnosticSeverity.Info,
     IEnumerable <string> allowedCompilerDiagnosticIds       = null)
     : base(parseOptions, compilationOptions, allowNewCompilerDiagnostics, enableDiagnosticsDisabledByDefault, maxAllowedCompilerDiagnosticSeverity, allowedCompilerDiagnosticIds)
 {
     ParseOptions       = parseOptions;
     CompilationOptions = compilationOptions;
 }
            internal static IEnumerable <ColorizedWord> ColorizeInternal(string code)
            {
                if (re.IsMatch(code))
                {
                    code = "__dummyfrom__=" + code;            // because From is contextual
                }
                code = code.Replace("...", "___threedots___"); // because ... is unusually hard to parse
                var ref_mscorlib   = MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location);
                var ref_system     = MetadataReference.CreateFromFile(typeof(Uri).GetTypeInfo().Assembly.Location);
                var ref_systemcore = MetadataReference.CreateFromFile(typeof(Enumerable).GetTypeInfo().Assembly.Location);
                var ref_systemcollectionsimmutable = MetadataReference.CreateFromFile(typeof(ImmutableArray <>).GetTypeInfo().Assembly.Location);
                var parse_options   = new VisualBasicParseOptions(kind: SourceCodeKind.Script);
                var compile_options = new VisualBasicCompilationOptions(OutputKind.DynamicallyLinkedLibrary, globalImports: new[] { GlobalImport.Parse("System"), GlobalImport.Parse("System.Collections"), GlobalImport.Parse("System.Collections.Generic") });
                var compilationUnit = SyntaxFactory.ParseCompilationUnit(code, options: parse_options);
                var syntaxTree      = compilationUnit.SyntaxTree;
                var compilation     = VisualBasicCompilation.Create("dummyAssemblyName", new[] { syntaxTree }, new[] { ref_mscorlib, ref_system, ref_systemcore, ref_systemcollectionsimmutable }, compile_options);
                var semanticModel   = compilation.GetSemanticModel(syntaxTree, true);
                var w = new VBColorizingWalker()
                {
                    sm = semanticModel
                };

                w.Visit(syntaxTree.GetRoot());
                //
                var suppressNextEquals = false;

                foreach (var word in w.Words)
                {
                    if (word == null)
                    {
                        yield return(word);
                    }
                    else if (word.Text == "___threedots___")
                    {
                        yield return new ColorizedWord {
                                   Text = "..."
                        }
                    }
                    ;
                    else if (word.Text == "__dummyfrom__")
                    {
                        suppressNextEquals = true; continue;
                    }
                    else if (word.Text == "=" && suppressNextEquals)
                    {
                    }
                    else
                    {
                        word.Text = word.Text.Replace("___threedots___", "...").Replace("__dummyfrom__", "");
                        yield return(word);
                    }
                }
            }
        protected bool IsCompleteSubmission(string code)
        {
            //invalid REPL command
            if (code.StartsWith(":"))
            {
                return true;
            }

            var options = new VisualBasicParseOptions(LanguageVersion.VisualBasic14, DocumentationMode.Parse, SourceCodeKind.Interactive, null);
            var syntaxTree = SyntaxFactory.ParseSyntaxTree(code, options);
            var diagnostics = syntaxTree.GetDiagnostics();
            return !diagnostics.Any();
        }
Exemple #12
0
        private static VisualBasicTestOptions CreateDefault()
        {
            VisualBasicParseOptions parseOptions = VisualBasicParseOptions.Default;

            var compilationOptions = new VisualBasicCompilationOptions(OutputKind.DynamicallyLinkedLibrary);

            return(new VisualBasicTestOptions(
                       compilationOptions: compilationOptions,
                       parseOptions: parseOptions,
                       metadataReferences: RuntimeMetadataReference.DefaultMetadataReferences.Select(f => f.Value).ToImmutableArray(),
                       allowedCompilerDiagnosticIds: null,
                       allowedCompilerDiagnosticSeverity: DiagnosticSeverity.Info));
        }
Exemple #13
0
        protected bool IsCompleteSubmission(string code)
        {
            //invalid REPL command
            if (code.StartsWith(":"))
            {
                return(true);
            }

            var options     = new VisualBasicParseOptions(LanguageVersion.VisualBasic14, DocumentationMode.Parse, SourceCodeKind.Interactive, null);
            var syntaxTree  = SyntaxFactory.ParseSyntaxTree(code, options);
            var diagnostics = syntaxTree.GetDiagnostics();

            return(!diagnostics.Any());
        }
        public CSToVBProjectContentsConverter(ConversionOptions conversionOptions)
        {
            var vbCompilationOptions =
                (VisualBasicCompilationOptions)conversionOptions.TargetCompilationOptionsOverride ??
                VisualBasicCompiler.CreateCompilationOptions(conversionOptions.RootNamespaceOverride);

            if (conversionOptions.RootNamespaceOverride != null)
            {
                vbCompilationOptions = vbCompilationOptions.WithRootNamespace(conversionOptions.RootNamespaceOverride);
            }

            _vbCompilationOptions = vbCompilationOptions;
            _vbParseOptions       = VisualBasicParseOptions.Default;
            RootNamespace         = conversionOptions.RootNamespaceOverride;
        }
Exemple #15
0
        public CSToVBProjectContentsConverter(ConversionOptions conversionOptions, IProgress <ConversionProgress> progress, CancellationToken cancellationToken)
        {
            _progress          = progress;
            _cancellationToken = cancellationToken;
            var vbCompilationOptions =
                (VisualBasicCompilationOptions)conversionOptions.TargetCompilationOptionsOverride ??
                VisualBasicCompiler.CreateCompilationOptions(conversionOptions.RootNamespaceOverride);

            if (conversionOptions.RootNamespaceOverride != null)
            {
                vbCompilationOptions = vbCompilationOptions.WithRootNamespace(conversionOptions.RootNamespaceOverride);
            }

            _vbCompilationOptions = vbCompilationOptions;
            _vbParseOptions       = VisualBasicCompiler.ParseOptions;
            RootNamespace         = conversionOptions.RootNamespaceOverride;
        }
Exemple #16
0
        void VBWorkspaceSetup(out CSharpDiagnosticTestBase.TestWorkspace workspace, out Document doc, VisualBasicParseOptions parseOptions = null)
        {
            workspace = new CSharpDiagnosticTestBase.TestWorkspace();
            var projectId  = ProjectId.CreateNewId();
            var documentId = DocumentId.CreateNewId(projectId);

            if (parseOptions == null)
            {
                parseOptions = new VisualBasicParseOptions(
                    Microsoft.CodeAnalysis.VisualBasic.LanguageVersion.VisualBasic14,
                    DocumentationMode.Diagnose | DocumentationMode.Parse,
                    SourceCodeKind.Regular
                    );
            }
            workspace.Options.WithChangedOption(CSharpFormattingOptions.NewLinesForBracesInControlBlocks, false);
            workspace.Open(ProjectInfo.Create(
                               projectId,
                               VersionStamp.Create(),
                               "TestProject",
                               "TestProject",
                               LanguageNames.VisualBasic,
                               null,
                               null,
                               new VisualBasicCompilationOptions(
                                   OutputKind.DynamicallyLinkedLibrary,
                                   "",
                                   "",
                                   "Script",
                                   GlobalImport.Parse("System", "Microsoft.VisualBasic")
                                   ),
                               parseOptions,
                               new[] {
                DocumentInfo.Create(
                    documentId,
                    "a.vb",
                    null,
                    SourceCodeKind.Regular
                    )
            },
                               null,
                               DiagnosticTestBase.DefaultMetadataReferences
                               )
                           );
            doc = workspace.CurrentSolution.GetProject(projectId).GetDocument(documentId);
        }
Exemple #17
0
        public override Project AddProject(Solution solution)
        {
            Project project = base.AddProject(solution);

            var compilationOptions = (VisualBasicCompilationOptions)project.CompilationOptions;

            VisualBasicCompilationOptions newCompilationOptions = compilationOptions
                                                                  .WithOutputKind(OutputKind.DynamicallyLinkedLibrary);

            var parseOptions = (VisualBasicParseOptions)project.ParseOptions;

            VisualBasicParseOptions newParseOptions = parseOptions
                                                      .WithLanguageVersion(LanguageVersion.Latest);

            return(project
                   .WithCompilationOptions(newCompilationOptions)
                   .WithParseOptions(newParseOptions));
        }
    public CSToVBProjectContentsConverter(ConversionOptions conversionOptions, IProgress <ConversionProgress> progress, CancellationToken cancellationToken)
    {
        _cancellationToken = cancellationToken;
        OptionalOperations = new OptionalOperations(conversionOptions.AbandonOptionalTasksAfter, progress, cancellationToken);
        var vbCompilationOptions =
            (VisualBasicCompilationOptions)conversionOptions.TargetCompilationOptionsOverride ??
            VisualBasicCompiler.CreateCompilationOptions(conversionOptions.RootNamespaceOverride)
            .WithParseOptions(VisualBasicCompiler.ParseOptions);

        if (conversionOptions.RootNamespaceOverride != null)
        {
            vbCompilationOptions = vbCompilationOptions.WithRootNamespace(conversionOptions.RootNamespaceOverride);
        }

        _vbCompilationOptions = vbCompilationOptions;
        _vbParseOptions       = vbCompilationOptions.ParseOptions;
        RootNamespace         = conversionOptions.RootNamespaceOverride;
    }
		void VBWorkspaceSetup(out CSharpDiagnosticTestBase.TestWorkspace workspace, out Document doc, VisualBasicParseOptions parseOptions = null)
		{
			workspace = new CSharpDiagnosticTestBase.TestWorkspace();
			var projectId = ProjectId.CreateNewId();
			var documentId = DocumentId.CreateNewId(projectId);
			if (parseOptions == null)
			{
				parseOptions = new VisualBasicParseOptions(
					Microsoft.CodeAnalysis.VisualBasic.LanguageVersion.VisualBasic14,
					DocumentationMode.Diagnose | DocumentationMode.Parse,
					SourceCodeKind.Regular
				);
			}
			workspace.Options.WithChangedOption(CSharpFormattingOptions.NewLinesForBracesInControlBlocks, false);
			workspace.Open(ProjectInfo.Create(
				projectId,
				VersionStamp.Create(),
				"TestProject",
				"TestProject",
				LanguageNames.VisualBasic,
				null,
				null,
				new VisualBasicCompilationOptions(
					OutputKind.DynamicallyLinkedLibrary,
					"",
					"",
					"Script",
					GlobalImport.Parse("System", "Microsoft.VisualBasic")
				),
				parseOptions,
				new[] {
					DocumentInfo.Create(
						documentId,
						"a.vb",
						null,
						SourceCodeKind.Regular
					)
				},
				null,
				DiagnosticTestBase.DefaultMetadataReferences
			)
			);
			doc = workspace.CurrentSolution.GetProject(projectId).GetDocument(documentId);
		}
Exemple #20
0
        public void Test_OldVB()
        {
            var parseOptions = new VisualBasicParseOptions(
                LanguageVersion.VisualBasic12,
                DocumentationMode.Diagnose | DocumentationMode.Parse,
                SourceCodeKind.Regular
                );

            Test <CheckIfParameterIsNothingCodeRefactoringProvider>(@"
Class Foo
    Sub Test($test As String)
    End Sub
End Class", @"
Class Foo
    Sub Test(test As String)
        If test Is Nothing Then
            Throw New System.ArgumentNullException(""test"")
        End If
    End Sub
End Class", parseOptions: parseOptions);
        }
        private static VisualBasicCodeVerificationOptions CreateDefault()
        {
            VisualBasicParseOptions       parseOptions       = null;
            VisualBasicCompilationOptions compilationOptions = null;

            using (var workspace = new AdhocWorkspace())
            {
                Project project = workspace
                                  .CurrentSolution
                                  .AddProject("Temp", "Temp", LanguageNames.VisualBasic);

                compilationOptions = ((VisualBasicCompilationOptions)project.CompilationOptions)
                                     .WithOutputKind(OutputKind.DynamicallyLinkedLibrary);

                parseOptions = ((VisualBasicParseOptions)project.ParseOptions)
                               .WithLanguageVersion(LanguageVersion.Latest);
            }

            return(new VisualBasicCodeVerificationOptions(
                       parseOptions: parseOptions,
                       compilationOptions: compilationOptions));
        }
        public override Project AddProject(Solution solution, CodeVerificationOptions options = null)
        {
            Project project = base.AddProject(solution, options);

            var compilationOptions = (VisualBasicCompilationOptions)project.CompilationOptions;

            VisualBasicCompilationOptions newCompilationOptions = compilationOptions
                                                                  .WithOutputKind(OutputKind.DynamicallyLinkedLibrary);

            var parseOptions = (VisualBasicParseOptions)project.ParseOptions;

            VisualBasicCodeVerificationOptions visualBasicOptions = (options != null)
                ? ((VisualBasicCodeVerificationOptions)options)
                : VisualBasicCodeVerificationOptions.Default;

            VisualBasicParseOptions newParseOptions = parseOptions
                                                      .WithLanguageVersion(visualBasicOptions.LanguageVersion);

            return(project
                   .WithCompilationOptions(newCompilationOptions)
                   .WithParseOptions(newParseOptions));
        }
Exemple #23
0
        public static CompilerResults CompileVB(string sourceFileName, CompilerOptions flags = CompilerOptions.UseDebug, string outputFileName = null)
        {
            List <string> sourceFileNames = new List <string> {
                sourceFileName
            };

            foreach (Match match in Regex.Matches(File.ReadAllText(sourceFileName), @"#include ""([\w\d./]+)"""))
            {
                sourceFileNames.Add(Path.GetFullPath(Path.Combine(Path.GetDirectoryName(sourceFileName), match.Groups[1].Value)));
            }

            var preprocessorSymbols = GetPreprocessorSymbols(flags).Select(symbol => new KeyValuePair <string, object>(symbol, 1)).ToList();

            if (flags.HasFlag(CompilerOptions.UseRoslyn))
            {
                var parseOptions = new VisualBasicParseOptions(preprocessorSymbols: preprocessorSymbols, languageVersion: LanguageVersion.Latest);
                var syntaxTrees  = sourceFileNames.Select(f => SyntaxFactory.ParseSyntaxTree(File.ReadAllText(f), parseOptions, path: f));
                var references   = defaultReferences.Value;
                if (flags.HasFlag(CompilerOptions.ReferenceVisualBasic))
                {
                    references = references.Concat(visualBasic.Value);
                }
                var compilation = VisualBasicCompilation.Create(Path.GetFileNameWithoutExtension(sourceFileName),
                                                                syntaxTrees, references,
                                                                new VisualBasicCompilationOptions(
                                                                    flags.HasFlag(CompilerOptions.Library) ? OutputKind.DynamicallyLinkedLibrary : OutputKind.ConsoleApplication,
                                                                    platform: flags.HasFlag(CompilerOptions.Force32Bit) ? Platform.X86 : Platform.AnyCpu,
                                                                    optimizationLevel: flags.HasFlag(CompilerOptions.Optimize) ? OptimizationLevel.Release : OptimizationLevel.Debug,
                                                                    deterministic: true
                                                                    ));
                CompilerResults results = new CompilerResults(new TempFileCollection());
                results.PathToAssembly = outputFileName ?? Path.GetTempFileName();
                var emitResult = compilation.Emit(results.PathToAssembly);
                if (!emitResult.Success)
                {
                    StringBuilder b = new StringBuilder("Compiler error:");
                    foreach (var diag in emitResult.Diagnostics)
                    {
                        b.AppendLine(diag.ToString());
                    }
                    throw new Exception(b.ToString());
                }
                return(results);
            }
            else if (flags.HasFlag(CompilerOptions.UseMcs))
            {
                throw new NotSupportedException("Cannot use mcs for VB");
            }
            else
            {
                var provider = new VBCodeProvider(new Dictionary <string, string> {
                    { "CompilerVersion", "v4.0" }
                });
                CompilerParameters options = new CompilerParameters();
                options.GenerateExecutable = !flags.HasFlag(CompilerOptions.Library);
                options.CompilerOptions    = "/optimize" + (flags.HasFlag(CompilerOptions.Optimize) ? "+" : "-");
                options.CompilerOptions   += (flags.HasFlag(CompilerOptions.UseDebug) ? " /debug" : "");
                options.CompilerOptions   += (flags.HasFlag(CompilerOptions.Force32Bit) ? " /platform:anycpu32bitpreferred" : "");
                options.CompilerOptions   += " /optioninfer+ /optionexplicit+";
                if (preprocessorSymbols.Count > 0)
                {
                    options.CompilerOptions += " /d:" + string.Join(",", preprocessorSymbols.Select(p => $"{p.Key}={p.Value}"));
                }
                if (outputFileName != null)
                {
                    options.OutputAssembly = outputFileName;
                }

                options.ReferencedAssemblies.Add("System.dll");
                options.ReferencedAssemblies.Add("System.Core.dll");
                options.ReferencedAssemblies.Add("System.Xml.dll");
                if (flags.HasFlag(CompilerOptions.ReferenceVisualBasic))
                {
                    options.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll");
                }
                CompilerResults results = provider.CompileAssemblyFromFile(options, sourceFileNames.ToArray());
                if (results.Errors.Cast <CompilerError>().Any(e => !e.IsWarning))
                {
                    StringBuilder b = new StringBuilder("Compiler error:");
                    foreach (var error in results.Errors)
                    {
                        b.AppendLine(error.ToString());
                    }
                    throw new Exception(b.ToString());
                }
                return(results);
            }
        }
        // http://stackoverflow.com/questions/13601412/compilation-errors-when-dealing-with-c-sharp-script-using-roslyn
        protected SyntaxTree ParseSyntaxTree(string code, VisualBasicParseOptions parseOptions, string path = "")
        {
            var tree = VisualBasicSyntaxTree.ParseText(code, parseOptions, path);

            return(tree);
        }
 public VBNetLanguageService(VisualBasicParseOptions options, LanguageServiceOptions serviceOptions)
     : base(serviceOptions)
 {
     _options = options ?? DefaultOptions;
 }
Exemple #26
0
        public void TestConversionCSharpToVisualBasic(string csharpCode, string expectedVisualBasicCode, CSharpParseOptions csharpOptions = null, VisualBasicParseOptions vbOptions = null)
        {
            DiagnosticTestBase.TestWorkspace csharpWorkspace, vbWorkspace;
            Document inputDocument, outputDocument;

            CSharpWorkspaceSetup(csharpCode, out csharpWorkspace, out inputDocument, csharpOptions);
            VBWorkspaceSetup(out vbWorkspace, out outputDocument, vbOptions);
            var outputNode = Convert((CSharpSyntaxNode)inputDocument.GetSyntaxRootAsync().Result, inputDocument.GetSemanticModelAsync().Result, outputDocument);

            var txt = outputDocument.WithSyntaxRoot(Formatter.Format(outputNode, vbWorkspace)).GetTextAsync().Result.ToString();

            txt = Utils.HomogenizeEol(txt).TrimEnd();
            expectedVisualBasicCode = Utils.HomogenizeEol(expectedVisualBasicCode).TrimEnd();
            if (expectedVisualBasicCode != txt)
            {
                Console.WriteLine("expected:");
                Console.WriteLine(expectedVisualBasicCode);
                Console.WriteLine("got:");
                Console.WriteLine(txt);
                Console.WriteLine("diff:");
                int           l    = Math.Max(expectedVisualBasicCode.Length, txt.Length);
                StringBuilder diff = new StringBuilder(l);
                for (int i = 0; i < l; i++)
                {
                    if (i >= expectedVisualBasicCode.Length || i >= txt.Length || expectedVisualBasicCode[i] != txt[i])
                    {
                        diff.Append('x');
                    }
                    else
                    {
                        diff.Append(expectedVisualBasicCode[i]);
                    }
                }
                Console.WriteLine(diff.ToString());
                Assert.Fail();
            }
        }
Exemple #27
0
        public void TestConversionVisualBasicToCSharp(string visualBasicCode, string expectedCsharpCode, CSharpParseOptions csharpOptions = null, VisualBasicParseOptions vbOptions = null)
        {
            TestWorkspace csharpWorkspace, vbWorkspace;
            Document      inputDocument, outputDocument;

            VBWorkspaceSetup(visualBasicCode, out vbWorkspace, out inputDocument, vbOptions);
            CSharpWorkspaceSetup(out csharpWorkspace, out outputDocument, csharpOptions);
            var outputNode = Convert((VisualBasicSyntaxNode)inputDocument.GetSyntaxRootAsync().Result, inputDocument.GetSemanticModelAsync().Result, outputDocument);

            var txt = outputDocument.WithSyntaxRoot(Formatter.Format(outputNode, vbWorkspace)).GetTextAsync().Result.ToString();

            txt = Utils.HomogenizeEol(txt).TrimEnd();
            expectedCsharpCode = Utils.HomogenizeEol(expectedCsharpCode).TrimEnd();
            if (expectedCsharpCode != txt)
            {
                int           l  = Math.Max(expectedCsharpCode.Length, txt.Length);
                StringBuilder sb = new StringBuilder(l * 4);
                sb.AppendLine("expected:");
                sb.AppendLine(expectedCsharpCode);
                sb.AppendLine("got:");
                sb.AppendLine(txt);
                sb.AppendLine("diff:");
                for (int i = 0; i < l; i++)
                {
                    if (i >= expectedCsharpCode.Length || i >= txt.Length || expectedCsharpCode[i] != txt[i])
                    {
                        sb.Append('x');
                    }
                    else
                    {
                        sb.Append(expectedCsharpCode[i]);
                    }
                }
                Assert.True(false, sb.ToString());
            }
        }
		public void TestConversionCSharpToVisualBasic(string csharpCode, string expectedVisualBasicCode, CSharpParseOptions csharpOptions = null, VisualBasicParseOptions vbOptions = null)
		{
			DiagnosticTestBase.TestWorkspace csharpWorkspace, vbWorkspace;
			Document inputDocument, outputDocument;
			CSharpWorkspaceSetup(csharpCode, out csharpWorkspace, out inputDocument, csharpOptions);
			VBWorkspaceSetup(out vbWorkspace, out outputDocument, vbOptions);
            var outputNode = Convert((CSharpSyntaxNode)inputDocument.GetSyntaxRootAsync().Result, inputDocument.GetSemanticModelAsync().Result, outputDocument);
			
			var txt = outputDocument.WithSyntaxRoot(Formatter.Format(outputNode, vbWorkspace)).GetTextAsync().Result.ToString();
			txt = Utils.HomogenizeEol(txt).TrimEnd();
			expectedVisualBasicCode = Utils.HomogenizeEol(expectedVisualBasicCode).TrimEnd();
			if (expectedVisualBasicCode != txt)
			{
				Console.WriteLine("expected:");
				Console.WriteLine(expectedVisualBasicCode);
				Console.WriteLine("got:");
				Console.WriteLine(txt);
                Console.WriteLine("diff:");
                int l = Math.Max(expectedVisualBasicCode.Length, txt.Length);
                StringBuilder diff = new StringBuilder(l);
                for (int i = 0; i < l; i++)
                {
                    if (i >= expectedVisualBasicCode.Length || i >= txt.Length || expectedVisualBasicCode[i] != txt[i])
                        diff.Append('x');
                    else
                        diff.Append(expectedVisualBasicCode[i]);
                }
                Console.WriteLine(diff.ToString());
				Assert.Fail();
			}
		}
        public void Test_OldVB()
        {
            var parseOptions = new VisualBasicParseOptions(
                LanguageVersion.VisualBasic12,
                DocumentationMode.Diagnose | DocumentationMode.Parse,
                SourceCodeKind.Regular
            );

            Test<CheckIfParameterIsNothingCodeRefactoringProvider>(@"
Class Foo
    Sub Test($test As String)
    End Sub
End Class", @"
Class Foo
    Sub Test(test As String)
        If test Is Nothing Then
            Throw New System.ArgumentNullException(""test"")
        End If
    End Sub
End Class", parseOptions: parseOptions);
        }
Exemple #30
0
 public VisualBasicTestOptions WithParseOptions(VisualBasicParseOptions parseOptions)
 {
     return(new VisualBasicTestOptions(this)
     {
         ParseOptions = parseOptions ?? throw new ArgumentNullException(nameof(parseOptions))
     });
 public VBNetLanguageService(VisualBasicParseOptions options)
     : this(options, null)
 {
 }
Exemple #32
0
 public void TestConversionVisualBasicToCSharpWithoutComments(string visualBasicCode, string expectedCsharpCode, bool addUsings = true, CSharpParseOptions csharpOptions = null, VisualBasicParseOptions vbOptions = null)
 {
     AssertConvertedCodeResultEquals <VBToCSConversion>(visualBasicCode, expectedCsharpCode);
 }
Exemple #33
0
        public void TestConversionCSharpToVisualBasic(string csharpCode, string expectedVisualBasicCode, bool expectSurroundingMethodBlock = false, CSharpParseOptions csharpOptions = null, VisualBasicParseOptions vbOptions = null)
        {
            expectedVisualBasicCode = AddSurroundingMethodBlock(expectedVisualBasicCode, expectSurroundingMethodBlock);

            TestConversionCSharpToVisualBasicWithoutComments(csharpCode, expectedVisualBasicCode);
            if (_testCstoVBCommentsByDefault)
            {
                TestConversionCSharpToVisualBasicWithoutComments(AddLineNumberComments(csharpCode, "// ", false), AddLineNumberComments(expectedVisualBasicCode, "' ", true));
            }
        }
		public void TestConversionCSharpToVisualBasic(string csharpCode, string expectedVisualBasicCode, CSharpParseOptions csharpOptions = null, VisualBasicParseOptions vbOptions = null)
		{
			DiagnosticTestBase.TestWorkspace csharpWorkspace, vbWorkspace;
			Document inputDocument, outputDocument;
			CSharpWorkspaceSetup(csharpCode, out csharpWorkspace, out inputDocument, csharpOptions);
			VBWorkspaceSetup(out vbWorkspace, out outputDocument, vbOptions);
            var outputNode = Convert((CSharpSyntaxNode)inputDocument.GetSyntaxRootAsync().Result, inputDocument.GetSemanticModelAsync().Result);
			
			var txt = outputDocument.WithSyntaxRoot(Formatter.Format(outputNode, vbWorkspace)).GetTextAsync().Result.ToString();
			txt = Utils.HomogenizeEol(txt).TrimEnd();
			expectedVisualBasicCode = Utils.HomogenizeEol(expectedVisualBasicCode).TrimEnd();
			if (expectedVisualBasicCode != txt)
			{
				Console.WriteLine("expected:");
				Console.WriteLine(expectedVisualBasicCode);
				Console.WriteLine("got:");
				Console.WriteLine(txt);
				Assert.Fail();
			}
		}
Exemple #35
0
        public void TestConversionCSharpToVisualBasic(string csharpCode, string expectedVisualBasicCode, CSharpParseOptions csharpOptions = null, VisualBasicParseOptions vbOptions = null)
        {
            DiagnosticTestBase.TestWorkspace csharpWorkspace, vbWorkspace;
            Document inputDocument, outputDocument;

            CSharpWorkspaceSetup(csharpCode, out csharpWorkspace, out inputDocument, csharpOptions);
            VBWorkspaceSetup(out vbWorkspace, out outputDocument, vbOptions);
            var outputNode = Convert((CSharpSyntaxNode)inputDocument.GetSyntaxRootAsync().Result, inputDocument.GetSemanticModelAsync().Result);

            var txt = outputDocument.WithSyntaxRoot(Formatter.Format(outputNode, vbWorkspace)).GetTextAsync().Result.ToString();

            txt = Utils.HomogenizeEol(txt).TrimEnd();
            expectedVisualBasicCode = Utils.HomogenizeEol(expectedVisualBasicCode).TrimEnd();
            if (expectedVisualBasicCode != txt)
            {
                Console.WriteLine("expected:");
                Console.WriteLine(expectedVisualBasicCode);
                Console.WriteLine("got:");
                Console.WriteLine(txt);
                Assert.Fail();
            }
        }