public void ProcessNamedModuleLikeDeclaration(INamedModuleLikeDeclaration decl, Part part) { var qualifiers = decl.LongIdentifier?.Qualifiers ?? TreeNodeCollection <ITokenNode> .Empty; foreach (var qualifier in qualifiers) { var qualifierName = Builder.Intern(qualifier.GetText().RemoveBackticks()); Builder.StartPart(new QualifiedNamespacePart(qualifier.GetTreeStartOffset(), qualifierName)); } Builder.StartPart(part); FinishModuleLikeDeclaration(decl); foreach (var _ in qualifiers) { Builder.EndPart(); } }
public override void VisitFSharpFile(IFSharpFile fsFile) { fsFile.TokenBuffer = fsFile.ActualTokenBuffer; // todo: remove this when/if a proper lexer is implemented var sourceFile = fsFile.GetSourceFile(); var fileKind = GetFSharpFileKind(fsFile); var hasPairFile = myCheckerService.HasPairFile(sourceFile); Builder.CreateProjectFilePart(new FSharpProjectFilePart(sourceFile, fileKind, hasPairFile)); foreach (var declaration in fsFile.DeclarationsEnumerable) { var qualifiers = declaration.LongIdentifier.Qualifiers; foreach (var qualifier in qualifiers) { var qualifierName = qualifier.GetText().RemoveBackticks(); Builder.StartPart(new QualifiedNamespacePart(qualifier.GetTreeStartOffset(), Builder.Intern(qualifierName))); } declaration.Accept(this); foreach (var _ in qualifiers) { Builder.EndPart(); } } }
public override void VisitFSharpFile(IFSharpFile fsFile) { var sourceFile = fsFile.GetSourceFile(); if (sourceFile == null) { return; } var fileKind = GetFSharpFileKind(fsFile); var hasPairFile = myCheckerService.HasPairFile(sourceFile); Builder.CreateProjectFilePart(new FSharpProjectFilePart(sourceFile, fileKind, hasPairFile)); foreach (var declaration in fsFile.DeclarationsEnumerable) { var qualifiers = declaration.LongIdentifier?.Qualifiers; if (qualifiers == null) { declaration.Accept(this); continue; } foreach (var qualifier in qualifiers) { var qualifierName = qualifier.GetText().RemoveBackticks(); Builder.StartPart(new QualifiedNamespacePart(qualifier.GetTreeStartOffset(), Builder.Intern(qualifierName))); } declaration.Accept(this); foreach (var _ in qualifiers) { Builder.EndPart(); } } }
public void ProcessQualifiableModuleLikeDeclaration(IQualifiableModuleLikeDeclaration decl, Part part) { StartNamespaceQualifier(decl.QualifierReferenceName); Builder.StartPart(part); FinishModuleLikeDeclaration(decl); EndNamespaceQualifier(decl.QualifierReferenceName); }