Interpret control characters pasted into `-LiteralPath` arguments verbatim – do not replace them.

Open
#4,447 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp
Domain
cli

Research direction

Start by reading the paste-bracketing request in PSReadLine issue 1471 and the indentation behavior discussed in issue 144. The work is done when pasted inline tabs are preserved verbatim while tabs that prefix line content continue to receive the existing indentation handling.

Written by the indexing model from the issue text.

Description

Issue-Enhancement Needs-Triage :mag:
Prerequisites
  • Write a descriptive title.
Description of the new feature/enhancement

Tabs are valid in UNIX file paths. However, when pasted into PowerShell running as an interactive shell, they are converted into spaces, due to issues/144#event-1337497655. ^1 This means that accessing paths with tabs inside them is impossible in an interactive shell, despite being possible in a .PS1 script.

I propose that inline tabs (those not prepended to a line's non-whitespace content) be retained, verbatim.

Proposed technical implementation details (optional)

Because issues/144#event-1337497655 solely cares about indentative tabs, retaining inline tabs wouldn't be problematic. Likewise, tabs prefixing a line do not impact this use case, because any path with a prefixed tab shall regardless be escaped (as '$Path').

However, PSReadLine currently pastes content by simulating typing. ^2 https://github.com/PowerShell/PSReadLine/issues/1471#issue-600646593 requests that paste bracketing be implemented so that functionality like this can be implemented, which means that this FR depends upon its implementation.

Dominant language
C#
Stars
4.4k
Forks
341
PR merge metrics
No merged PRs in 30d

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.

More from PowerShell/PSReadLine

All issues in PowerShell/PSReadLine

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.