powershell 使用Visual Studio代码查看我的函数的文档字符串

qpgpyjmq  于 2022-11-10  发布在  Shell
关注(0)|答案(3)|浏览(158)

我不熟悉Visual Studio代码,我开始使用它来开发PowerShell脚本。

我看到,当我将光标放在函数名上时,我会得到该函数参数的概述,但当我使用我自己的定制函数执行此操作时,它不会执行此操作。
如何声明可通过Visual Studio代码在概述中显示的PowerShell函数的文档?
我试着这么做:

<#
.Description
Get-Function displays the name and syntax of all functions in the session.

# >

function test([string]$print){}

<# Setup the working directories if they do not exist #>
If(!(Test-Path $WORKING_DIRECTORY)) {test}

但这似乎并不管用。
非常感谢

u91tlkcl

u91tlkcl1#

在描述中添加.PARAMETER对我很有效。还请注意,我相信您必须保存并运行脚本一次,才能显示它。

<#
.Description
Get-Function displays the name and syntax of all functions in the session.
.PARAMETER  

# >

function test([string]$print){Write-Host $print}

If(Test-Path $env:userprofile) {test -print "Test123"}

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comment_based_help?view=powershell-6

lo8azlld

lo8azlld2#

我之前的回答是不正确的,尽管阅读Comment Based Help仍然是记录cmdlet的好主意。
为了让vscode能够了解您的函数定义,需要在其内部PowerShell主机中定义函数。如果可以打开Powershell Integrated终端,就可以点源代码(运行类似. myScript.ps1的脚本来读取其中的函数定义。在运行任何要执行的代码之前,您可能需要make sure the script wasn't dot-sourced(基本上是将运行时代码放在一个if块中,检查脚本是否是点源代码的,但将您的函数定义保留在这个条件之外)。
一旦在Powershell Integrated终端中对脚本进行了点源代码处理,您就会看到想要的用法工具提示弹出窗口。要“自动”执行此操作,可以使用从vsvode终端解析的$profile对脚本进行点源代码处理。
这并不是特别理想,我希望找到一个更精简的解决方案,因为我使用的每个脚本都必须点源代码,这很麻烦。

li9yvcax

li9yvcax3#

您需要保存并运行脚本,以便识别内联文档中的更改。我还可以推荐使用.SYNOPSIS‘tag’,这样甚至可以阅读文本。
示例:

<#
    .SYNOPSIS
        Returns something

# >

function Get-SomeThing {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory=$true)]
        [string]$Path
    )

}

当悬停函数名或代码完成时,显示类似以下内容:

相关问题