<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic DataStep Studio: free VS Code extension to run SAS and debug DATA steps and Macros, testers wanted in Developers</title>
    <link>https://communities.sas.com/t5/Developers/DataStep-Studio-free-VS-Code-extension-to-run-SAS-and-debug-DATA/m-p/994647#M6709</link>
    <description>&lt;P&gt;Hello SAS Community,&lt;/P&gt;&lt;P&gt;My name is Yosia Hadisusanto. I live in Hannover, Germany, and work as a freelance statistical programmer for the pharmaceutical industry.&lt;/P&gt;&lt;P&gt;For my daily work I wanted a SAS editor where I can debug DATA steps and macros, customize it to the way I work, and search and filter a data set easily. So I built one: &lt;STRONG&gt;DataStep Studio&lt;/STRONG&gt;, a VS Code extension for SAS programming.&amp;nbsp; It works with &lt;STRONG&gt;SAS OnDemand for Academics&lt;/STRONG&gt; and is built for &lt;STRONG&gt;SAS 9.4 servers&lt;/STRONG&gt; as well (IOM, the connection SAS Enterprise Guide uses).&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I only have access to SAS OnDemand for Academics&lt;/STRONG&gt;, so I need others to try and test it: above all with a SAS 9.4 server at their company, and on Windows or Linux. Please tell me what works and what doesn't. More features will come.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1-overview.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118230i7FB0B01FAE3949DE/image-size/large?v=v2&amp;amp;px=999" role="button" title="1-overview.png" alt="1-overview.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Install:&lt;/STRONG&gt; in VS Code open Extensions (Ctrl+Shift+X), search &lt;STRONG&gt;DataStep Studio&lt;/STRONG&gt;, Install. Marketplace page: &lt;A href="https://marketplace.visualstudio.com/items?itemName=datastep-labs.datastep-studio" target="_blank" rel="noopener"&gt;https://marketplace.visualstudio.com/items?itemName=datastep-labs.datastep-studio&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6406429677112w864h540r214" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6406429677112" data-account="6058004174001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6058004174001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6406429677112w864h540r214');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://communities.sas.com/t5/video/gallerypage/video-id/6406429677112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;What it does&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Run with one key.&lt;/STRONG&gt; F4 runs the program or the selection. Also Run To Line, Run From Line, Run Step, Run As Macro and Resolve Code (the code a macro call generates).&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;A log that points back to your code.&lt;/STRONG&gt; ERRORs and WARNINGs appear in Problems at their line. The &lt;STRONG&gt;Suspicious Log&lt;/STRONG&gt; lists only what needs a look: ERRORs, WARNINGs, and NOTEs such as uninitialized variables, merges with repeats of BY values, or missing values generated.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2-suspicious-log.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118236iFADE17C115583D63/image-size/large?v=v2&amp;amp;px=999" role="button" title="2-suspicious-log.png" alt="2-suspicious-log.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Data at a glance.&lt;/STRONG&gt; A data viewer with WHERE, filters, sorting and frequencies. Tick the values to keep, and the SAS condition is written for you.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="3-data-viewer.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118232i5F2E7D35D8AAE495/image-size/large?v=v2&amp;amp;px=999" role="button" title="3-data-viewer.png" alt="3-data-viewer.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;The session in view.&lt;/STRONG&gt; Libraries with variables and labels, macro variables, and every system option.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Autocomplete that knows SAS.&lt;/STRONG&gt; Procedures, options, functions, your librefs, data sets and columns, with the SAS documentation one hover away. &lt;CODE&gt;proc so&lt;/CODE&gt; + Enter writes the whole PROC SORT with DATA= and BY filled in.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Your files where SAS is.&lt;/STRONG&gt; Open your SAS OnDemand home as a folder and edit the programs there, or keep them on your computer: the project is synced to the server, so &lt;CODE&gt;%INCLUDE "macros/setup.sas"&lt;/CODE&gt; and relative paths work.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;DATA step debugger.&lt;/STRONG&gt; Step through a DATA step statement by statement with the PDV in the Variables view, conditional breakpoints (&lt;CODE&gt;age &amp;gt; 14&lt;/CODE&gt;) and Jump to Cursor.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="4-datastep-debugger.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118233i437A6CE26AFEE078/image-size/large?v=v2&amp;amp;px=999" role="button" title="4-datastep-debugger.png" alt="4-datastep-debugger.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;The macro debugger&lt;/P&gt;&lt;P&gt;Debugging a macro usually means MPRINT, MLOGIC and %PUT. In DataStep Studio you step through a macro like through any other program:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Call pane.&lt;/STRONG&gt; Debug Macro opens the call above the definition with every parameter by name: fill in the values and start.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Step Into, Over and Out&lt;/STRONG&gt; through %LET, %IF, %DO and nested macro calls; the call stack shows which macro called which.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Macro variables&lt;/STRONG&gt; of each macro in the Variables view (global and automatic on request). Hover &lt;CODE&gt;&amp;amp;name.&lt;/CODE&gt; for its value, or change a value to try another path through the macro.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Conditional breakpoints&lt;/STRONG&gt; in macro language: &lt;CODE&gt;&amp;amp;i. = 3&lt;/CODE&gt; stops a %DO loop only in its third pass.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Debug Console.&lt;/STRONG&gt; Evaluate macro expressions such as &lt;CODE&gt;%EVAL(&amp;amp;n. * 2)&lt;/CODE&gt;, or run SAS code inside the paused macro.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Code coverage&lt;/STRONG&gt; after the run: every macro line shows how often it ran (×4), and lines never reached are marked.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The picture and the video use a small example: &lt;CODE&gt;%sum_of_squares(4)&lt;/CODE&gt; adds 1² + 2² + 3² + 4² and calls &lt;CODE&gt;%square&lt;/CODE&gt; for each number.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="5-macro-debugger.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118234i7A11B05A1D6AE715/image-size/large?v=v2&amp;amp;px=999" role="button" title="5-macro-debugger.png" alt="5-macro-debugger.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6406429543112w864h540r303" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6406429543112" data-account="6058004174001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6058004174001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6406429543112w864h540r303');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://communities.sas.com/t5/video/gallerypage/video-id/6406429543112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;Getting started (about 5 minutes)&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;You need &lt;STRONG&gt;Java 8 or newer&lt;/STRONG&gt; and &lt;STRONG&gt;Python 3.8 or newer&lt;/STRONG&gt;. SASPy is installed for you.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;DataStep Studio: Check Setup&lt;/STRONG&gt; (Command Palette, Ctrl+Shift+P) finds Java and Python and installs SASPy with one click.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;DataStep Studio: Add New Connection Profile&lt;/STRONG&gt;: SAS OnDemand (your region and user ID) or a SAS 9.4 server (host, port, user). The password is asked once and kept in your system's keychain.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="6-connection-profile.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118235i85BE4C420BB94705/image-size/large?v=v2&amp;amp;px=999" role="button" title="6-connection-profile.png" alt="6-connection-profile.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Open a &lt;CODE&gt;.sas&lt;/CODE&gt; file and press &lt;STRONG&gt;F4&lt;/STRONG&gt;.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;The full manual is inside VS Code: &lt;STRONG&gt;DataStep Studio: Open Manual&lt;/STRONG&gt;, short recipes in &lt;STRONG&gt;Open How-To Guide&lt;/STRONG&gt;, and the videos in &lt;STRONG&gt;Watch the 2-Minute Tour&lt;/STRONG&gt; and &lt;STRONG&gt;Watch the Macro Debugger Video&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;What I would like to know&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Did the installation and the first connection work? How long did it take, and where did you get stuck?&lt;/LI&gt;&lt;LI&gt;Which features do you use, and what is missing for your daily SAS work?&lt;/LI&gt;&lt;LI&gt;Anything that behaves differently from SAS Enterprise Guide or SAS Studio in a way that surprised you.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;So far I could test it only with &lt;STRONG&gt;SAS OnDemand for Academics&lt;/STRONG&gt;, and mainly on macOS. Reports from &lt;STRONG&gt;SAS 9.4 servers&lt;/STRONG&gt;, &lt;STRONG&gt;Windows&lt;/STRONG&gt; and &lt;STRONG&gt;Linux&lt;/STRONG&gt; are especially welcome.&lt;/P&gt;&lt;P&gt;Please reply here, or use &lt;STRONG&gt;Q &amp;amp; A&lt;/STRONG&gt; on the Marketplace page. &lt;STRONG&gt;DataStep Studio: Report a Problem&lt;/STRONG&gt; copies an error message with the versions of VS Code, Java, Python and SASPy (home folders hidden) for you to paste.&lt;/P&gt;&lt;P&gt;Your data stays yours&lt;/P&gt;&lt;P&gt;DataStep Studio collects nothing: no telemetry, no usage data. Your code, data and logs go only to your own SAS session. The password stays in your system's keychain.&lt;/P&gt;&lt;P&gt;Editions&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Community&lt;/STRONG&gt; is always free: all run modes, the log views, the data viewer, the session views, autocomplete, the SAS Server window and project sync.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Professional&lt;/STRONG&gt; adds the DATA step and macro debuggers, smart code, Enlarge/Optimize macro calls and Git on the SAS server. During &lt;STRONG&gt;Community Early Access&lt;/STRONG&gt;, all Professional features are available free of charge. Early Access is temporary. Professional functionality may require a paid license following the Early Access period. Free Community functionality will remain available.&lt;/P&gt;&lt;P&gt;I am still thinking about how this will look after Early Access. For now, let's build this together and make an awesome SAS editor to work with.&lt;/P&gt;&lt;P&gt;Thank you for trying it!&lt;/P&gt;&lt;P&gt;&lt;EM&gt;DataStep Studio is an independent project and is not affiliated with or endorsed by SAS Institute Inc. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc.&lt;/EM&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 07 Oct 2026 17:29:00 GMT</pubDate>
    <dc:creator>yosiahds</dc:creator>
    <dc:date>2026-10-07T17:29:00Z</dc:date>
    <item>
      <title>DataStep Studio: free VS Code extension to run SAS and debug DATA steps and Macros, testers wanted</title>
      <link>https://communities.sas.com/t5/Developers/DataStep-Studio-free-VS-Code-extension-to-run-SAS-and-debug-DATA/m-p/994647#M6709</link>
      <description>&lt;P&gt;Hello SAS Community,&lt;/P&gt;&lt;P&gt;My name is Yosia Hadisusanto. I live in Hannover, Germany, and work as a freelance statistical programmer for the pharmaceutical industry.&lt;/P&gt;&lt;P&gt;For my daily work I wanted a SAS editor where I can debug DATA steps and macros, customize it to the way I work, and search and filter a data set easily. So I built one: &lt;STRONG&gt;DataStep Studio&lt;/STRONG&gt;, a VS Code extension for SAS programming.&amp;nbsp; It works with &lt;STRONG&gt;SAS OnDemand for Academics&lt;/STRONG&gt; and is built for &lt;STRONG&gt;SAS 9.4 servers&lt;/STRONG&gt; as well (IOM, the connection SAS Enterprise Guide uses).&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I only have access to SAS OnDemand for Academics&lt;/STRONG&gt;, so I need others to try and test it: above all with a SAS 9.4 server at their company, and on Windows or Linux. Please tell me what works and what doesn't. More features will come.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1-overview.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118230i7FB0B01FAE3949DE/image-size/large?v=v2&amp;amp;px=999" role="button" title="1-overview.png" alt="1-overview.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Install:&lt;/STRONG&gt; in VS Code open Extensions (Ctrl+Shift+X), search &lt;STRONG&gt;DataStep Studio&lt;/STRONG&gt;, Install. Marketplace page: &lt;A href="https://marketplace.visualstudio.com/items?itemName=datastep-labs.datastep-studio" target="_blank" rel="noopener"&gt;https://marketplace.visualstudio.com/items?itemName=datastep-labs.datastep-studio&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6406429677112w864h540r28" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6406429677112" data-account="6058004174001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6058004174001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6406429677112w864h540r28');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://communities.sas.com/t5/video/gallerypage/video-id/6406429677112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;What it does&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Run with one key.&lt;/STRONG&gt; F4 runs the program or the selection. Also Run To Line, Run From Line, Run Step, Run As Macro and Resolve Code (the code a macro call generates).&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;A log that points back to your code.&lt;/STRONG&gt; ERRORs and WARNINGs appear in Problems at their line. The &lt;STRONG&gt;Suspicious Log&lt;/STRONG&gt; lists only what needs a look: ERRORs, WARNINGs, and NOTEs such as uninitialized variables, merges with repeats of BY values, or missing values generated.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2-suspicious-log.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118236iFADE17C115583D63/image-size/large?v=v2&amp;amp;px=999" role="button" title="2-suspicious-log.png" alt="2-suspicious-log.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Data at a glance.&lt;/STRONG&gt; A data viewer with WHERE, filters, sorting and frequencies. Tick the values to keep, and the SAS condition is written for you.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="3-data-viewer.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118232i5F2E7D35D8AAE495/image-size/large?v=v2&amp;amp;px=999" role="button" title="3-data-viewer.png" alt="3-data-viewer.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;The session in view.&lt;/STRONG&gt; Libraries with variables and labels, macro variables, and every system option.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Autocomplete that knows SAS.&lt;/STRONG&gt; Procedures, options, functions, your librefs, data sets and columns, with the SAS documentation one hover away. &lt;CODE&gt;proc so&lt;/CODE&gt; + Enter writes the whole PROC SORT with DATA= and BY filled in.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Your files where SAS is.&lt;/STRONG&gt; Open your SAS OnDemand home as a folder and edit the programs there, or keep them on your computer: the project is synced to the server, so &lt;CODE&gt;%INCLUDE "macros/setup.sas"&lt;/CODE&gt; and relative paths work.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;DATA step debugger.&lt;/STRONG&gt; Step through a DATA step statement by statement with the PDV in the Variables view, conditional breakpoints (&lt;CODE&gt;age &amp;gt; 14&lt;/CODE&gt;) and Jump to Cursor.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="4-datastep-debugger.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118233i437A6CE26AFEE078/image-size/large?v=v2&amp;amp;px=999" role="button" title="4-datastep-debugger.png" alt="4-datastep-debugger.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;The macro debugger&lt;/P&gt;&lt;P&gt;Debugging a macro usually means MPRINT, MLOGIC and %PUT. In DataStep Studio you step through a macro like through any other program:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Call pane.&lt;/STRONG&gt; Debug Macro opens the call above the definition with every parameter by name: fill in the values and start.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Step Into, Over and Out&lt;/STRONG&gt; through %LET, %IF, %DO and nested macro calls; the call stack shows which macro called which.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Macro variables&lt;/STRONG&gt; of each macro in the Variables view (global and automatic on request). Hover &lt;CODE&gt;&amp;amp;name.&lt;/CODE&gt; for its value, or change a value to try another path through the macro.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Conditional breakpoints&lt;/STRONG&gt; in macro language: &lt;CODE&gt;&amp;amp;i. = 3&lt;/CODE&gt; stops a %DO loop only in its third pass.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Debug Console.&lt;/STRONG&gt; Evaluate macro expressions such as &lt;CODE&gt;%EVAL(&amp;amp;n. * 2)&lt;/CODE&gt;, or run SAS code inside the paused macro.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Code coverage&lt;/STRONG&gt; after the run: every macro line shows how often it ran (×4), and lines never reached are marked.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The picture and the video use a small example: &lt;CODE&gt;%sum_of_squares(4)&lt;/CODE&gt; adds 1² + 2² + 3² + 4² and calls &lt;CODE&gt;%square&lt;/CODE&gt; for each number.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="5-macro-debugger.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118234i7A11B05A1D6AE715/image-size/large?v=v2&amp;amp;px=999" role="button" title="5-macro-debugger.png" alt="5-macro-debugger.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6406429543112w864h540r817" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6406429543112" data-account="6058004174001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6058004174001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6406429543112w864h540r817');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://communities.sas.com/t5/video/gallerypage/video-id/6406429543112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;Getting started (about 5 minutes)&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;You need &lt;STRONG&gt;Java 8 or newer&lt;/STRONG&gt; and &lt;STRONG&gt;Python 3.8 or newer&lt;/STRONG&gt;. SASPy is installed for you.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;DataStep Studio: Check Setup&lt;/STRONG&gt; (Command Palette, Ctrl+Shift+P) finds Java and Python and installs SASPy with one click.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;DataStep Studio: Add New Connection Profile&lt;/STRONG&gt;: SAS OnDemand (your region and user ID) or a SAS 9.4 server (host, port, user). The password is asked once and kept in your system's keychain.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="6-connection-profile.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/118235i85BE4C420BB94705/image-size/large?v=v2&amp;amp;px=999" role="button" title="6-connection-profile.png" alt="6-connection-profile.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Open a &lt;CODE&gt;.sas&lt;/CODE&gt; file and press &lt;STRONG&gt;F4&lt;/STRONG&gt;.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;The full manual is inside VS Code: &lt;STRONG&gt;DataStep Studio: Open Manual&lt;/STRONG&gt;, short recipes in &lt;STRONG&gt;Open How-To Guide&lt;/STRONG&gt;, and the videos in &lt;STRONG&gt;Watch the 2-Minute Tour&lt;/STRONG&gt; and &lt;STRONG&gt;Watch the Macro Debugger Video&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;What I would like to know&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Did the installation and the first connection work? How long did it take, and where did you get stuck?&lt;/LI&gt;&lt;LI&gt;Which features do you use, and what is missing for your daily SAS work?&lt;/LI&gt;&lt;LI&gt;Anything that behaves differently from SAS Enterprise Guide or SAS Studio in a way that surprised you.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;So far I could test it only with &lt;STRONG&gt;SAS OnDemand for Academics&lt;/STRONG&gt;, and mainly on macOS. Reports from &lt;STRONG&gt;SAS 9.4 servers&lt;/STRONG&gt;, &lt;STRONG&gt;Windows&lt;/STRONG&gt; and &lt;STRONG&gt;Linux&lt;/STRONG&gt; are especially welcome.&lt;/P&gt;&lt;P&gt;Please reply here, or use &lt;STRONG&gt;Q &amp;amp; A&lt;/STRONG&gt; on the Marketplace page. &lt;STRONG&gt;DataStep Studio: Report a Problem&lt;/STRONG&gt; copies an error message with the versions of VS Code, Java, Python and SASPy (home folders hidden) for you to paste.&lt;/P&gt;&lt;P&gt;Your data stays yours&lt;/P&gt;&lt;P&gt;DataStep Studio collects nothing: no telemetry, no usage data. Your code, data and logs go only to your own SAS session. The password stays in your system's keychain.&lt;/P&gt;&lt;P&gt;Editions&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Community&lt;/STRONG&gt; is always free: all run modes, the log views, the data viewer, the session views, autocomplete, the SAS Server window and project sync.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Professional&lt;/STRONG&gt; adds the DATA step and macro debuggers, smart code, Enlarge/Optimize macro calls and Git on the SAS server. During &lt;STRONG&gt;Community Early Access&lt;/STRONG&gt;, all Professional features are available free of charge. Early Access is temporary. Professional functionality may require a paid license following the Early Access period. Free Community functionality will remain available.&lt;/P&gt;&lt;P&gt;I am still thinking about how this will look after Early Access. For now, let's build this together and make an awesome SAS editor to work with.&lt;/P&gt;&lt;P&gt;Thank you for trying it!&lt;/P&gt;&lt;P&gt;&lt;EM&gt;DataStep Studio is an independent project and is not affiliated with or endorsed by SAS Institute Inc. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc.&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2026 17:29:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/DataStep-Studio-free-VS-Code-extension-to-run-SAS-and-debug-DATA/m-p/994647#M6709</guid>
      <dc:creator>yosiahds</dc:creator>
      <dc:date>2026-10-07T17:29:00Z</dc:date>
    </item>
    <item>
      <title>Re: DataStep Studio: free VS Code extension to run SAS and debug DATA steps and Macros, testers want</title>
      <link>https://communities.sas.com/t5/Developers/DataStep-Studio-free-VS-Code-extension-to-run-SAS-and-debug-DATA/m-p/994650#M6710</link>
      <description>&lt;P&gt;For readers, I will point out that SAS developed and &lt;A href="https://developer.sas.com/programming/vs_code_extension" target="_self"&gt;maintains an official SAS extension for VS Code&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is a team of developers who respond to issues, add features, and take suggestions from the community. This official extension connects to SAS 9.4 and SAS Viya, and is used within solutions such as SAS Viya Workbench. Find it in VS Code or on &lt;A href="https://marketplace.visualstudio.com/items?itemName=SAS.sas-lsp" target="_self"&gt;the official marketplace here&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2026 18:51:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/DataStep-Studio-free-VS-Code-extension-to-run-SAS-and-debug-DATA/m-p/994650#M6710</guid>
      <dc:creator>ChrisHemedinger</dc:creator>
      <dc:date>2026-10-07T18:51:35Z</dc:date>
    </item>
  </channel>
</rss>

