Visual Studio Code Extension for SASjs
This project contains the source code for the SASjs VS Code extension, available in the following locations:
- Visual Studio Code Marketplace (suitable for VS Code): https://marketplace.visualstudio.com/items?itemName=SASjs.sasjs-for-vscode
- Open VSX (Suitable for VSCodium and Theia): https://open-vsx.org/extension/sasjs/sasjs-for-vscode
Features
Code Execution
You can run code on SAS Viya, SAS 9 EBI or SASjs Server! Just set up the target, and click the running man to execute your SAS code.
You can also highlight a section of code and run that. Each log returned will be stored in a sasjsresults
folder. You can also run the SASjs: Execute Code
command from the command palette(Cmd+Shift+P
).
The target ~/.sasjsrc
. More info here).
The following attributes are needed for all server types:
- Name. An alias to represent the target.
- Server Url. The full URL (including port if needed) of your SAS server.
- Server Type. Can be SASVIYA, SAS9 or SASJS.
Below are the setup steps specific to each server type
SAS Viya
Enter the following prompts:
- CLIENT / SECRET. Relevant for SASVIYA - you will need to ask your administrator for these, and they should have the
authorization_code
grant type. More info here. - Follow the link to obtain your authorisation code
SAS9 EBI
For a SAS9 server type, you need to provide your user and passsword in the prompts. Before you can execute code, you will need a runner (an STP in your metadata home directory) - just follow the instructions here: https://cli.sasjs.io/auth/#sasjs-runner
vscodesas9.mp4
SASjs Server
In order to run on Foundation / Base / Desktop SAS you will need a running version of SASjs server (on the same machine where SAS is installed). You can download SASjs server here. Configuration instructions are here.
For local desktop instances of SASjs Server, the serverUrl is likely to be http://localhost:5000
If you are running SASjs Server in server mode, then you will need a client id - the default is clientID1
SAS Lint and Format
Spend less time on code reviews and more time pushing code! Select VIEW->PROBLEMS (or ctrl+shift+M) to examine the currently opened SAS program for issues.
Rules can be configured by creating a .sasjslint
file in the root of your project as follows:
{
"noEncodedPasswords": true,
"hasDoxygenHeader": true,
"hasMacroNameInMend": true,
"hasMacroParentheses": true,
"ignoreList": [
"sajsbuild/",
"sasjsresults/"
],
"indentationMultiple": 2,
"lowerCaseFileNames": true,
"maxLineLength": 80,
"noNestedMacros": true,
"noSpacesInFileNames": true,
"noTabIndentation": true,
"noTrailingSpaces": true
}
SASjs lint can automatically fix certain problems within SAS files, such as trailing spaces, missing Doxygen header blocks and missing macro names in %mend
statements.
You can use this feature in two ways:
-
On demand - by selecting 'Format Document' either from the right click menu or from the command palette.
-
By enabling automatic formatting of files on save/paste from the Settings menu.
Syntax Highlighting
Two themes are provided with SAS Code formatting - a Light Theme and a Dark Theme
Contributions
SASjs is an open source project, and contributions are warmly welcomed!
✨
Contributors Thanks goes to these wonderful people (emoji key):
Allan Bowe |
Yury Shkoda |
Krishna Acondy |
Muhammad Saad |
Sabir Hassan |
Mihajlo Medjedovic |
Vladislav Parhomchik |
This project follows the all-contributors specification. Contributions of any kind welcome!