toggleterm.nvim icon indicating copy to clipboard operation
toggleterm.nvim copied to clipboard

End of line not interpreted in powershell on linux

Open MFreeze opened this issue 10 months ago • 2 comments

Hi,

I'm using toggle-term without any issues on linux for zsh, bash, python, ...

However when using it with powershell on linux i'm encountering the following issue. I have the following powershell script:

Param (
  [Parameter(Mandatory, Position = 0)]
  [string] $Source,
  [Parameter(Mandatory, Position = 1)]
  [string] $Target
)

Function Test-Container {
  If (Test-Path $Args[0] -PathType Container) { Return $True }
  Else { Return $False }
}

Get-ChildItem -Path $Source -Recurse | ForEach-Object {
  $sourceFileName = $_.FullName
  $targetFileName = $_.FullName.Replace($Source, $Target)

  If (Test-Container $PSItem) {
    If (-not (Test-Path $targetFileName)) {
      Write-Host ("New folder {0}" -f $targetFileName) -ForegroundColor Yellow
      New-Item -Path $targetFileName -ItemType Directory | Out-Null
    }
  }

  Else {
    If (Test-Path $targetFileName) {
      $targetFile = Get-Item -Path $targetFileName
      If (($_.LastWriteTime -ne $targetFile.LastWriteTime) -or `
          ($_.Length -ne $targetFile.Length)) {
        Write-Host ("Modified file {0}" -f $sourceFileName) -ForegroundColor Red
        Copy-Item -Path $sourceFileName -Destination $targetFileName
      }
    }
    Else {
      Write-Host ("New file {0}" -f $sourceFileName) -ForegroundColor Green
      Copy-Item -Path $sourceFileName -Destination $targetFileName
    }
  }
}

Get-ChildItem -Path $Target -Recurse | ForEach-Object {
  If (-not (Test-Path $_.FullName.Replace($Target, $Source))) {
    Write-Host ("Extra {0} {1}" -f ((Test-Container $_) ? 'folder' : 'file'), `
        $_.FullName) -ForegroundColor Red
    Remove-Item -Path $_.FullName -Recurse
  }
}

I toggle my terminal as usual with ToggleTerm, launch a powershell interpreter into it with: pwsh -NoLogo. And then tries to send the whole file to the terminal using ToggleTermSendVisualLines. The whole is indeed sent to the terminal, but appears to be a one liner, in other terms I get the following result:

Param (  [Parameter(Mandatory, Position = 0)]  [string] $Source,  [Parameter(Mandatory, Position = 1)]  [string] $Target)Function Test-Container {  If (Test-Path $Args[0] -PathType Container) { Return $True }  Else { Return $False }}Get-ChildItem -Path $Source -Recurse | ForEach-Object {  $sourceFileName = $_.FullName  $targetFileName = $_.FullName.Replace($Source, $Target)  If (Test-Container $PSItem) {    If (-not (Test-Path $targetFileName)) {      Write-Host ("New folder {0}" -f $targetFileName) -ForegroundColor Yellow      New-Item -Path $targetFileName -ItemType Directory | Out-Null    }  }  Else {    If (Test-Path $targetFileName) {      $targetFile = Get-Item -Path $targetFileName      If (($_.LastWriteTime -ne $targetFile.LastWriteTime) -or `          ($_.Length -ne $targetFile.Length)) {        Write-Host ("Modified file {0}" -f $sourceFileName) -ForegroundColor Red        Copy-Item -Path $sourceFileName -Destination $targetFileName      }    }    Else {      Write-Host ("New file {0}" -f $sourceFileName) -ForegroundColor Green      Copy-Item -Path $sourceFileName -Destination $targetFileName    }  }}Get-ChildItem -Path $Target -Recurse | ForEach-Object {  If (-not (Test-Path $_.FullName.Replace($Target, $Source))) {    Write-Host ("Extra {0} {1}" -f ((Test-Container $_) ? 'folder' : 'file'), `        $_.FullName) -ForegroundColor Red    Remove-Item -Path $_.FullName -Recurse  }}

It seems that the ends of line are not interpreted when transfering content.

I'm running nvim 0.9.5 on arch linux.

MFreeze avatar Apr 11 '24 10:04 MFreeze

@MFreeze I do absolutely zero work ever with powershell and generally don't add any functionality or fix bugs around that. All the logic relating to this is user contributed. So will leave this open for a bit for Powershell Users to open PRs for it otherwise will have to declare bankruptcy if there are no takers

akinsho avatar Apr 19 '24 11:04 akinsho

Fair enough ^^

MFreeze avatar Apr 21 '24 09:04 MFreeze