Visual Studio Code SQF Extensions

From Bohemia Interactive Community
Revision as of 17:50, 11 September 2024 by Lou Montana (talk | contribs) (Some wiki formatting)
Jump to navigation Jump to search

This page contains 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.
Search "SQF" on the marketplace 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 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:

  1. Open the folder you are working in with VSCode
  2. Create a new directory at the root of it called .vscode
  3. Create a file called tasks.json inside of that directory
  4. 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 separated 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 separated 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

Immediately 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:

  1. Open task manager
  2. Select the "Processes" tab
  3. Find Arma 3
  4. Expand the entry
  5. Right click on the first sub-entry
  6. Select "Go to details"
  7. 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 files will be written to the Terminal window. You might need to adjust the path $env:USERPROFILE\\AppData\\Local\\Arma` 3 ({{hl|` before is required before a space) to your needs if you are using the -profiles startup parameter.

{
	"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": []
}