PowerShell / PowerShell/PowerShellEditorServices

Feature Request: Add ability to change the language through $psEditor

Open
#1,539 2 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-API Issue-Enhancement
Dominant language
C#
Stars
767
Forks
266
Avg merge
3d 16h
Merged PRs (30d)
1

Description

After some contemplation, I've realized there's no need to make a request to change/add to the PSES module, as I can just do it in my profile. However, what I would like to see is the ability to change the language (likely with a SetLanguage() method on one of the objects somewhere).

Would there be appetite for adding this in at some point? I understand the PowerShell team is busy on other areas of the codebase and I don't want to put forward a suggestion of anything that might set back that work or unnecessarily distract from it.

What I would like to see is the ability to run something like: $psEditor.GetEditorContext().CurrentFile.SetLanguage('markdown') and have the current file's language mode set to markdown.

Original request here for posterity:

I'm not entirely sure the best place for this, I found this when working on some things in vscode, but the underlying behaviour is in the PSES module, but also some of it depends on vscode... So I'll start it over here and it can be moved if needed.

I was doing some stuff in vscode, and I found myself with the need to take the output of my function Get-IntuneDetectionScript and output it into a new editor window. I found that I could do this with Out-CurrentFile -AsNewFile, however this output as a herestring. Thinking about this, I believe the reason is that typically when outputting to the current file this behaviour makes sense. However, in my opinion when outputting to a new file this doesn't make sense.

Based on my use case, I'd like to make two feature requests:

  1. Add a Out-NewFile function that does what Out-CurrentFile -AsNewFile currently does, only it doesn't do the herestring.
  2. Assuming it's not too much work: add a -Language parameter to Out-NewFile that takes in the language for the new file and sets it.
  • This is the part I'm not sure on complexity-wise. Setting the language in typescript is a minor adjustment

With these suggestions you could do things like:

Get-IntuneDetectionScript "Whatever App" | Out-NewFile -Language powershell
Get-IntuneAppDescription "Whatever App" | Out-NewFile -Language markdown

I've got a branch that includes the first feature request over here: https://github.com/corbob/PowerShellEditorServices/tree/out-newfile (To see the changes, they're all (currently) encapsulated in a single commit: https://github.com/corbob/PowerShellEditorServices/commit/3c33c968a03348f8678a3d45b1841250710ea055)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the $psEditor.GetEditorContext().CurrentFile entry point and the existing Out-CurrentFile -AsNewFile behavior. No implementation files or tests are named; done would require agreeing on the API, implementing language changes for the current file, and validating the requested PowerShell and Markdown examples.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, typescript, vscode
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.