override fun getSuggestion()

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
    }