我们很高兴地宣布,Visual Studio Code 的 PowerShell Extension 更新现已在扩展市场上推出。
此版本修复了许多与 IntelliSense 相关的问题,并为其他客户端(如带有 LSP 插件的 Emacs 和 Vim)启用了对 PowerShell 编辑器服务(VS Code 扩展的引擎)的更新。
6 月发布的更新
6月版的一些亮点:
- 修复了我们检查扩展模式的方式。https://github.com/PowerShell/vscode-powershell/pull/3992
- 将有关智能感知的警告添加到 PowerShell 集成控制台终止对话框。(谢谢@JustinGrote!https://github.com/PowerShell/vscode-powershell/pull/3976
- 为未定义的配置文件添加回归测试。https://github.com/PowerShell/PowerShellEditorServices/pull/1821
- 为 PowerShellEditorServices 添加 Emacs 回归测试。 https://github.com/PowerShell/PowerShellEditorServices/pull/1820
- 尽早设置以进行连接。
https://github.com/PowerShell/PowerShellEditorServices/pull/1815
IsDebuggingRemoteRunspace
- 修复了管道连接到 时的错误。
https://github.com/PowerShell/PowerShellEditorServices/pull/1814
IFilePositionConvertTo-ScriptExtent
- 其他智能感知修复和工具提示大修。https://github.com/PowerShell/PowerShellEditorServices/pull/1809
- 修复了零配置文件不存在时的启动错误。https://github.com/PowerShell/PowerShellEditorServices/pull/1807
- 修复调试提示命令的执行。https://github.com/PowerShell/PowerShellEditorServices/pull/1803
- 通过修复初始化序列重新启用 stdio 客户端。 https://github.com/PowerShell/PowerShellEditorServices/pull/1801
- 修复了许多智能感知问题。 https://github.com/PowerShell/PowerShellEditorServices/pull/1799
- 增加 PowerShell 5 的堆栈大小。(谢谢@nohwnd! https://github.com/PowerShell/PowerShellEditorServices/pull/1797
有关更改的完整列表,请参阅我们的更改日志 https://github.com/PowerShell/vscode-powershell/edit/main/CHANGELOG.md
智能感知改进
在此版本中,我们对IntelliSense(各种代码编辑功能的通用术语,包括:代码完成,参数信息,工具提示悬停等)进行了许多改进。
将完成请求处理程序标记为串行
以前,如果你打字很快,你根本得不到任何结果。这将阻止在发送通知时取消完成。这也允许完成取消其他一些昂贵的请求,如代码镜头,这意味着一切都更快,更不脆弱。Get-
DidChangeTextDocument
修复快速取消后永远无法完成的任务
如果已经要求取消,我们提前退出。这没有正确设置我们的状态,导致调用方在没有警告的情况下脱落。这使得一些事情像和处置从未发生过,这导致了很多不稳定的行为!SynchronousTask.ExecuteSynchronously
finally
using
使空闲时的别名发现成为可能
在管道线程繁忙时使用 (即使您在管道线程上)会导致异常。通过修复此问题,我们还可以在需要时取消(慢速操作),并在空闲而不是启动时执行此操作。Runspace.SessionStateProxy
GetAliasesAsync
将“空格”字符添加到完成触发器字符
将“空格”字符添加到完成触发器中,我们可以自动为参数值提供完成结果。这还需要建立一些支持,将完成结果标记为“不完整”。这意味着在键入标准标识符字符时,客户端不会缓存结果。
主要是,这解决了键入 ,获取文件完成结果,然后键入 .然后,您希望获取参数名称,但不标记“不完整”,它将改为筛选文件结果。space
-
还修复了键入并在键入时不会更新到可用脚本范围变量的情况。$script:
:
使完成请求可取消
现在,如果自定义参数完成器的任何完成结果花费的时间太长并且用户继续键入,则可以取消这些结果。在非远程运行空间中,我们还可以将其用作完成源,可以通过发出管道停止请求来取消该源。
该项目的下一步是什么?
我们目前正在为扩展构建回归测试,以涵盖我们在今年早些时候的主要重写期间中断并随后修复的所有内容。我们非常注重质量,并希望确保我们继续为您(我们的用户)提供生产就绪的高质量扩展。我们在改进扩展方面进行了大量投资,因此我们希望能够自信地继续迭代此项目,而不会无意中影响性能、稳定性或功能集。我们已经开始了这项工作,并且正在我们的GitHub存储库 https://github.com/PowerShell/PowerShellEditorServices/issues/1733中进行跟踪。