Visual Studio Code SQF Extensions: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "\[ *((ftp|http)s?:\/\/[^ ]+)([^{])=([^}])([^ ]+)" to "[$1$3{{=}}$4$5") |
Lou Montana (talk | contribs) m (Text replacement - "\[ *((ftp|http)s?:\/\/[^ ]+)([^{])=([^}])([^ ]+)" to "[$1$3{{=}}$4$5") |
||
| Line 14: | Line 14: | ||
| [https://marketplace.visualstudio.com/items?itemName{{=}}Armitxes.sqf SQF Language] || Armitxes || Syntax highlighter. | | [https://marketplace.visualstudio.com/items?itemName{{=}}Armitxes.sqf SQF Language] || Armitxes || Syntax highlighter. | ||
|- | |- | ||
| [https://marketplace.visualstudio.com/items?itemName{{=}}SQF-VM.sqf-vm-language-server&ssr=false#overview SQF-VM Language Server] || {{User|X39}} et al. || Language server for sqf (checks your code for errors). | | [https://marketplace.visualstudio.com/items?itemName{{=}}SQF-VM.sqf-vm-language-server&ssr{{=}}false#overview SQF-VM Language Server] || {{User|X39}} et al. || Language server for sqf (checks your code for errors). | ||
|- | |- | ||
| [https://marketplace.visualstudio.com/items?itemName{{=}}billw2011.sqf-debugger SQF Debugger] || billw2011 || Debug sqf scripts (callstack, variables, breakpoints, ...) | | [https://marketplace.visualstudio.com/items?itemName{{=}}billw2011.sqf-debugger SQF Debugger] || billw2011 || Debug sqf scripts (callstack, variables, breakpoints, ...) | ||
Revision as of 18:27, 28 April 2023
This page cointains information about Microsoft's Visual Studio Code editor and how it can be used for content creation in Arma.
Extensions
The following is a list of recommended extensions. Note that it might be incomplete or out of date. You can search the marketplace for "sqf" to find new or better extensions in that case.
| Extension | Author | Remark |
|---|---|---|
| SQF Language | Armitxes | Syntax highlighter. |
| SQF-VM Language Server | X39 et al. | Language server for sqf (checks your code for errors). |
| SQF Debugger | billw2011 | Debug sqf scripts (callstack, variables, breakpoints, ...) |
| SQF Wiki | Eelis Lynne | Shortcut to go to the Biki page of the selected command/function. |
Tasks
To add tasks to your project follow these steps:
- Open the folder you are working in with VSCode
- Create a new directory at the root of it called .vscode
- Create a file called tasks.json inside of that direcotry
- Add the following content to it:
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ // -> Tasks go here <- ] }
The following snippets will be listed under the "tasks" tag. Tasks are seperated by a comma.
Start Arma 3 (Mission Editing)
This task launches Arma 3 and opens a mission that is located inside of your working folder directly in Eden.
{
"label": "Start Arma 3 (Mission Editing)",
"type": "process",
"options": {
"cwd": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Arma 3" // Change to your Arma 3 installation path
},
"command": "arma3_x64", // Also possible, if available: arma3profiling_x64, arma3diag_x64
"args": [
"${workspaceFolder}\\mission.sqm", // Loads directly into editor if you have a mission folder open in VSCode
"-mod=!Workshop\\@CBA_A3;!Workshop\\@My Other Mod", // Add mods seperated by ";", absolute paths work as well
"-debug",
"-skipIntro",
"-filePatching",
"-noSplash",
"-showScriptErrors"
],
// Enable launching via shortcut "Tasks: Run Test Task"
"group": {
"kind": "test",
"isDefault": true
}
}
Stop Arma 3
Immediatly closes Arma 3. Closing the game via the X button or Alt + F4 would normally take some time. The name of the exe you are using can be found like this:
- Open task manager
- Select the "Processes" tab
- Find Arma 3
- Expand the entry
- Right click on the first sub entry
- Select "Go to details"
- The "Name" column (by default the first one) contains the exe name
{
"label": "Stop Arma 3 Diag",
"type": "shell",
"command": "taskkill",
"args": [
"/F",
"/IM",
"arma3_x64.exe" // Other values: arma3diag_x64.exe, arma3profiling_x64.exe
],
"problemMatcher": []
}
Track RPT
Changes to the RPT will be written to the Terminal window. You might need to adjust the path $env:USERPROFILE
{
"label": "RPT Watcher",
"type": "shell",
"command": "powershell",
"args": [
"-command",
"Get-ChildItem -Path $env:USERPROFILE\\AppData\\Local\\Arma` 3 -Filter *.rpt | Sort-Object LastAccessTime -Descending | Select-Object -First 1 | Get-Content -Tail 1 -Wait -Encoding utf8"
],
"problemMatcher": []
}