sasjs snippets¶
The sasjs snippets command generates VS Code snippets from any SAS macros contained in the folders (or subfolders) listed in the macroFolders array of the sasjs/sasjsconfig.json file. If macroFolders is defined at both configuration and target level, the two arrays will be merged in a single array of macro folders. Macros are those that fit the "$(macroname).sas" pattern - tests (such as macroname.test.sas or macroname.test.1.sas) are excluded, as are files with a non ".sas" extension.
Note - snippets are generated from the filename and doxygen header content, not the SAS code itself.
Syntax¶
sasjs snippets --outDirectory <folderPath> --target <targetName>
--outDirectory(alias-o) - optional output directory. If not present, the snippets will be saved to thesasjsresults/sasjs-macro-snippets.jsonfile.--target(alias-t) - optional SASjs target that should be used.
Generate Snippets File¶
Consider the file name my/macros/example.sas:
/**
@file
@brief An example macro
@details prints an arbitrary message to the log
@param msg The message to be printed
@author Allan Bowe
**/
%macro example(msg);
%let testvar=%sysfunc(ranuni(0));
data work.example;
msg=symget('msg');
putlog msg=;
run;
%mend example ;
Assuming a sasjs/sasjsconfig.json file as follows:
{
"$schema": "https://cli.sasjs.io/sasjsconfig-schema.json",
"macroFolders": [
"my/macros"
]
}
Simply run the sasjs snippets command within the SASjs project, and the following file will be written to sasjsresults/sasjs-macro-snippets.json:
{
"example": {
"prefix": "%example",
"body": "%example($1)",
"description": [
"An example macro",
"\r",
"Params:\r",
"-msg The message to be printed\r"
]
}
}
Notice that the doxygen @brief value has been placed at the beginning of the description, and @param has been put to the Params section. The file name has been used to populate the prefix and body of the VS Code snippet, and placeholders are also created in the body.
Import Snippets to VS Code¶
In order to import the generated VS Code snippets file please follow these steps:
- Open Command Pallet by pressing
F1(unix) orctrl+shift+P(windows). - Type
Snippets: Configure User Snippets. - Choose
sas.json. - Copy everything from the file generated by
sasjs snippetscommand and paste it intosas.json. - Save
sas.json - Snippets should be available in any
.sasfile by typing%<name of the snippet>(%examplefor the snippet from an example provided above).