@@ -23,12 +23,17 @@ private static Dictionary<string, string> EnvStringPaths
23
23
24
24
internal static bool IsEnvironmentVariableSearch ( string search )
25
25
{
26
- return search . StartsWith ( "%" )
26
+ return search . StartsWith ( "%" )
27
27
&& search != "%%"
28
- && ! search . Contains ( " \\ " )
28
+ && ! search . Contains ( ' \\ ' )
29
29
&& EnvStringPaths . Count > 0 ;
30
30
}
31
31
32
+ internal static bool BeginsWithEnvironmentVar ( string search )
33
+ {
34
+ return search [ 0 ] == '%' && search [ 1 ..] . Contains ( "%\\ " ) ;
35
+ }
36
+
32
37
internal static Dictionary < string , string > LoadEnvironmentStringPaths ( )
33
38
{
34
39
var envStringPaths = new Dictionary < string , string > ( StringComparer . InvariantCultureIgnoreCase ) ;
@@ -57,19 +62,7 @@ internal static Dictionary<string, string> LoadEnvironmentStringPaths()
57
62
58
63
internal static string TranslateEnvironmentVariablePath ( string environmentVariablePath )
59
64
{
60
- var splitSearch = environmentVariablePath . Substring ( 1 ) . Split ( "%" ) ;
61
- var exactEnvStringPath = splitSearch [ 0 ] ;
62
-
63
- // if there are more than 2 % characters in the query, don't bother
64
- if ( splitSearch . Length == 2 && EnvStringPaths . ContainsKey ( exactEnvStringPath ) )
65
- {
66
- var queryPartToReplace = $ "%{ exactEnvStringPath } %";
67
- var expandedPath = EnvStringPaths [ exactEnvStringPath ] ;
68
- // replace the %envstring% part of the query with its expanded equivalent
69
- return environmentVariablePath . Replace ( queryPartToReplace , expandedPath ) ;
70
- }
71
-
72
- return environmentVariablePath ;
65
+ return Environment . ExpandEnvironmentVariables ( environmentVariablePath ) ;
73
66
}
74
67
75
68
internal static List < Result > GetEnvironmentStringPathSuggestions ( string querySearch , Query query , PluginInitContext context )
@@ -86,9 +79,9 @@ internal static List<Result> GetEnvironmentStringPathSuggestions(string querySea
86
79
if ( EnvStringPaths . ContainsKey ( search ) )
87
80
{
88
81
var expandedPath = EnvStringPaths [ search ] ;
89
-
82
+
90
83
results . Add ( ResultManager . CreateFolderResult ( $ "%{ search } %", expandedPath , expandedPath , query ) ) ;
91
-
84
+
92
85
return results ;
93
86
}
94
87
}
@@ -101,7 +94,7 @@ internal static List<Result> GetEnvironmentStringPathSuggestions(string querySea
101
94
{
102
95
search = search . Substring ( 1 ) ;
103
96
}
104
-
97
+
105
98
foreach ( var p in EnvStringPaths )
106
99
{
107
100
if ( p . Key . StartsWith ( search , StringComparison . InvariantCultureIgnoreCase ) )
0 commit comments