void (@NotNull Editor hostEditor, @NotNull PsiFile hostFile, @NotNull ShowIntentionsPass.IntentionsInfo intentions, int passIdToShowIntentionsFor, int offset) { Project project = hostFile.getProject(); Document hostDocument = hostEditor.getDocument(); int line = hostDocument.getLineNumber(offset); MarkupModelEx model = (MarkupModelEx)DocumentMarkupModel.forDocument(hostDocument, project, true); List<RangeHighlighterEx> result = new ArrayList<>(); model.processRangeHighlightersOverlappingWith(hostDocument.getLineStartOffset(line), hostDocument.getLineEndOffset(line), Processors.cancelableCollectProcessor(result)); Collection<AnAction> actions = result.stream() .map(RangeHighlighter::getGutterIconRenderer) .filter(Objects::nonNull) .filter(r -> !DumbService.isDumb(project) || DumbService.isDumbAware(r)) .flatMap(r -> { ActionGroup group = r.getPopupMenuActions(); List<AnAction> clickActions = Arrays.asList(r.getClickAction(), r.getMiddleButtonClickAction(), r.getRightButtonClickAction()); return (group == null ? clickActions : ContainerUtil.append(clickActions, group.getChildren(null))).stream(); }) .filter(Objects::nonNull) .collect(Collectors.toCollection(LinkedHashSet::new)); intentions.guttersToShow.addAll(actions); }