This Visual Studio Code extension creates CfgFunctions.hpp
file with a simple click of a button when developing Arma 3.
- Automatic generation of
CfgFunctions.hpp
file with a simple button click in VS Code interface (CfgFunctions.hpp
file needs to be open and active) - Support for even complex projects with multiple dependencies or otherwise complex/large folder structure
- Personal/project tag included in settings (mandatory)
- Autocompletion for functions in the Functions Library that have been defined/added by the user (since v0.2.0) - note that you need to auto-generate
CfgFunctions.hpp
once after opening the editor for the autocompletion to become active - Generation of
CfgRemoteExec.hpp
template based on your custom functions by running a task (Ctrl
+Shift
+P
) (since v0.3.0) - Support for
postInit
andpreInit
attributes. Name your functionfn_preInit_yourFunction.sqf
orfn_postInit_yourFunction.sqf
to include the needed attribute. (Since v0.5.0) - Support for persistent remote execution framework (
CfgRemoteExec.hpp
) parameters (function targets and JIP (Join In Progress)) for added security. (since v1.0.0)
- Up-to-date Visual Studio Code installation
- (Empty)
CfgFunctions.hpp
file inMISSION_OR_CAMPAIGN_ROOT/functions/
folder - Filenames of SQF files to be included must start with
'fn_'
- SQF files must be located in subfolder of
MISSION_OR_CAMPAIGN_ROOT/functions/
folder CfgFunctions.hpp
file needs to be open and the active file in the editor- To generate
CfgRemoteExec.hpp
, you need to haveCfgFunctions.hpp
open and as active file in the editor - For persistent CfgRemoteExec parameters, use formatting
fn_%1_%2_functionName.sqf
where%1 = ALL | CLIENT | SERVER
and%2 = JIP
. Or the former in reverse order, it's supported too. Example:fn_CLIENT_JIP_getCarKeys.sqf
orfn_JIP_CLIENT_getCarKeys.sqf
. Or:fn_SERVER_JIP_loadUnitData.sqf
orfn_JIP_SERVER_loadUnitData.sqf
. If you don't need to send a function call to JIP (Join In Progress) queue, just leave theJIP
part off. Example:fn_SERVER_loadUnitData.sqf
orfn_CLIENT_loadUnitData.sqf
.
- Personal/project tag to avoid naming conflicts
- You must click the
CfgFunctions.hpp
file contents in editor view at first before clicking the "Generate CfgFunctions.hpp (Arma 3)" button. CfgFunctions.hpp
generation might fail ifCfgFunctions.hpp
file has been edited and not saved when clicking the generate button.- Autocompletion of custom user defined functions works only after running the automatic generation of
CfgFunctions.hpp
at least once after opening the editor. - If you generate
CfgRemoteExec.hpp
, 1. the file must not exist yet (the operation will fail if the file exists already to prevent accidental overwrites), 2. you need to have generatedCfgFunctions.hpp
at least once, and 3. have theCfgFunctions.hpp
file active in the editor (by e.g. clicking on it's contents in the normal editor view) when you run theGenerate CfgRemoteExec template (Arma 3)
task. (Ctrl
+Shift
+P
)
Bug reports are highly appreciated!
Initial release.
Added autocompletion for functions in the Functions Library defined by the user.
Added an option/task to generate CfgRemoteExec.hpp
template based on the CfgFunctions.hpp
.
Note that you must generate the CfgFunctions.hpp
at least once and make sure that the file is active by clicking on it in the editor view before you can run the Generate CfgRemoteExec template (Arma 3)
task. (Ctrl
+ Shift
+ P
)
Fixed IntelliSense suggestions. The editor/IntelliSense should now suggest autocompletion of defined functions properly when you start typing the full function name (starting from your developer tag/prefix).
Added support for postInit
and preInit
attributes for functions. Name your function fn_preInit_yourFunction.sqf
or fn_postInit_yourFunction.sqf
to include the needed attribute.
Hotfix: missing semicolon when using attributes on core functions.
Support for persistent remote execution framework (CfgRemoteExec.hpp
) parameters (function targets and JIP (Join In Progress)) for added security.
Fix showcase GIFs not showing.
Add documentation with examples how to make the Remote Execution Framework's function parameters persistent. (See "Requirements" on this page.)
Make CfgRemoteExec.hpp generation more tolerant to typos/casing mistakes & fix a bug that allowed user to define function as JIP (Join In Progress) one without allowed target(s) getting specified.
Enjoy!