/// <summary>
        /// Finds references for specific assets.
        /// </summary>
        /// <param name="assets">Specific assets.</param>
        /// <param name="showResults">Shows results in %Maintainer window if true.</param>
        /// <returns>Array of ProjectReferenceItem for the TreeView buildup or manual parsing.</returns>
        public static ProjectReferenceItem[] FindAssetsReferences(string[] assets, bool showResults = true)
        {
            var assetsFilters = new FilterItem[assets.Length];

            for (var i = 0; i < assets.Length; i++)
            {
                assetsFilters[i] = FilterItem.Create(assets[i], FilterKind.Path);
            }

            return(ProjectScopeReferencesFinder.FindAssetsReferences(assetsFilters, false, showResults));
        }
        /// <summary>
        /// Returns references of all assets at the project, e.g. where each asset is referenced.
        /// </summary>
        /// <param name="showResults">Shows results in %Maintainer window if true.</param>
        /// <returns>Array of ProjectReferenceItem for the TreeView buildup or manual parsing.</returns>
        public static ProjectReferenceItem[] FindAllAssetsReferences(bool showResults = true)
        {
            if (!UserSettings.References.fullProjectScanWarningShown)
            {
                if (!EditorUtility.DisplayDialog(ModuleName,
                                                 "Full project scan may take significant amount of time if your project is very big.\nAre you sure you wish to make a full project scan?\nThis message shows only before first full scan.",
                                                 "Yes", "Nope"))
                {
                    return(null);
                }

                UserSettings.References.fullProjectScanWarningShown = true;
                ProjectSettings.Save();
            }

            return(ProjectScopeReferencesFinder.FindAssetsReferences(null, null, showResults));
        }
        /// <summary>
        /// Finds references for current Project View selection.
        /// </summary>
        /// <param name="showResults">Shows results in %Maintainer window if true.</param>
        /// <returns>Array of ProjectReferenceItem for the TreeView buildup or manual parsing.</returns>
        public static ProjectReferenceItem[] FindSelectedAssetsReferences(bool showResults = true)
        {
            var selection = ProjectScopeReferencesFinder.GetSelectedAssets();

            return(FindAssetsReferences(selection));
        }