Visual Studio Code SQF Extensions: Difference between revisions
(Created page with "{{TOC|side}} This page cointains information about [https://code.visualstudio.com/ Microsoft's Visual Studio Code editor] and how it can be used for content creation in Arma....") |
Lou Montana (talk | contribs) m (Fix) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{TOC|side}} | {{TOC|side}} | ||
This page | This page contains information about {{Link|https://code.visualstudio.com/|Microsoft's Visual Studio Code editor}} and how it can be used for content creation in {{arma}}. | ||
The following is a list of recommended extensions. Note that it might be incomplete or out of date. | == Extensions == | ||
{{Feature|informative|See the {{Link|https://code.visualstudio.com/docs/editor/extension-marketplace|Microsoft article}}.}} | |||
The following is a list of recommended extensions. Note that it might be incomplete or out of date.<br> | |||
{{Link|https://marketplace.visualstudio.com/search?term{{=}}SQF&target{{=}}VSCode&category{{=}}All%20categories&sortBy{{=}}Relevance|Search "SQF" on the marketplace}} to find new or better extensions in that case. | |||
{| class="wikitable" | {| class="wikitable" | ||
! Extension | |||
! Author | |||
! Remark | |||
|- | |- | ||
| {{Link|https://marketplace.visualstudio.com/items?itemName{{=}}Armitxes.sqf|SQF Language}} | |||
| Armitxes | |||
| Syntax highlighter. | |||
|- | |- | ||
| | | {{Link|https://marketplace.visualstudio.com/items?itemName{{=}}SQF-VM.sqf-vm-language-server|SQF-VM Language Server}} | ||
| {{User|X39}} et al. | |||
| Language server for sqf (checks code for errors). | |||
|- | |- | ||
| | | {{Link|https://marketplace.visualstudio.com/items?itemName{{=}}billw2011.sqf-debugger|SQF Debugger}} | ||
| billw2011 | |||
| Debug sqf scripts (callstack, variables, breakpoints, ...) | |||
|- | |- | ||
| | | {{Link|https://marketplace.visualstudio.com/items?itemName{{=}}EelisLynne.sqf-wiki|SQF Wiki}} | ||
| Eelis Lynne | |||
| Shortcut to go to the Biki page of the selected command/function. | |||
|} | |} | ||
= Tasks = | |||
== Tasks == | |||
To add tasks to your project follow these steps: | To add tasks to your project follow these steps: | ||
# Open the folder you are working in with VSCode | # Open the folder you are working in with VSCode | ||
# Create a new directory at the root of it called {{ | # Create a new directory at the root of it called {{hl|.vscode}} | ||
# Create a file called {{ | # Create a file called {{hl|tasks.json}} inside of that directory | ||
# Add the following content to it: | # Add the following content to it: <syntaxhighlight lang="cpp"> | ||
<syntaxhighlight lang= | |||
{ | { | ||
// See https://go.microsoft.com/fwlink/?LinkId=733558 | // See https://go.microsoft.com/fwlink/?LinkId=733558 | ||
Line 33: | Line 49: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Start | The following snippets will be listed under the {{hl|"tasks"}} tag. Tasks are separated by a comma. | ||
This task launches | |||
<syntaxhighlight lang= | === Start {{arma3}} (Mission Editing) === | ||
This task launches {{arma3}} and opens a mission that is located inside of your working folder directly in Eden. | |||
<syntaxhighlight lang="cpp"> | |||
{ | { | ||
"label": "Start Arma 3 (Mission Editing)", | "label": "Start Arma 3 (Mission Editing)", | ||
Line 47: | Line 65: | ||
"args": [ | "args": [ | ||
"${workspaceFolder}\\mission.sqm", // Loads directly into editor if you have a mission folder open in VSCode | "${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 | "-mod=!Workshop\\@CBA_A3;!Workshop\\@My Other Mod", // Add mods separated by ";", absolute paths work as well | ||
"-debug", | "-debug", | ||
"-skipIntro", | "-skipIntro", | ||
Line 62: | Line 80: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Stop | === Stop {{arma3}} === | ||
'' | |||
''Immediately'' closes {{arma3}}. Closing the game via the X button or {{Controls|Alt|F4}} would normally take some time. The name of the exe you are using can be found like this: | |||
# Open task manager | # Open task manager | ||
# Select the "Processes" tab | # Select the "Processes" tab | ||
# Find | # Find {{arma3}} | ||
# Expand the entry | # Expand the entry | ||
# Right click on the first sub entry | # Right click on the first sub-entry | ||
# Select "Go to details" | # Select "Go to details" | ||
# The "Name" column (by default the first one) contains the exe name | # The "Name" column (by default the first one) contains the exe name | ||
<syntaxhighlight lang= | <syntaxhighlight lang="cpp"> | ||
{ | { | ||
"label": "Stop Arma 3 Diag", | "label": "Stop Arma 3 Diag", | ||
Line 85: | Line 104: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Track RPT == | === Track RPT === | ||
Changes to the [[RPT]] will be written to the Terminal window. You might need to adjust the path {{ | |||
<syntaxhighlight lang=json> | 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|`}} 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"> | |||
{ | { | ||
"label": "RPT Watcher", | "label": "RPT Watcher", | ||
"type": "shell", | "type": "shell", | ||
"command": "powershell -command | "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": [] | "problemMatcher": [] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{GameCategory|arma3|Editing}} | |||
{{GameCategory|arma3|Tutorials}} | |||
[[Category:Community Tools]] |
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:
- 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 directory
- 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:
- 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 files 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": []
}