public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { object newParentObject = this.ConfigurationAction(configurationDefinitionAst.InstanceName.ToString(), configurationDefinitionAst.Extent, this.GetCurrentNestingLevel(), this.GetCurrentParentObject()); this.VisitChildren(configurationDefinitionAst.Body, newParentObject); return(AstVisitAction.SkipChildren); }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { if (configurationDefinitionAst.ToString().Contains(symbolRef.ScriptRegion.Text)) { ValidateExtend(symbolRef.ScriptRegion.Text, configurationDefinitionAst.InstanceName.ToString(), configurationDefinitionAst); } return(base.VisitConfigurationDefinition(configurationDefinitionAst)); }
public virtual StatementAst VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { return(new ConfigurationDefinitionAst( configurationDefinitionAst.Extent, configurationDefinitionAst.Body.Rewrite(this, SyntaxKind.ScriptBlockExpression), configurationDefinitionAst.ConfigurationType, configurationDefinitionAst.InstanceName?.Rewrite(this, SyntaxKind.Expression))); }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { // SKIP // configuration MyDscConfig {..} -> throws exception in devcontainer, just works in cloud. // Example to test: Configuration cnf { Import-DscResource -Module nx; Node 'lx.a.com' { nxFile ExampleFile { DestinationPath = '/tmp/example'; Contents = "hello world `n"; Ensure = 'Present'; Type = 'File'; } } }; cnf -OutputPath:'C:\temp' // #35 AstExplainer(configurationDefinitionAst); return(base.VisitConfigurationDefinition(configurationDefinitionAst)); }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { IScriptExtent nameExtent = new ScriptExtent() { Text = configurationDefinitionAst.InstanceName.Extent.Text, StartLineNumber = configurationDefinitionAst.Extent.StartLineNumber, EndLineNumber = configurationDefinitionAst.Extent.EndLineNumber, StartColumnNumber = configurationDefinitionAst.Extent.StartColumnNumber, EndColumnNumber = configurationDefinitionAst.Extent.EndColumnNumber }; this.SymbolReferences.Add( new SymbolReference( SymbolType.Configuration, nameExtent)); return(AstVisitAction.Continue); }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { IScriptExtent nameExtent = new ScriptExtent() { Text = configurationDefinitionAst.InstanceName.Extent.Text, StartLineNumber = configurationDefinitionAst.Extent.StartLineNumber, EndLineNumber = configurationDefinitionAst.Extent.EndLineNumber, StartColumnNumber = configurationDefinitionAst.Extent.StartColumnNumber, EndColumnNumber = configurationDefinitionAst.Extent.EndColumnNumber }; this.findSymbolsVisitor.SymbolReferences.Add( new SymbolReference( SymbolType.Configuration, nameExtent)); return AstVisitAction.Continue; }
/// <summary/> public virtual AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) => DefaultVisit(configurationDefinitionAst);
public override StatementAst VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) => VisitStatement(base.VisitConfigurationDefinition(configurationDefinitionAst));
/// <summary/> public virtual object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationAst) { return null; }
public object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { return(false); }
/// <summary/> public virtual object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationAst) { return(null); }
public object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { throw new System.NotImplementedException(); }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { // // Check if the ScriptBlockAst contains NamedBlockAst other than the End block // ScriptBlockAst configBody = configurationDefinitionAst.Body.ScriptBlock; if (configBody.BeginBlock != null || configBody.ProcessBlock != null || configBody.DynamicParamBlock != null) { var unsupportedNamedBlocks = new NamedBlockAst[] { configBody.BeginBlock, configBody.ProcessBlock, configBody.DynamicParamBlock }; foreach (NamedBlockAst namedBlock in unsupportedNamedBlocks) { if (namedBlock != null) { _parser.ReportError(namedBlock.OpenCurlyExtent, () => ParserStrings.UnsupportedNamedBlockInConfiguration); } } // ToRemove: No need to continue the parsing if there is no EndBlock, check if (configBody.EndBlock == null) } return AstVisitAction.Continue; }
object ICustomAstVisitor2.VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) => ProcessRewriter(VisitConfigurationDefinition, configurationDefinitionAst);
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { object newParentObject = this.ConfigurationAction(configurationDefinitionAst.InstanceName.ToString(), configurationDefinitionAst.Extent, this.GetCurrentNestingLevel(), this.GetCurrentParentObject()); this.VisitChildren(configurationDefinitionAst.Body, newParentObject); return AstVisitAction.SkipChildren; }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { return(Visit(configurationDefinitionAst)); }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) => VisitAst(configurationDefinitionAst);
public object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { throw PSTraceSource.NewArgumentException(nameof(configurationDefinitionAst)); }
/// <summary/> public virtual AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { return AstVisitAction.Continue; }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst ast) { return(Check(ast)); }
public object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationAst) { return this.VisitPipeline(configurationAst.GenerateSetItemPipelineAst()); }
/// <summary/> public virtual AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { return(AstVisitAction.Continue); }
/// <summary> /// Generate auto complete results for identifier within configuration. /// Results are generated based on DynamicKeywords matches given identifier. /// For example, following "Fi" matches "File", and "Us" matches "User" /// /// Configuration /// { /// Fi^ /// Node("TargetMachine") /// { /// Us^ /// } /// } /// /// </summary> /// <param name="completionContext"></param> /// <param name="configureAst"></param> /// <param name="keywordAst"></param> /// <param name="matched"></param> /// <returns></returns> private List<CompletionResult> GetResultForIdentifierInConfiguration( CompletionContext completionContext, ConfigurationDefinitionAst configureAst, DynamicKeywordStatementAst keywordAst, out bool matched) { List<CompletionResult> results = null; matched = false; #if CORECLR // Microsoft.PowerShell.DesiredStateConfiguration is not in CORE CLR results = new List<CompletionResult>(); #else IEnumerable<DynamicKeyword> keywords = configureAst.DefinedKeywords.Where( k => // Node is special case, legal in both Resource and Meta configuration String.Compare(k.Keyword, @"Node", StringComparison.OrdinalIgnoreCase) == 0 || ( // Check compatibility between Resource and Configuration Type k.IsCompatibleWithConfigurationType(configureAst.ConfigurationType) && !DynamicKeyword.IsHiddenKeyword(k.Keyword) && !k.IsReservedKeyword ) ); if (keywordAst != null && completionContext.CursorPosition.Offset < keywordAst.Extent.EndOffset) keywords = keywordAst.Keyword.GetAllowedKeywords(keywords); if (keywords != null && keywords.Any()) { string commandName = (completionContext.WordToComplete ?? String.Empty) + "*"; var wildcardPattern = WildcardPattern.Get(commandName, WildcardOptions.IgnoreCase | WildcardOptions.CultureInvariant); // Filter by name var matchedResults = keywords.Where(k => wildcardPattern.IsMatch(k.Keyword)); if (matchedResults == null || !matchedResults.Any()) { // Fallback to all legal keywords in the configuration statement matchedResults = keywords; } else { matched = true; } foreach (var keyword in matchedResults) { string usageString = Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.GetDSCResourceUsageString(keyword); if (results == null) { results = new List<CompletionResult>(); } results.Add(new CompletionResult( keyword.Keyword, keyword.Keyword, CompletionResultType.DynamicKeyword, usageString)); } } #endif return results; }
public object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { return(AutomationNull.Value); }
public override AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst ast) { return Check(ast); }