VSCode Extension : Run
After a few months, the extension has recently passed 10’000 installs! (2024-08) After about a year, we’re past 40’000! (2025-05)
I discovered that making some changes to Visual Studio Code’s
launch.json
allows me to start the engine executible and launch my test project. I was originally having issues with SCons not doing incremental builds, which kick-started the development of this extension, but it’s fixed now. Additionally, all the features I wanted have been implemented. Hence, development of this extension will most likely not continue.
While working on Godot, I was annoyed by something. I was using VSCode to edit and build the engine, however I had to keep a separate File Explorer open to the bin
folder to launch my builds of Godot. I already have a lot of windows open, and I try to keep them to a minimum. The window itself is also not the same size (unless I pout it to fullscreen, which I don’t like to do with Explorer windows), so when I’m alt-tab’ing between windows they don’t align nicely in a grid. I know, OCD, but that’s the way it is for me.
To furthur reduce clutter and keep my alt-tab tidy, I created this small extension that would allow me to launch the builds directly from VS Code. I also published it to the VS Code marketplace so that I could easily use it accross devices.
When I went to publish, I found another similar extension. However, it only allows for starting .exe
files, using wine to start them on Linux. The main difference is that my run
allows easy running or opening of any file by utilising the openExternal function, providing a useful additional feature.
Another nice thing about it is that when starting it with the Terminal option, I can close the Terminal in VSCode to close all of the open Godot windows quickly (sometimes the engine takes a while to close when there is a running process).
TODOs
Most important resources
Reports generator
As this extension is getting a lot of downloads, I wanted to see how it’s usage is progressing. The Admin pannel allows you to download basic daily download stats, so I’ll work with that.
Parsing Excel
The daily reports gets exported to an Excel file, so SheetJS was a logical choice for handling the data.
However, the biggest issue was date parsing.
At first, date parsing wasn’t working at all, but switching CDN made it work (read the first warning here).
The documentation for Date, while present here, is incomplete, and this issue describing the usage of dateNF
was a lifesaver.
I originally tried working with JSON and sheets. However, JSON conversions will force a loss of typing at inconvenient stages, so it is much better to use Arrays of Arrays to keep the relevant type unconverted for the longest amount of time.
Graphing
The handling of the date is the first bit; the second bit is graphing.
While I could do it in Excel or LibreOffice Calc, I also wanted the graph to be easily generated and be present in the README. Thankfully, I’ve already looked into this in my post on UML modeling tools, and MermaidJS is still as good as ever.
Below, you can upload multiple Excel files, which will be merged, exported, and a MermaisJS diagram will also be generated below, gr ouping the data by month.
Merge selected Excel report files:
Release 1.1.0 - settings & better packaging
Following a feature request, I added some extra settings to the extension.
However, before publishing, I went and updating my packages. This time around, VSEC gave an output of what files were included, and the size.
I was sort of appaled by the 1MB+ size of a miniscule extension, so I removed what I could. Lo and behold, the extension is now a reasonable size: 20 odd kilobytes.
Not bad, not bad.
![]() |
![]() |