def METHOD_NAME(self, file_handle: io.FileIO, virtual_file_path: dict[str, list[str]], analyses: dict) -> Schema:
    """
    After only receiving text files thanks to the whitelist, we try to detect the correct scripting language
    and then call a linter if a supported language is detected
    """
    del analyses
    language, linguist_json = None, None
    file_names = [Path(file_handle.name).name, *_get_paths_with_different_suffix(virtual_file_path)]
    for name in file_names:
        linguist_json = run_linguist(file_handle.name, name)
        language = linguist_json.get('language')
        if language is not None:
            break
    if language is None:
        return AnalysisPlugin.Schema(
            linguist=linguist_json,
            language=None,
            issues=None,
        )
    language = language.lower()
    if language not in LINTER_IMPLS:
        return AnalysisPlugin.Schema(
            linguist=linguist_json,
            language=language,
            issues=None,
        )
    issues = LINTER_IMPLS[language](file_handle.name)
    issues = sorted(issues, key=lambda k: k['symbol'])
    return AnalysisPlugin.Schema(
        linguist=linguist_json,
        language=language,
        issues=issues,
    )