| File: src\roslyn\src\Analyzers\VisualBasic\Analyzers\CodeStyle\VisualBasicAnalyzerOptionsProvider.vb | Web Access |
| Project: src\roslyn\src\Features\VisualBasic\Portable\Microsoft.CodeAnalysis.VisualBasic.Features.vbproj (Microsoft.CodeAnalysis.VisualBasic.Features) |
' 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. Imports System.Runtime.CompilerServices Imports Microsoft.CodeAnalysis.CodeStyle Imports Microsoft.CodeAnalysis.Options Imports Microsoft.CodeAnalysis.VisualBasic.CodeStyle Imports Microsoft.CodeAnalysis.VisualBasic.Simplification Namespace Microsoft.CodeAnalysis.Diagnostics ''' <summary> ''' Provides Visual Basic analyzers a convenient access to editorconfig options with fallback to IDE default values. ''' </summary> Friend Structure VisualBasicAnalyzerOptionsProvider ''' <summary> ''' Document editorconfig options. ''' </summary> Private ReadOnly _options As IOptionsReader Public Sub New(options As IOptionsReader) _options = options End Sub Public Function GetSimplifierOptions() As VisualBasicSimplifierOptions Return New VisualBasicSimplifierOptions(_options) End Function Public ReadOnly Property PreferredModifierOrder As CodeStyleOption2(Of String) Get Return GetOption(VisualBasicCodeStyleOptions.PreferredModifierOrder) End Get End Property Public ReadOnly Property PreferIsNotExpression As CodeStyleOption2(Of Boolean) Get Return GetOption(VisualBasicCodeStyleOptions.PreferIsNotExpression) End Get End Property Public ReadOnly Property PreferSimplifiedObjectCreation As CodeStyleOption2(Of Boolean) Get Return GetOption(VisualBasicCodeStyleOptions.PreferSimplifiedObjectCreation) End Get End Property Public ReadOnly Property UnusedValueExpressionStatement As CodeStyleOption2(Of UnusedValuePreference) Get Return GetOption(VisualBasicCodeStyleOptions.UnusedValueExpressionStatement) End Get End Property Public ReadOnly Property UnusedValueAssignment As CodeStyleOption2(Of UnusedValuePreference) Get Return GetOption(VisualBasicCodeStyleOptions.UnusedValueAssignment) End Get End Property Private Function GetOption(Of TValue)([option] As Option2(Of CodeStyleOption2(Of TValue))) As CodeStyleOption2(Of TValue) Return _options.GetOption([option]) End Function Public Shared Narrowing Operator CType(provider As AnalyzerOptionsProvider) As VisualBasicAnalyzerOptionsProvider Return New VisualBasicAnalyzerOptionsProvider(provider.GetAnalyzerConfigOptions()) End Operator Public Shared Widening Operator CType(provider As VisualBasicAnalyzerOptionsProvider) As AnalyzerOptionsProvider Return New AnalyzerOptionsProvider(provider._options, LanguageNames.VisualBasic) End Operator End Structure Friend Module VisualBasicAnalyzerOptionsProviders <Extension> Public Function GetVisualBasicAnalyzerOptions(options As AnalyzerOptions, syntaxTree As SyntaxTree) As VisualBasicAnalyzerOptionsProvider Return New VisualBasicAnalyzerOptionsProvider(options.AnalyzerConfigOptionsProvider.GetOptions(syntaxTree).GetOptionsReader()) End Function <Extension> Public Function GetVisualBasicAnalyzerOptions(context As SemanticModelAnalysisContext) As VisualBasicAnalyzerOptionsProvider Return GetVisualBasicAnalyzerOptions(context.Options, context.SemanticModel.SyntaxTree) End Function <Extension> Public Function GetVisualBasicAnalyzerOptions(context As SyntaxNodeAnalysisContext) As VisualBasicAnalyzerOptionsProvider Return GetVisualBasicAnalyzerOptions(context.Options, context.Node.SyntaxTree) End Function <Extension> Public Function GetVisualBasicAnalyzerOptions(context As SyntaxTreeAnalysisContext) As VisualBasicAnalyzerOptionsProvider Return GetVisualBasicAnalyzerOptions(context.Options, context.Tree) End Function <Extension> Public Function GetVisualBasicAnalyzerOptions(context As OperationAnalysisContext) As VisualBasicAnalyzerOptionsProvider Return GetVisualBasicAnalyzerOptions(context.Options, context.Operation.Syntax.SyntaxTree) End Function <Extension> Public Function GetVisualBasicAnalyzerOptions(context As CodeBlockAnalysisContext) As VisualBasicAnalyzerOptionsProvider Return GetVisualBasicAnalyzerOptions(context.Options, context.SemanticModel.SyntaxTree) End Function End Module End Namespace