Skip to content

Add support for Verse programming language#7440

Open
simnJS wants to merge 4 commits into
github-linguist:mainfrom
simnJS:main
Open

Add support for Verse programming language#7440
simnJS wants to merge 4 commits into
github-linguist:mainfrom
simnJS:main

Conversation

@simnJS

@simnJS simnJS commented Jun 13, 2025

Copy link
Copy Markdown

Description

Verse is the multi-paradigm programming language developed by Epic Games for Unreal Editor for Fortnite (UEFN) and Fortnite Creative 2.0. Epic Games has publicly announced Verse as the official scripting language for Unreal Engine 6.

References:

Checklist:

@simnJS
simnJS requested a review from a team as a code owner June 13, 2025 17:28

@lildude lildude left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please follow the instructions in COMTRIBUTING.md. We don't need any other files or changes outside of those produced by following the docs.

@simnJS
simnJS requested a review from lildude June 13, 2025 20:11
@simnJS

simnJS commented Jun 14, 2025

Copy link
Copy Markdown
Author

I’ve checked the CONTRIBUTING.md and I believe I’ve addressed all the issues. Apologies for the incomplete first PR.

@lildude lildude left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need the cached license file from the grammar repo. It would have been created when you ran script/add-grammar to add the grammar.

I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):
https://github.com/simnJS/linguist/blob/main/samples/Verse/events.verse
https://github.com/simnJS/linguist/blob/main/samples/Verse/int.verse

This part of the template needs to point to the actual source of the samples, not your fork of Linguist. The license section also needs to state the license of the samples.

@simnJS

simnJS commented Jun 16, 2025

Copy link
Copy Markdown
Author

Hi, thanks for the feedback!

I understand the concern about popularity. However, I'd like to highlight a few important points that reflect the growing strategic relevance of the Verse language:

  • Verse is the official scripting language for Fortnite Creative 2.0 and Unreal Editor for Fortnite (UEFN), as documented by Epic Games here.

  • Epic has publicly stated its long-term goal is to make Verse the default programming language across the entire Unreal Engine ecosystem. This positions Verse not as a niche tool, but as a foundational part of future Unreal development, including Fortnite, UEFN, and eventually Unreal Engine itself.

  • Verse is already widely used in production by professional studios, particularly in private repositories and packaged UEFN experiences. This unfortunately limits the visibility of .verse files on GitHub search, despite significant real-world usage.

  • Supporting .verse in Linguist would directly encourage open-source sharing by making GitHub a more welcoming platform for Verse developers. Right now, many avoid publishing their work here due to the lack of syntax highlighting.

Let me know if you'd like any more concrete usage examples or documentation references—happy to help!

Thanks again for your time and consideration.

@simnJS
simnJS requested a review from lildude June 16, 2025 11:22
@lildude

lildude commented Jun 19, 2025

Copy link
Copy Markdown
Member

The popularity requirements are only made based on public repos as it's impossible to tell what private usage is. Yes, this does result in a chicken-and-egg scenario between encouraging usage and getting it recognised on GitHub, but this applies for all new languages and projects, regardless of backing. We don't make exceptions either as this would defeat the purpose of having a usage requirement which means we'd have to effectively pollute and degrade the quality of this project by accepting every hobby language submission too.

Popularity is evaluated every 3-4 months when a new release is made, so if this language is really gaining in popularity as you claim, it shouldn't take long to meet our usage requirements.

@simnJS

simnJS commented Jun 19, 2025

Copy link
Copy Markdown
Author

Okay thank you ! How did you check popularity for verse ? I don't find a query to see numbers of repo using it.

@lildude

lildude commented Jun 19, 2025

Copy link
Copy Markdown
Member

Okay thank you ! How did you check popularity for verse ? I don't find a query to see numbers of repo using it.

I used the search link you provided. I also removed the using keyword to see if that made much of a difference; it didn't. It's not possible to easily determine the number of repos from the search results at the moment, hence we're using the temporary calculating method detailed in the issue referenced in the CONTRIBUTING.md file.

@xxll0l xxll0l mentioned this pull request Jun 20, 2025
19 tasks

@lildude lildude left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looks like you didn't use the script/add-grammar script to add your grammar as per the CONTRIBUTING.md file as had you done so, it would have failed with a source 'vendor/grammars/verse-grammar' contains no grammar files error because your grammar repo is not in a format used by editors.

We expect the grammar files to be in these locations, depending on the extension. Your grammar repo isn't.

Please fix your grammar repo and re-add your grammar.

@simnJS

simnJS commented Sep 15, 2025

Copy link
Copy Markdown
Author

I looks like you didn't use the script/add-grammar script to add your grammar as per the CONTRIBUTING.md file as had you done so, it would have failed with a source 'vendor/grammars/verse-grammar' contains no grammar files error because your grammar repo is not in a format used by editors.

We expect the grammar files to be in these locations, depending on the extension. Your grammar repo isn't.

Please fix your grammar repo and re-add your grammar.

Hi, sorry about that — I thought I had followed the steps correctly, but I clearly misunderstood. This is actually the first project I’m contributing to, so I really appreciate your guidance.

I’ll work on fixing the grammar repo in the next few hours and re-add it properly.

Just to confirm, does Verse already meet the popularity requirement to be accepted as a supported language?

Thanks again for your help!

@simnJS
simnJS requested a review from lildude September 15, 2025 19:02
@simnJS

simnJS commented Nov 27, 2025

Copy link
Copy Markdown
Author

Hello, the Verse language is becoming increasingly popular! It was officially announced last month as the official language of Unreal Engine 6. It’s even being taught in some schools. Do you think the language still deserves its “pending popularity” status?

@lildude

lildude commented Nov 27, 2025

Copy link
Copy Markdown
Member

Popularity is only reassessed when I'm preparing to make a new release which happens approx every 3-4 months. If it meets our requirements and the PR's tests pass, the PR will be merged. I will not add a comment each time as this is unnecessary noise telling you what the label does.

@lildude

lildude commented Nov 27, 2025

Copy link
Copy Markdown
Member

It also still looks like you've still not used the script/add-grammar. Please do so as it'll save everyone time when the language is reassessed.

@simnJS

simnJS commented May 12, 2026

Copy link
Copy Markdown
Author

Hi @lildude, I've fully redone this PR following CONTRIBUTING.md step by step:

  • rebased on upstream/main
  • used script/add-grammar (grammar repo restructured + non-standard keys cleaned up grammars/verse.tmLanguage.json now compiles without warnings)
  • replaced my hand-written samples with real-world MIT-licensed code from sprintermax/UEFNVerseSnippets, with proper source/license attribution in the PR body
  • updated the PR description with explicit references

All three previously-failing tests (test_submodules_are_sorted, test_all_languages_have_grammars, test_submodules_are_in_sync) pass locally. Ready for re-evaluation at the next release window. Thanks for your patience.

@simnJS

simnJS commented May 12, 2026

Copy link
Copy Markdown
Author

Fixed the Check Licenses failure: the cached verse-grammar.dep.yml was pointing at the old submodule SHA after I bumped the grammar. Re-ran bundle exec licensed cache and amended. New HEAD: eafe54dc.

@lildude lildude left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

samples/Verse/VerseFeatures.verse is too big for our needs (if it's suppressed in the diff, it is too big). Please replace it with a smaller sample.

@simnJS

simnJS commented May 12, 2026

Copy link
Copy Markdown
Author

Thanks for the quick review! Replaced VerseFeatures.verse with Hexadecimal.verse (~5 KB, same MIT-licensed source). Should display properly in the diff now.

@simnJS
simnJS requested a review from lildude May 12, 2026 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants