Jump to content

Recommended Posts

Advanced Developer Tools
by
Leopard20
dua-BA78--hFlNB34hJR5EEP-hgyWexJJGhmY5zm

 

Short description:

An addon that adds completely new and revamped developer tools to the game, including a Debug Console with syntax highlighting, Config Viewer with many new features, etc.

Long description:
If you're a mod/mission maker, then you definitely must've used the Debug Console, the Config Viewer, as well as other in-game tools that can help you test and verify your codes and configs.

But when you use those tools, the first thing that strikes you is their clunkiness and a rather user-unfriendly design.

For instance, lack of syntax highlighting in Debug Console means that you'll have to actually read every single word of your code in order to make sure you haven't made a typo, etc.
That's why most of us use third party code editors such as Visual Studio Code and Notepad++. But this means that you'll have to switch out of the game every time you want to write and test some code.
Or let's take a look at the Config Viewer: every time you want to go one level deeper into the config, the whole config viewer must be reloaded! And if you have hundreds of mods loaded, this means you have to spend more time waiting for the Config Viewer to load than actually viewing the config!

This is exactly why I made this mod: to make the Arma environment more user friendly to the mod/mission makers.

So without further ado, let's take a look at the features!

Screenshots:

Spoiler

 

Y_Q9HFpk2AM97Wf7WfuVxnH93rtRS_ZR8Zy221X-

 

5ToxaX4Wb0-0jCicwgTezQIv2E24Y0XABGv-cpsQ

 

MEQaPs03t-BE8jUEl4mp0v7AS8k4unZzEGSa_70z

 

Hx9Z38JwGh6sVgtIHXqmpDCFROVfNckdTpG8Al19

ro5w0lyAmSrOcidujF5y-s6EURhn_fZYtHNgIgGb

 

mVPeq7DR3uEXNfvIdwZW3Tral390H0DbmciWlA-X

 


Review Video (Thanks to Instant Arma):

 

Spoiler

 

General Design:
A familiar Windows design, with resizable and moveable windows. In addition to other Windows features like snapping the Window to the screen borders. Enjoy a multi window experience in Arma 3!
Customize the mod the way you want. The mod offers a wide variety of customization options, including theming! You can recolor almost everything!

Debug Console:
- Enjoy SQF programming with syntax highlighting, with several perdefined themes! (such as VSCode Dark+)
- Improved code editing features, such as Tabs (tab key), Case Conversion (Ctrl+Shift+U), Undo/Redo (Ctrl+Z, Ctrl+ Y), Word Delete (Ctrl+Backspace/Delete), Commenting Out (Ctrl + Q), and many many more!
- Multi-Tab design! Edit multiple scripts at the same time!

- Search and Replace with various search options, along with Normal, Extended, and Regex (not available yet) search modes!
- Advanced auto-completion suggestions (similar to VSCode/Notepad++), including event handler names, functions, magic words, etc.
- View the command syntax information in a new and improved Scripting Help window (F1)
- Complete preprocessor support, using SQF-VM's excellent preprocessor (thanks to @x39)
- Added a new button that let's you run the code in Scheduled Environment directly (no need for spawn anymore)
- Added a new button for custom RemoteExec: remoteExec the code for your target client(s)
- Added a text box for providing arguments to your test code (no need for _args call {...} anymore)
- Open files (from addons) and functions to view/edit them
- A dedicated Execution History window. Want to re-execute a command you tried some time ago? You know where to find it!
- An advanced Color Picker at your disposal, which can come really handy if you're designing GUI elements.
- Magic Word: Typing this into most text boxes will open the debug console, and you can continue editing your code in there, and save it back into that text box!

Watch:
- Define as many Watched Expressions as you want! You can also customize their colors, and even pin them so that you can see them during gameplay!

Draw:
- Are you testing something that requires visualization using points and lines? The setup takes too long? Fear not! The mod comes with a "Draw" feature that let's you define custom "drawIcon3D"/"drawLine3D"s with just a few clicks! And you can define as many of them as you want!

Config Viewer:
- A super fast config viewer with a custom "Tree" design. No more annoyingly long loading times when you open the Config Viewer!
- Customize the config viewer colors to you liking
- Replaces the vanilla config viewer in the context menu of Eden (right click on entity) for faster entity lookup.
- Config Search: Search in the config in classes,
- Go To Config
- Accidentally went to another config? Want to go back? Use the Back and Forward feature!
- An advanced Data Viewer for viewing various types of config data, including: arrays, text, images, colors, models, and sounds (sounds don't work very well at the moment)
- Dedicated Bookmarks window


Function Viewer:
- A function viewer with syntax highlighting, search ability, and several recompilation options.


Documentation:

The documentation is available in the mod folder. You can find the online version here.

⚠ If your input method is set to anything other than English in Windows, some input related features (shortcuts, auto-completion of brackets, etc.) might be broken. I'll try to address this issue in future updates.

Download:
Steam Workshop

Note: This is a preview release. Please provide feedback regarding the mod features, such as design, what you'd like to see, etc. Thank you!

Localization:
Interested in translating the mod to your language? Or maybe the translation is not good and you'd like to improve it? Please visit the localization repository on GitHub.

Known issues:

Spoiler

- The mod uses non-whitelisted extensions (regex and preprocessor). Please disable BattleEye if you want them to load properly.
- The editor can get slow if your code is too long (larger than ~300 lines). This is a game issue and I can't fix it
- There are a couple of issues with window orders (Arma issue)


FAQ:

Spoiler

Q1 - I turned off all options and now the Debug Console doesn't appear anymore! What should I do?
A1 - Use the magic word! Type "dbug" into any text box (like the vanilla debug console) and it'll pop up!

Q2
- What language did you write this in?
A2 - SQF and C++ (the preprocessor and regex)

Q3 - What is the save feature for?
A3 - It saves the contents of the debug console into the control (text box) if you used the Magic Word feature.

Q4 - Can I edit external files?
A4 - Not in this version, but in future versions, I'll add an optional extension that can handle this as well.



Requirements:
None (Arma 3 v2.06+)

  • Like 19
  • Thanks 8

Share this post


Link to post
Share on other sites

Hey guys.

This mod can be a bit complicated to use at fist. Please stand by for a tutorial video.

  • Like 2

Share this post


Link to post
Share on other sites

Nice. Support for include and define immediately sold me this. 👍

Couple of suggestions (very fast test, so if I missed these, disregard):
- setting to define font size would be neat (in the code windows etc, not menus), the code window font is a bit big-ish to my personal liking (1920x1200, uiscale small)
- setting to widen the code window? Changing the size of the window from the buttons in the top row is nice but doing that blocks the watch field stuff, so made me wish for a setting for just widening the whole console window
- without knowing the plans with the export config, any possibility to have have a 'export selected class' feature, as in export the currently selected config class?
- One thing that could be useful would be copying the config path of selected config value into clipboard for using within a script (as in result would be (configFile >> "blah" >> "bleh" >> "bluh"))

"bugs":
- Opening the GUI editor (this would sorely need updating, winkwink 😛) opens it behind the console (as in console stays open over it). Not a biggie of course but would kinda make more sense if the console closed automatically

Share this post


Link to post
Share on other sites

@h -
Thanks for the feedback!
 

4 hours ago, h - said:

setting to define font size would be neat (in the code windows etc, not menus), the code window font is a bit big-ish to my personal liking (1920x1200, uiscale small)

Good idea! I'll see what I can do!

 

4 hours ago, h - said:

setting to widen the code window? Changing the size of the window from the buttons in the top row is nice but doing that blocks the watch field stuff, so made me wish for a setting for just widening the whole console window

Yeah I wanted to add this in a future update.

 

4 hours ago, h - said:

- without knowing the plans with the export config, any possibility to have have a 'export selected class' feature, as in export the currently selected config class?

Yes.

 

4 hours ago, h - said:

One thing that could be useful would be copying the config path of selected config value into clipboard for using within a script (as in result would be (configFile >> "blah" >> "bleh" >> "bluh"))

You mean besides what you see in "Path:" in config viewer?

 

 

4 hours ago, h - said:

Opening the GUI editor (this would sorely need updating, winkwink 😛) opens it behind the console (as in console stays open over it). Not a biggie of course but would kinda make more sense if the console closed automatically

not much of a bug as you can close the debug console (Esc) and it'll go away! 😜 but I'll fix it!

Share this post


Link to post
Share on other sites
2 hours ago, Leopard20 said:

You mean besides what you see in "Path:" in config viewer?

Oof, me just being blind + dumb.

Share this post


Link to post
Share on other sites

Update


# Added:
* Function Viewer + option to replace vanilla function viewer
* Option to replace vanilla Config Viewer in 3DEN
* Option to set Debug Console width scale in docked mode

# Fixed:
* Incorrect .rvmat error
* Camera couldn't be rotated in data viewer when the game was paused.
* Line numbers were not aligned with the text in Debug Console

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Update:
# Fixed:
* Couldn't spectate the AI in spectator
* Contents of the Debug Console wouldn't be saved when you opened the Spectator, Camera, etc.

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Update:
# Added:
* German localization (thanks to R3vo and Th3Jock3R)
* "Draw" now supports ASL positions as well.

# Improved:
* Safety measures against invalid variable names for "Draw" arrays

# Fixed:
* Next line and tabs were broken for non-English texts. Other features are still broken, but I won't fix them until v2.02 because my fixes will make the editor even slower than it already is. However, in v2.02 I can use the forceUnicode command and easily fix this.
* Minor bug fixes

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Huge update - v1.2:
# Added:
* Complete preprocessor support. Using SQF-VM's excellent preprocessor (thanks to @x39).
* Complete regex support using C++ regex library.
* Complete mod documentation. If you need help with any part of the mod, please refer to the documentation.
* Debug Console: Auto completion for numbers.
* Debug Console: Export to Notepad++.
* Function Viewer: Added Find (but no Replace, obviously!)
* Watch: You can now change the size of the Watch both horizontally and vertically.
* All buttons now have a cool blue border when you hover the mouse over them.

 

# Improved:
* Config viewer tree view has been updated to look more like vanilla tree view.
* Config viewer quick search can now find results in all cached configs.
* Significant speed boost in config viewer (more caching + use of hashmaps + other optimizations).
* Debug console now properly selects the last open document instead of jumping to the last tab.
* Debug console can now highlight (underline) commands and numbers.
* Performance improvements in Debug console (minimal).
* You can now scroll through tabs using the mouse wheel.
* The arguments and number of cycles are saved when you close the debug console.
* Faster command caching.

 

# Fixed:
* All problems with non-English characters (e.g. Russian) should be fully solved now.
* Occasional crash when opening the config viewer if the last opened config path was under missionConfigFile.
* Unable to switch to Spectator mode when inside a vehicle.
* The mod no longer auto capitalizes the commands.
* Fixed a bug in config search that prevented searching in Values only.
* Long file names couldn't be displayed in the tab name properly.
* Large variables were being saved in the mission namespace, making the saving process take longer and generate larger save files (oops).
* Fixed a typo that caused the Draw code to compile incorrectly and thus throw errors.
* The Find Next buttons were a bit grayed out, making them look disabled.

 

Note 1: This version adds two non-whitelisted extensions (one for regex, and one for preprocessor), which will probably be blocked by BattleEye. If you run into problems, please disable BattleEye.
Note 2: Even if you've been using this mod for a long time and are familiar with its features, please review the Draw section in the documentation, as it is the least understood feature.

  • Like 2
  • Thanks 3

Share this post


Link to post
Share on other sites

Hey @Leopard20,

I'm having an issue navigating the Config Viewer (since the update):

Mouse L-Click is defaulting to opening the class tree [+] but not selecting the class per se, making me scroll with the cursor keys to view it's content (right panel).

Thanks,

Cheers.

Share this post


Link to post
Share on other sites
6 hours ago, RCA3 said:

Hey @Leopard20,

I'm having an issue navigating the Config Viewer (since the update):

Mouse L-Click is defaulting to opening the class tree [+] but not selecting the class per se, making me scroll with the cursor keys to view it's content (right panel).

Thanks,

Cheers.

Thank you for the report!

Update is up!

#Added:
* Function Viewer now opens to the last viewed function.
# Fixed:
* Esc key would close all windows if Function Viewer was on top
* Single-clicking on tree items in Config Viewer would sometimes expand the tree instead of just selecting it.

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
On 1/21/2021 at 11:59 PM, Leopard20 said:

- The game may occasionally crash if you create a new display from the debug console. To circumvent the issue please use the Scheduled execution button.

The issue might be because you are creating the debug console as a display on top of the 3den display. If you create another display on top of the 3den display all others will be closed. But since the display is still running scheduled code it crashes as it is not done yet.

Share this post


Link to post
Share on other sites
3 hours ago, 7erra said:

The issue might be because you are creating the debug console as a display on top of the 3den display. If you create another display on top of the 3den display all others will be closed. But since the display is still running scheduled code it crashes as it is not done yet.

Maybe that too, but I was referring to creating a display during a mission. It only crashed when you used the exec button, and according to wiki, creating a display in UI context causes a crash. So I just move it to my scheduler instead and it executes in the next frame.
The update will be up once update v2.06 of the game is released... (been waiting forever for that to happen😞)

  • Like 1

Share this post


Link to post
Share on other sites

Huge Update:
Advanced Developer Tools V2.0:

https://steamcommunity.com/sharedfiles/filedetails/?id=2369477168
Changelog:

# Debug Console: Now the most advanced SQF IDE

#----Added----:
* IntelliSys: A powerful real-time static code analysis tool (linter), which is particularly helpful to beginners for learning the SQF syntax more quickly. It is currently not 100% complete (especially preprocessor commands), but it can catch several common mistakes, including both parsing and syntax errors.

* Completed Preprocessor: The mod's built-in preprocessor should now support all preprocessor commands correctly. However, SQFVM still remains the default preprocessor. If you want to change the preprocessor, you can do so in settings (the mod falls back to built-in preprocessor if SQFVM extension fails, e.g. due to AV)
* Partial word suggestions from everywhere: e.g. you can type "sdmg" for "setDamage", "hmapa" for "createHashmapFromArray", "vec2d" for "BIS_fnc_rotateVector2D", etc. which drastically increases your typing speed.
* Fake tabbing support: Replaces tab characters with 4 spaces for better readability in code. Also adds "tab jumping" so that you can navigate more easily
* Tabs can now be moved
* Tabs can now be renamed
* Bracket matching: Matched/unmatched brackets are now highlighted. The colors can be changed in settings.

* Option for bracket auto-completion
* Exec History: Added Search function + copyable text.
* Option to disable executing code via Enter (Enter becomes "next-line")
* Option to load functions from the mission namespace (useful for e.g. ACE, which doesn't use CfgFunctions)

 

#----Improved----
* Significantly faster tokenization speed (2~3x faster) thanks to regex
* Search and Replace now uses the vanilla regex instead of extension
* Improved code commenting features. Ctrl+Q and Ctrl+/ now always use single line comments //. Ctrl+Shift+Q and Ctrl+Shift+/ now always use multi-line comments /* */
 

#----Fixed----

* Several bugs in Search and Replace
* Crash when using createDialog/createDisplay
* Invalid compiler error when the SQFVM preprocessor failed (due to being blocked by AV)

# Config Viewer: A professional Config Viewer

#----Added----:

* Overhauled Config Search: Config search window was remade and overhauled with many new options + bug fixes.
* Hierarchy viewer/generator: Helps config makers create inherited classes more quickly with just one click, as well as seeing which classes are inherited, in a neat tree view.
* Regex support has been added to config search (both Quick Search and Full Search)

* Data viewer window is now resizeable (e.g. you can scale pictures)
* Added coordinate axes to Model Viewer
* Added moving cam to Model Viewer
* New keybinds for searching: Enter-> forward quick search; shift + Enter -> backward quick search; F3 -> forward full search; Shift + F3 -> backward full search
 

#----Improved----
* Added more classes (e.g. cfgGlasses, cfgNonAIVehicles) to quick search
* Full Search is now slightly faster

#----Fixed----

* Broken tree view and config data, due to inherited classes having the same hash as their parents 😞
* Several bugs in full search.
* Quick search not able to move forward in some cases
* Camera bug in model viewer
 

  • Like 4

Share this post


Link to post
Share on other sites
21 hours ago, _Tally said:

Quick question did you make the tutorial video yet?

Nope. Instead I made a documentation PDF.

  • Like 1

Share this post


Link to post
Share on other sites
12 hours ago, _Tally said:

Ait. Found it.
https://drive.google.com/file/d/1ZIcbDxBmVb6uRP6AZ9FLji7h6PqPmTt-/view

ps. I would like to help out / support your work (You've helped me out more then once on the A3 discord).
Would you mind if I made a tutorial video for you?

Thanks. There's no need. The PDF will do for now. I might make a series of SQF Tutorial videos next year if I can find the time, and if I do I'll be using this mod and will introduce its features.

Share this post


Link to post
Share on other sites

For your information, @Leopard20, it seems to have an incompatibility between ADT and the LAMBS danger mod (no we don't want to choose between this two wonderful mods !!). Steps to reproduce :

ARma luanched with : CBA 3.15.6, lambs 2.5.3 and ADT : MIssion with one soldier in VR map, at mission start :

23:30:16   Error in expression <QGVAR(debug_drawRectCacheGame)>
23:30:16   Error position: <(debug_drawRectCacheGame)>
23:30:16   Error Missing ;

Reported in lambs danger thread

 

Share this post


Link to post
Share on other sites
11 hours ago, tanin69 said:

For your information, @Leopard20, it seems to have an incompatibility between ADT and the LAMBS danger mod (no we don't want to choose between this two wonderful mods !!). Steps to reproduce :

ARma luanched with : CBA 3.15.6, lambs 2.5.3 and ADT : MIssion with one soldier in VR map, at mission start :


23:30:16   Error in expression <QGVAR(debug_drawRectCacheGame)>
23:30:16   Error position: <(debug_drawRectCacheGame)>
23:30:16   Error Missing ;

Reported in lambs danger thread

 

I just tested and there's no problem for me.

Share this post


Link to post
Share on other sites
2 hours ago, Leopard20 said:

I just tested and there's no problem for me.

Mmmm. Will test again this evening. Thank you for your quick reply.

Share this post


Link to post
Share on other sites
1 hour ago, tanin69 said:

Mmmm. Will test again this evening. Thank you for your quick reply.

BTW, I tested it on the latest dev branch. If you encountered that on the Stable branch it may have been a game issue that's been fixed already.

Share this post


Link to post
Share on other sites
6 hours ago, Leopard20 said:

BTW, I tested it on the latest dev branch. If you encountered that on the Stable branch it may have been a game issue that's been fixed already.

Thank you Lepoard20. I continue the discussion in Lambs thread, as it seems more related to LAMBS than ADT.

Share this post


Link to post
Share on other sites

Update:

https://steamcommunity.com/sharedfiles/filedetails/?id=2369477168

 

# Added:
* The max search depth can now be specified in Config Search
* Passive Config Scan: Scans the config as you scroll (only small classes with fewer than 1000 entries are scanned). This feature can be disabled in settings
* Inherited config properties can now be distinguished in one of two ways: indenting or "dimming" their color, which can be set in settings.
* Inherited config classes can now be distinguished by dimming their color. This feature can be disabled in settings.
* Shortcut for Hierarchy Viewer: Ctrl+H

 

# Improved:
* Data Viewer has a better auto detection algorithm now
* Hierarchy Viewer can now be opened in multiple windows, and is resizeable.

 

# Fixed:
* Some "calling" commands, such as waitUntil, where missing and IntelliSys showed invalid errors.
* Fixed a preprocessor bug with #defines (incorrect parsing)
* Fixed incorrect hierarchy order in Hierarchy Viewer
* Error when selecting a mod in Addon Tree View

  • Like 5
  • Thanks 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×