diff --git a/experimental-feature-linux.json b/experimental-feature-linux.json
index a71c0c3ed2..94d88a4a8d 100644
--- a/experimental-feature-linux.json
+++ b/experimental-feature-linux.json
@@ -1,5 +1,4 @@
[
- "PSAnsiRenderingFileInfo",
"PSCommandNotFoundSuggestion",
"PSLoadAssemblyFromNativeCode",
"PSNativeCommandErrorActionPreference",
diff --git a/experimental-feature-windows.json b/experimental-feature-windows.json
index a71c0c3ed2..94d88a4a8d 100644
--- a/experimental-feature-windows.json
+++ b/experimental-feature-windows.json
@@ -1,5 +1,4 @@
[
- "PSAnsiRenderingFileInfo",
"PSCommandNotFoundSuggestion",
"PSLoadAssemblyFromNativeCode",
"PSNativeCommandErrorActionPreference",
diff --git a/src/System.Management.Automation/engine/ExperimentalFeature/ExperimentalFeature.cs b/src/System.Management.Automation/engine/ExperimentalFeature/ExperimentalFeature.cs
index 8c3e1c070e..6caea95de5 100644
--- a/src/System.Management.Automation/engine/ExperimentalFeature/ExperimentalFeature.cs
+++ b/src/System.Management.Automation/engine/ExperimentalFeature/ExperimentalFeature.cs
@@ -114,9 +114,6 @@ namespace System.Management.Automation
new ExperimentalFeature(
name: "PSLoadAssemblyFromNativeCode",
description: "Expose an API to allow assembly loading from native code"),
- new ExperimentalFeature(
- name: "PSAnsiRenderingFileInfo",
- description: "Enable coloring for FileInfo objects"),
new ExperimentalFeature(
name: PSNativeCommandErrorActionPreferenceFeatureName,
description: "Native commands with non-zero exit codes issue errors according to $ErrorActionPreference when $PSNativeCommandUseErrorActionPreference is $true"),
diff --git a/src/System.Management.Automation/namespaces/FileSystemProvider.cs b/src/System.Management.Automation/namespaces/FileSystemProvider.cs
index 3c0aeaddc7..07625fc2ab 100644
--- a/src/System.Management.Automation/namespaces/FileSystemProvider.cs
+++ b/src/System.Management.Automation/namespaces/FileSystemProvider.cs
@@ -2068,43 +2068,32 @@ namespace Microsoft.PowerShell.Commands
/// Name if a file or directory, Name -> Target if symlink.
public static string NameString(PSObject instance)
{
- if (ExperimentalFeature.IsEnabled("PSAnsiRenderingFileInfo"))
+ if (instance?.BaseObject is FileSystemInfo fileInfo)
{
- if (instance?.BaseObject is FileSystemInfo fileInfo)
+ if (InternalSymbolicLinkLinkCodeMethods.IsReparsePointLikeSymlink(fileInfo))
{
- if (InternalSymbolicLinkLinkCodeMethods.IsReparsePointLikeSymlink(fileInfo))
- {
- return $"{PSStyle.Instance.FileInfo.SymbolicLink}{fileInfo.Name}{PSStyle.Instance.Reset} -> {fileInfo.LinkTarget}";
- }
- else if (fileInfo.Attributes.HasFlag(FileAttributes.Directory))
- {
- return $"{PSStyle.Instance.FileInfo.Directory}{fileInfo.Name}{PSStyle.Instance.Reset}";
- }
- else if (PSStyle.Instance.FileInfo.Extension.ContainsKey(fileInfo.Extension))
- {
- return $"{PSStyle.Instance.FileInfo.Extension[fileInfo.Extension]}{fileInfo.Name}{PSStyle.Instance.Reset}";
- }
- else if ((Platform.IsWindows && CommandDiscovery.PathExtensions.Contains(fileInfo.Extension.ToLower())) ||
- (!Platform.IsWindows && Platform.NonWindowsIsExecutable(fileInfo.FullName)))
- {
- return $"{PSStyle.Instance.FileInfo.Executable}{fileInfo.Name}{PSStyle.Instance.Reset}";
- }
- else
- {
- return fileInfo.Name;
- }
+ return $"{PSStyle.Instance.FileInfo.SymbolicLink}{fileInfo.Name}{PSStyle.Instance.Reset} -> {fileInfo.LinkTarget}";
}
+ else if (fileInfo.Attributes.HasFlag(FileAttributes.Directory))
+ {
+ return $"{PSStyle.Instance.FileInfo.Directory}{fileInfo.Name}{PSStyle.Instance.Reset}";
+ }
+ else if (PSStyle.Instance.FileInfo.Extension.ContainsKey(fileInfo.Extension))
+ {
+ return $"{PSStyle.Instance.FileInfo.Extension[fileInfo.Extension]}{fileInfo.Name}{PSStyle.Instance.Reset}";
+ }
+ else if ((Platform.IsWindows && CommandDiscovery.PathExtensions.Contains(fileInfo.Extension.ToLower())) ||
+ (!Platform.IsWindows && Platform.NonWindowsIsExecutable(fileInfo.FullName)))
+ {
+ return $"{PSStyle.Instance.FileInfo.Executable}{fileInfo.Name}{PSStyle.Instance.Reset}";
+ }
+ else
+ {
+ return fileInfo.Name;
+ }
+ }
- return string.Empty;
- }
- else
- {
- return instance?.BaseObject is FileSystemInfo fileInfo
- ? InternalSymbolicLinkLinkCodeMethods.IsReparsePointLikeSymlink(fileInfo)
- ? $"{fileInfo.Name} -> {fileInfo.LinkTarget}"
- : fileInfo.Name
- : string.Empty;
- }
+ return string.Empty;
}
///
diff --git a/test/powershell/Modules/Microsoft.PowerShell.Management/Get-Item.Tests.ps1 b/test/powershell/Modules/Microsoft.PowerShell.Management/Get-Item.Tests.ps1
index 35c05b1bb1..4efc250e0d 100644
--- a/test/powershell/Modules/Microsoft.PowerShell.Management/Get-Item.Tests.ps1
+++ b/test/powershell/Modules/Microsoft.PowerShell.Management/Get-Item.Tests.ps1
@@ -208,17 +208,12 @@ Describe "Get-Item environment provider on Windows with accidental case-variant
Describe 'Formatting for FileInfo objects' -Tags 'CI' {
BeforeAll {
- $PSDefaultParameterValues.Add('It:Skip', (-not $EnabledExperimentalFeatures.Contains('PSAnsiRenderingFileInfo')))
$extensionTests = [System.Collections.Generic.List[HashTable]]::new()
foreach ($extension in @('.zip', '.tgz', '.tar', '.gz', '.nupkg', '.cab', '.7z', '.ps1', '.psd1', '.psm1', '.ps1xml')) {
$extensionTests.Add(@{extension = $extension})
}
}
- AfterAll {
- $PSDefaultParameterValues.Remove('It:Skip')
- }
-
It 'File type should have correct color' -TestCases $extensionTests {
param($extension)
@@ -250,14 +245,6 @@ Describe 'Formatting for FileInfo objects' -Tags 'CI' {
}
Describe 'Formatting for FileInfo requiring admin' -Tags 'CI','RequireAdminOnWindows' {
- BeforeAll {
- $PSDefaultParameterValues.Add('It:Skip', (-not $EnabledExperimentalFeatures.Contains('PSAnsiRenderingFileInfo')))
- }
-
- AfterAll {
- $PSDefaultParameterValues.Remove('It:Skip')
- }
-
It 'Symlink should have correct color' {
$linkPath = Join-Path -Path $TestDrive -ChildPath 'link'
$link = New-Item -ItemType SymbolicLink -Name 'link' -Value $TestDrive -Path $TestDrive