I'd like to start using a custom extension for some of my Powershell scripts, but when I drag them into the PowerShell ISE, they are treated as plaintext, and I don't get any syntax highlighting. Is there anything I can do to get the ISE to recognize my custom file extension as a PowerShell script?
-
1I would like to know this too. But I have a feeling we will have to wait for MS to fix this. – JasonMArcher Jun 18 '11 at 17:31
-
Side note: found this question after all my syntax highlighting was green but that was cause I was using the "monochrome green" theme. – jamie Mar 22 '19 at 17:50
3 Answers
Can't be done because, as of the current version, the ISE determines whether to turn syntax highlighting on or not based on the file name extension: this behavior can't be changed as the recognized extensions are (unfortunately) fixed in the code.
They are, of course:
- .ps1
- .psm1
- .psd1
For those who are wondering, the ISE determines this within the IsPowerShellSourceCodeFile
internal property of the Microsoft.PowerShell.Host.ISE.ISEFile
type, exported by the Microsoft.PowerShell.GPowerShell
assembly. And no, reflection does not allow to cheat it, as trying to inject one of the supported extensions into the Extension
property causes the ISE to crash.

- 6,138
- 22
- 22
For me, the PS script file extension was inadvertently .ps
, when I renamed it to have .ps1
extension, all the syntax highlighting revived. Hope this helps others.
-
This advice appears to already be stated in the accepted answer. – Brian61354270 Feb 18 '20 at 20:08