당신은 PowerShell을 ISE에서이 코드를 실행해야합니다. 추가 기능은 바로 가기 "CTRL + Alt + Shift + B"와 함께 추가됩니다. 스크립트 편집기의 함수에 커서를 놓고 "Ctrl + Alt + Shift + B"를 누르거나 메뉴의 애드온 목록에서 선택하면 필요한 파일이 PowerShell ISE에서 열리고 커서가 이 기능의 시작. 이 코드는 [설명 포함] 문제를 해결할 수 있지만
는
function Get-TokenInfo
{
[Alias("ti")]
[OutputType([System.Management.Automation.PSToken[]])]
Param()
Process
{
$editor = $psise.CurrentFile.Editor;
$line = $editor.CaretLine;
$column = $editor.CaretColumn;
return [system.management.automation.psparser]::Tokenize($psISE.CurrentFile.Editor.Text, [ref]$null) |?{$_.StartLine -le $line -and $_.EndLine -ge $line -and $_.StartColumn -le $column -and $_.EndColumn -ge $column};
}
}
function GoTo-CommandImplementation
{
[Alias("gti")]
Param()
Process
{
$commandInfo = ti |?{$_.Type -eq [System.Management.Automation.PSTokenType]::Command} | select -First 1;
if(!$commandInfo)
{
Write-Host "Is not a command";
}
else
{
$commandName = $commandInfo.Content;
$command = Get-Command $commandName;
if($command -is [System.Management.Automation.AliasInfo])
{
$command = $command.ResolvedCommand;
}
if($command.CommandType -eq [System.Management.Automation.CommandTypes]::Function)
{
$functionInfo = [System.Management.Automation.FunctionInfo]$command;
$commandFile = $functionInfo.ScriptBlock.File;
$line = $functionInfo.ScriptBlock.StartPosition.StartLine;
$column = $functionInfo.ScriptBlock.StartPosition.StartColumn;
psedit $commandFile;
$psise.CurrentFile.Editor.Focus();
$psise.CurrentFile.Editor.SetCaretPosition($line, $column);
}
else
{
Write-Host "Is not Function.";
}
}
}
}
$PowerPSISERoot.Submenus.Add("GoTo Implementation", {gti}, "CTRL+Alt+SHIFT+B");
(http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers는) 정말를 개선하는 데 도움 귀하의 게시물의 품질. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. – Clijsters