An L5 OpenVSX Extension

A much delayed post as I have been nose to the grindstone on this extension!

Recap

If you missed week 3 post (yes we are in week 6 now):

Based on the schedule outline

Week 4:

Begin work on VS Code Extension with the following objectives:

Compile and run L5 for local development

Bundle L5 and Love2D into a single executable for sharing

Week 5:

Continue work on VS Code Extension.

Tooling experiment #1: Test LoveJS to run L5 in the browser. Test with VSCode integration and whether or not LoveJS is a viable tool for sharing in the browser or to continue with sharing executable.

Week 6:

Get feedback on VS Code extension and iterate on feedback.

Write tutorials using VS Code extension.

Tooling experiment #2: Create a repository for apt or homebrew package install for L5.

TLDR;

Published a beta version on OpenVSX (for VSCode forks like VSCodium)

Waiting on approval for VSCode Marketplace

Researched existing extensions for Love2d

Added L5 to Love2d resources list

Lee and Kit published a paper on L5!

Published OpenVSX Extension!

My first ever extension is live on the OpenVSX Registry!

Open VSX Registry

This means you can install it in any fork of VSCode or editor that uses the OpenVSX Registry.

Here is a screenshot of installing in VSCodium.

And here it is in action, with a sketch I put together for https://ifthen.cargo.site/.

I likely need to make some sort of release build action through GitHub workflows, but for now you can find the source code here. If you find any issues let me know! Give me feedback! Test it out!

GitHub - L5lua/L5-vscode-extension: Extension for VSCode and OpenVSX to run L5 scripts.

Research on Related Extensions and Projects

I looked through a couple of places for existing tutorials and references for this.

There's a nice book by Sheepolution that describes how to use Love2d and it has a nice chapter on using VSCode.

How to LÖVE

Fortunately my extension bundles a lot of this setup for you.

There's a Processing VSCode Extension:

Open VSX Registry

And a p5.js project starter, which isn't officially maintained by Processing or p5.js as far as I know.

Open VSX Registry

And many, many extensions to run Love2d from VSCode. I even found in the Love2d wiki an entry on using Sublime Text (a very old-school text editor that I use in my classes to avoid auto-complete).

https://love2d.org/wiki/Sublime_Text

But nothing actually mentioned in the wiki itself on any VSCode Extensions. I searched the Marketplace. There were results for both LOVE, love, Löve, love2d, Löve2d with inconsistent tagging across the board.

https://marketplace.visualstudio.com/search?term=love&target=VSCode&category=All%20categories&sortBy=Relevance

https://marketplace.visualstudio.com/search?term=tag%3Alove2d%26tag%3AL%C3%B6ve&target=VSCode&category=All%20categories&sortBy=Relevance

One in particular was really useful, by Jan Werder, that helped me figure out how to even get Love2d running from the extension.

https://marketplace.visualstudio.com/items?itemName=JanW.love-launcher

With MacOS, however, you actually can't run love from the path because it won't actually stop the sketch and you will end up with a bunch of Love2d windows running. This ended up being fixed by accessing the binary file directly. A huge headache caused by several concurrent Node child processes running.

JanW also maintains a huge list of Love2d tools and projects:

GitHub - love2d-community/awesome-love2d: A curated list of amazingly awesome LÖVE libraries, resources and shiny things.

and I added L5 to this list :)

added L5 library to utilities by samheckle · Pull Request #313 · love2d-community/awesome-love2d

So why no VSCode?

It is in progress! Right now my account is going through some verification. There were a lot of errors going through the publishing process. OpenVSX is a little easier, but requires 2 accounts: OpenVSX and Eclipse Foundation. eclipse.org was actually down for a lot of the weekend. But the docs are pretty straightforward:

Publishing Extensions

Whereas VSCode requires a dev.azure account AND some type of organization AND credit card info1.

https://code.visualstudio.com/api/working-with-extensions/publishing-extension

My account was flagged2 so I am awaiting approval through the support process. Hopefully by the end of the week!

In the papers

Two weeks ago was Computing within Limits, an online conference on building within technological boundaries. Lee and Kit published a paper on designing L5.

Designing L5: A Permacomputing Approach to Creative Coding

There were some other interesting papers at the conference:

Repurposing Mobile Devices (super relevant to my work now tbh)

The Limits of Time

Anyway

For those in New York this month, I have a couple of events coming up:

July 8th: Breaking Walled Gardens: an iOS Jailbreaking Workshop at NYC Resistor [Park Slope]

A lecture-workshop on how to jailbreak old iOS devices to repurpose them. As a part of this exercise, I've run a web server using my old iPod Touch 2 and will demo how to do that.

July 25th: MindSwap #5: (w)holesums at Hex House [East Williamsburg]

A bi-annual artist speaker series where each artist/researcher/academic/performer has 7-10 minutes to talk about a topic. Think of a variety powerpoint party with interactive art and formalized hyper-fixation rants. I made the poster using L5 :) Here is another variation of it:

This made me irrationally angry. Bring down M$.

I'm fake, obviously.