{"id":13946,"date":"2017-09-21T07:40:37","date_gmt":"2017-09-21T14:40:37","guid":{"rendered":"https:\/\/www.sapien.com\/blog\/?p=13946"},"modified":"2017-09-21T07:34:29","modified_gmt":"2017-09-21T14:34:29","slug":"powershell-studio-2017-service-release-v5-4-144","status":"publish","type":"post","link":"https:\/\/dev.sapien.com\/blog\/2017\/09\/21\/powershell-studio-2017-service-release-v5-4-144\/","title":{"rendered":"PowerShell Studio 2017: Service Release v5.4.144"},"content":{"rendered":"<p>Today we released a new service build of PowerShell Studio 2017 (v5.4.144).<\/p>\n<p>In this service build we made several improvements to PowerShell Studio\u2019s class PrimalSense and refactoring capabilities.<\/p>\n<p>&nbsp;<\/p>\n<h2>New Features<\/h2>\n<h2><\/h2>\n<h3>Class PrimalSense<\/h3>\n<p>This service release greatly improves PrimalSense support for custom PowerShell classes defined in a script and across files when using a project or when dot sourcing.<\/p>\n<p>PrimalSense for Custom Enumerators:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"PrimalSense Enum\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/PrimalSense-Enum.png\" alt=\"PrimalSense Enum\" width=\"438\" height=\"315\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Constructor PrimalSense:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/PrimalSense-Constructors.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"PrimalSense Constructors\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/PrimalSense-Constructors_thumb.png\" alt=\"PrimalSense Constructors\" width=\"644\" height=\"58\" border=\"0\" \/><\/a><\/p>\n<p>Press the <strong>TAB<\/strong> button to auto-insert the parameters.<\/p>\n<p>&nbsp;<\/p>\n<p>Class Members:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"PrimalSense Class Members\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/PrimalSense-Class-Members.png\" alt=\"PrimalSense Class Members\" width=\"388\" height=\"231\" border=\"0\" \/><\/p>\n<p>PrimalSense for <strong><em>$This<\/em><\/strong> variable within the class definition:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"PrimalSense This\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/PrimalSense-This.png\" alt=\"PrimalSense This\" width=\"383\" height=\"440\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>You can use the <b>Go to Declaration <\/b>command on the custom classes and on its class members:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Go To Declaration\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Go-To-Declaration.png\" alt=\"Go To Declaration\" width=\"497\" height=\"247\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>Refactoring Improvements<\/h3>\n<p>In addition to improving PrimalSense support, we also improved rename refactoring and reference highlighting.<\/p>\n<p>You can now refactor a class name:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Refactor-Class-Name.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Refactor Class Name\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Refactor-Class-Name_thumb.png\" alt=\"Refactor Class Name\" width=\"644\" height=\"358\" border=\"0\" \/><\/a><\/p>\n<p>Or a class member name:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Refactor-Class-Members.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Refactor Class Members\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Refactor-Class-Members_thumb.png\" alt=\"Refactor Class Members\" width=\"644\" height=\"247\" border=\"0\" \/><\/a><\/p>\n<p>When you refactor a class member, references to that member are updated throughout the script.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Refactor-References.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Refactor References\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Refactor-References_thumb.png\" alt=\"Refactor References\" width=\"644\" height=\"323\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Find All References<\/h3>\n<p>Now you can use the <strong>Find All References<\/strong> command to find references to a particular type:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Find-All-Type-References.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Find All Type References\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Find-All-Type-References_thumb.png\" alt=\"Find All Type References\" width=\"644\" height=\"354\" border=\"0\" \/><\/a><\/p>\n<p>When working with projects, references found throughout the whole project are displayed.<\/p>\n<p>&nbsp;<\/p>\n<p>You can now also find references to a particular property or method:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Member-References.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Member References\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Member-References_thumb.png\" alt=\"Member References\" width=\"644\" height=\"195\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Updated Navigation Bar<\/h3>\n<p>We added a new scope dropdown to the editor\u2019s navigation bar. The scope dropdown lets you jump to class or enumerator declarations contained within the file.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Scope-Navigation-Menu.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Scope Navigation Menu\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Scope-Navigation-Menu_thumb.png\" alt=\"Scope Navigation Menu\" width=\"644\" height=\"301\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>When the caret is within in the scope of a class, the function dropdown is updated to reflect the class\u2019 member declarations.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Navigation-Menu-Members.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Navigation Menu Members\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Navigation-Menu-Members_thumb.png\" alt=\"Navigation Menu Members\" width=\"644\" height=\"144\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>New Packager Restriction<\/h3>\n<p>We added a new packager restriction option:<\/p>\n<p><em><strong>Disable script block transcripts while running<\/strong><\/em><\/p>\n<p>When this option is checked, the packager engine will attempt to disable transcripts before executing the script. Use this option when you wish to protect sensitive scripts.<\/p>\n<p><strong><em><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Packager-Disable-transcripts.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Packager - Disable transcripts\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2017\/09\/Packager-Disable-transcripts_thumb.png\" alt=\"Packager - Disable transcripts\" width=\"644\" height=\"429\" border=\"0\" \/><\/a><\/em><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>We hope these new features improve your overall experience with PowerShell Studio. Please continue providing your feedback. Many of the new features included in the service builds are suggestions from users like you. Therefore, if you have any suggestions or feature requests, please share them with us on our <a href=\"https:\/\/www.sapien.com\/forums\/viewforum.php?f=9\">Wish List and Feature Requests<\/a> forum.<\/p>\n<p>You can view the complete service build log <a href=\"https:\/\/www.sapien.com\/software\/version_history\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we released a new service build of PowerShell Studio 2017 (v5.4.144). In this service build we made several improvements to PowerShell Studio\u2019s class PrimalSense and refactoring capabilities. &nbsp; New Features Class PrimalSense This service release greatly improves PrimalSense support for custom PowerShell classes defined in a script and across files when using a project [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[703,624,21,632],"tags":[28,1188,645,155],"class_list":["post-13946","post","type-post","status-publish","format-standard","hentry","category-powershell-studio","category-service-build","category-software-news","category-whats-new-software-news","tag-powershell","tag-powershell-studio-2017","tag-service-build-2","tag-service-release"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/13946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/comments?post=13946"}],"version-history":[{"count":3,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/13946\/revisions"}],"predecessor-version":[{"id":13967,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/13946\/revisions\/13967"}],"wp:attachment":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/media?parent=13946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/categories?post=13946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/tags?post=13946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}