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 = FSharpNamesUtil.RemoveBackticks(qualifier.GetText()); Builder.StartPart(new QualifiedNamespacePart(qualifier.GetTreeStartOffset(), Builder.Intern(qualifierName))); } declaration.Accept(this); foreach (var _ in qualifiers) { Builder.EndPart(); } } }
public FSharpReferenceSearcher(IDeclaredElementsSet elements, bool findCandidates) { myElements = elements; myFindCandidates = findCandidates; myElementNames = new HashSet <string>(); foreach (var element in elements) { myElementNames.AddRange(FSharpNamesUtil.GetPossibleSourceNames(element)); } }
public FSharpReferenceSearcher(IDeclaredElementsSet elements, bool findCandidates) { myElements = new DeclaredElementsSet(elements.Where(e => !(e is IFSharpSymbolElement))); myFSharpSymbols = elements.OfType <IFSharpSymbolElement>().Select(e => e.Symbol).ToIList(); myFindCandidates = findCandidates; myElementNames = new HashSet <string>(); foreach (var element in elements) { myElementNames.AddRange(FSharpNamesUtil.GetPossibleSourceNames(element)); } }
public static string[] GetQualifiersAndName(this FSharpIdentifierToken token) { if (!(token.Parent is ILongIdentifier longIdentifier)) { return new[] { FSharpNamesUtil.RemoveBackticks(token.GetText()) } } ; var names = new FrugalLocalHashSet <string>(); foreach (var id in longIdentifier.IdentifiersEnumerable) { names.Add(FSharpNamesUtil.RemoveBackticks(id.GetText())); if (id == token) { break; } } return(names.ToArray()); }
public static TreeTextRange GetNameRange([CanBeNull] this IFSharpIdentifier identifier) { if (identifier == null) { return(TreeTextRange.InvalidRange); } if (identifier is IActivePatternId activePatternId) { return(activePatternId.GetCasesRange()); } var nameRange = identifier.GetTreeTextRange(); var identifierToken = identifier.IdentifierToken; if (identifierToken == null) { return(nameRange); } return(FSharpNamesUtil.IsEscapedWithBackticks(identifierToken.GetText()) ? nameRange.TrimLeft(2).TrimRight(2) : nameRange); }
public override IEnumerable <string> GetAllPossibleWordsInFile(IDeclaredElement element) => FSharpNamesUtil.GetPossibleSourceNames(element);
public IEnumerable <string> GetAllPossibleWordsInFile(IDeclaredElement element) { return(FSharpNamesUtil.GetPossibleSourceNames(element)); }