in src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/FileStructureSuggester.kt [29:57]
override fun getSuggestion(action: Action): Suggestion {
val language = action.language ?: return NoSuggestion
val langSupport = LanguageSupport.getForLanguage(language) ?: return NoSuggestion
when (action) {
is EditorFindAction -> {
prevActionIsEditorFindAction = true
}
is EditorFocusGainedAction -> {
if (!prevActionIsEditorFindAction) return NoSuggestion // check that previous action is Find
val psiFile = action.psiFile ?: return NoSuggestion
val project = action.project ?: return NoSuggestion
val findModel = getFindModel(project)
val textToFind = findModel.stringToFind
val definition = langSupport.getDefinitionOnCaret(psiFile, action.editor.caretModel.offset)
if (definition is PsiNamedElement && langSupport.isFileStructureElement(definition) &&
definition.name?.contains(textToFind, !findModel.isCaseSensitive) == true
) {
prevActionIsEditorFindAction = false
return createSuggestion()
}
}
else -> {
prevActionIsEditorFindAction = false
NoSuggestion
}
}
return NoSuggestion
}