Visual Studio Code SQF Extensions: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[ *((ftp|http)s?:\/\/[^ ]+)([^{])=([^}])([^ ]+)" to "[$1$3{{=}}$4$5")
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 17: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

Microsoft Article

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:

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

  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 will be written to the Terminal window. You might need to adjust the path $env:USERPROFILE\\AppData\\Local\\Arma` 3 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": []
}