コード例 #1
0
        internal static List <Result> GetEnvironmentStringPathSuggestions(string querySearch, Query query, PluginInitContext context)
        {
            var results = new List <Result>();

            var environmentVariables = LoadEnvironmentStringPaths();
            var search = querySearch;

            if (querySearch.EndsWith("%") && search.Length > 1)
            {
                // query starts and ends with a %, find an exact match from env-string paths
                search = querySearch.Substring(1, search.Length - 2);

                if (environmentVariables.ContainsKey(search))
                {
                    var expandedPath = environmentVariables[search];

                    results.Add(ResultManager.CreateFolderResult($"%{search}%", expandedPath, expandedPath, query));

                    return(results);
                }
            }

            if (querySearch == "%")
            {
                search = ""; // Get all paths
            }
            else
            {
                search = search.Substring(1);
            }

            foreach (var p in environmentVariables)
            {
                if (p.Key.StartsWith(search, StringComparison.InvariantCultureIgnoreCase))
                {
                    results.Add(ResultManager.CreateFolderResult($"%{p.Key}%", p.Value, p.Value, query));
                }
            }

            return(results);
        }