Make the ViEditVisually function more flexible by allowing $env:VISUAL / $env:EDITOR to contain an executable name *with options*
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
Research direction
Start at ViEditVisually and trace how $env:VISUAL and $env:EDITOR are resolved. Verify the existing executable-only behavior, then cover command prefixes, quoted executable names, and arguments; done means VS Code-style values work without helper scripts while invalid configurations still beep.
Written by the indexing model from the issue text.
Description
Prerequisites
- Write a descriptive title.
Description of the new feature/enhancement
Currently $env:VISUAL / $env:EDITOR may only contain an executable name or path, not also options.
However, to make your favorite editor act properly with this feature - a blocking invocation that returns control to the terminal when the window is closed - options may be required.
For instance, VSCode (Visual Studio Code) requires code --new-window --wait <file> ...
Therefore, you must currently create a helper (non-PowerShell) shell script / batch file in order to incorporate the necessary option, which is a lot of ceremony.
To address that, the interpretation of $env:VISUAL / $env:EDITOR could be extended to allow specifying a command line (prefix) as follows:
Proposed technical implementation details (optional)
-
First, as currently, see if the value as a whole refers to an executable (typically via
$env:PATH) and, if so, use that. -
If not, see if the first whitespace-separated / double-quoted token refers to an executable, and use that, passing all remaining tokens through as options (arguments).
-
If not, as currently, beep to indicate that no (valid) editor is configured.
For instance, this would allow users to set $env:VISUAL as follows for VSCode:
$env:VISUAL = 'code --new-window --wait'
Note: Git, which also respects these environment variables, already supports this.
- Dominant language
- C#
- Stars
- 4.4k
- Forks
- 341
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PowerShell/PSReadLine
-
Needs-Triage :mag:
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
PowerShell/PSReadLine#5205 ·
-
Needs-Triage :mag:
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PowerShell/PSReadLine#5195 ·
-
Needs-Triage :mag:
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PowerShell/PSReadLine#5121 ·
-
Needs-Triage :mag:
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
PowerShell/PSReadLine#5045 ·
-
Area-CommandHelp Issue-Enhancement
Difficulty 1/5 Under an hour Newbie friendliness 68/100
PowerShell/PSReadLine#3470 · 3 reactions ·
All issues in PowerShell/PSReadLine
Similar issues
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 75/100
sillsdev/languageforge-lexbox#2665 ·
-
bug documentation frontend
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
azurenoops/spin_agent#975 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SubtitleEdit/subtitleedit#15108 · 1 comment ·