protected static HighlightingInfo CreateHighlighting([NotNull] ITreeNode token, string highlightingAttributeId) { var range = token.GetNavigationRange(); var highlighting = new FSharpIdentifierHighlighting(highlightingAttributeId, range); return(new HighlightingInfo(range, highlighting)); }
private void HighlightUses(Action <DaemonStageResult> committer, IEnumerable <FSharpResolvedSymbolUse> symbols, int allSymbolsCount) { var highlightings = new List <HighlightingInfo>(allSymbolsCount); foreach (var resolvedSymbolUse in symbols) { var symbolUse = resolvedSymbolUse.SymbolUse; var symbol = symbolUse.Symbol; var highlightingId = symbolUse.IsFromComputationExpression ? HighlightingAttributeIds.KEYWORD : symbol.GetHighlightingAttributeId(); if (symbolUse.IsFromDefinition && symbol is FSharpMemberOrFunctionOrValue mfv) { if (myDocument.Buffer.GetText(resolvedSymbolUse.Range).Equals("new", StringComparison.Ordinal) && mfv.LogicalName.Equals(".ctor", StringComparison.Ordinal)) { continue; } } var documentRange = new DocumentRange(myDocument, resolvedSymbolUse.Range); var highlighting = new FSharpIdentifierHighlighting(highlightingId, documentRange); highlightings.Add(new HighlightingInfo(documentRange, highlighting)); SeldomInterruptChecker.CheckForInterrupt(); } committer(new DaemonStageResult(highlightings)); }