Visual Studio Code SQF Extensions: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
m (Fix)
 
(One intermediate revision by the same user not shown)
Line 107: Line 107:


Changes to the [[Crash Files|RPT files]] will be written to the Terminal window.
Changes to the [[Crash Files|RPT files]] will be written to the Terminal window.
You might need to adjust the path {{hl|$env:USERPROFILE\\AppData\\Local\\Arma` 3}} ({{hl|` before is required before a space) to your needs if you are using the {{Link|Arma 3: Startup Parameters#-profiles|-profiles startup parameter}}.
You might need to adjust the path {{hl|$env:USERPROFILE\\AppData\\Local\\Arma` 3}} ({{hl|`}} is required before a space) to your needs if you are using the {{Link|Arma 3: Startup Parameters#-profiles|-profiles startup parameter}}.
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{

Latest revision as of 22:48, 11 September 2024

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