/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/CSharp/Interactive/CSharpInteractiveEvaluatorLanguageInfoProvider.cs
57 строк
2 KB
Cyrus Najmabadi
Update c# editor features to use file scoped namespaces
28 фев 2024, 00:35
28 фев 2024, 00:35
f125c26
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Collections.Immutable; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Scripting; using Microsoft.CodeAnalysis.CSharp.Scripting.Hosting; using Microsoft.CodeAnalysis.Interactive; using Microsoft.CodeAnalysis.Text; namespace Microsoft.CodeAnalysis.Editor.CSharp.Interactive; internal sealed class CSharpInteractiveEvaluatorLanguageInfoProvider : InteractiveEvaluatorLanguageInfoProvider { public static readonly CSharpInteractiveEvaluatorLanguageInfoProvider Instance = new(); private CSharpInteractiveEvaluatorLanguageInfoProvider() { } private static readonly CSharpParseOptions s_parseOptions = new(languageVersion: LanguageVersion.Latest, kind: SourceCodeKind.Script); public override string LanguageName => LanguageNames.CSharp; public override ParseOptions ParseOptions => s_parseOptions; public override CommandLineParser CommandLineParser => CSharpCommandLineParser.Script; public override CompilationOptions GetSubmissionCompilationOptions(string name, MetadataReferenceResolver metadataReferenceResolver, SourceReferenceResolver sourceReferenceResolver, ImmutableArray<string> imports) => CSharpScriptCompiler.WithTopLevelBinderFlags( new CSharpCompilationOptions( OutputKind.DynamicallyLinkedLibrary, scriptClassName: name, allowUnsafe: true, xmlReferenceResolver: null, // no support for permission set and doc includes in interactive usings: imports, sourceReferenceResolver: sourceReferenceResolver, metadataReferenceResolver: metadataReferenceResolver, assemblyIdentityComparer: DesktopAssemblyIdentityComparer.Default)); public override bool IsCompleteSubmission(string text) => SyntaxFactory.IsCompleteSubmission(SyntaxFactory.ParseSyntaxTree(SourceText.From(text, encoding: null, SourceHashAlgorithms.Default), options: s_parseOptions)); public override string InteractiveResponseFileName => "CSharpInteractive.rsp"; public override Type ReplServiceProviderType => typeof(CSharpReplServiceProvider); public override string Extension => ".csx"; }