Skip to content
0:00 / 0:00

#raku#intellijplatform#ide

How We Built Comma, the Raku IDE, on the IntelliJ Platform

JetBrains

236K subscribers • 29 videos on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.

Intermediate. Assumes working knowledge.

7K views6 years ago1 recommendation

Programming languagesTools and practiceVim, Emacs and editorsCompilers and interpreters

An overview of building a dedicated IDE for the Raku language by leveraging the IntelliJ Platform and its Program Structure Interface.

This webinar tells the story of how Edument build an IDE for the #Raku language using the IntelliJ Platform. Building an IDE from scratch would have been prohibitively expensive. By contrast, building on the IntelliJ Platform meant starting from a mature base, getting a great deal of generic IDE functionality for free, and therefore being able to focus on the parts of the experience specific to the Raku language. The #webinar covers: * How the IntelliJ Platform models code through the Program Structure Interface * An overview of the things that need to be built to provide support for a new language on the IntelliJ platform * How to go from a language support plugin to an IDE * Some things the Comma team wish they'd known sooner (or, how to make different mistakes!) Slides: jnthn.net/papers/2020-intellij-platform-webinar.pdf Resources: IntelliJ Platform SDK - jetbrains.org/intellij/sdk/docs/welcome.html IntelliJ Platform - jetbrains.com/opensource/idea/ IntelliJ Platform on Twitter - twitter.com/JBPlatform IntelliJ IDEA Blog - blog.jetbrains.com/idea/ JetBrains on Facebook - facebook.com/JetBrains/ Edument - edument.se/en #JBPlatform About the Presenter: Jonathan Worthington (@jnthnwrthngtn) is a software architect and developer with an interest in compilers, runtimes, concurrency, and developer tooling. He currently leads the Edument Prague office, which includes the team building Comma, an IDE for the Raku programming language. Aside from Comma, Jonathan has contributed extensively to the Raku programming language, working on the design and implementation of concurrent and parallel language features, the object system, garbage collection, and runtime optimization.

Why it's here

1 person recommends this

Moments people linked to

u/oilshellin r/ProgrammingLanguages • Recommends

How We Built Comma, the Raku IDE, on the IntelliJ Platform

u/AntiRedditFain r/ProgrammingLanguages • Mentions

On “What parser do IDEs and text editors use?”

I would also recommend watching this talk about how the Raku lang folks implemented their plugin/IDE for IntelliJ - link to this video This doesn't go into too much technical depth - just enough to be able to appreciate the work that goes into adding support for a new language, say. This should help you understand the ecosystem much better.

u/raiphin r/ProgrammingLanguages • Mentions

On “References about parsers used in IDE”

Jonathan Worthington recently recorded a "webinar" discussing implementing Comma, an IntelliJ based IDE for Raku. Here's a link to the start of discussion of "the technical side of things". He goes straight into discussing tokens and parsing in general. After about 8 minutes or so he gets to discussing writing a tokenizer and parser to fit IntelliJ's requirements, and the issues of gracefully handling incorrect code etc.
3View on Reddit

u/raiphin r/ProgrammingLanguages • Mentions

On “What's a good open source project for learning about programming languages?”

>Tree-sitter bindings One could argue that this is a big problem, given that, as I discussed in my SO answer, incremental parsing is currently a major weak spot in the grammar/parsing tech built into Raku. But Tree-sitter would be a huge step backwards for Raku because Raku's grammar DSL is *significantly* more convenient/ergonomic^(1) and capable^(2) than Tree-Sitter's. And, as Jonathan Worthington^(3) discusses in his video presentation about developing the incremental parsing of Raku in CommaIDE (for about 90 seconds, starting here), it's arguably better to stick with Raku grammars due to their convenience/ergonomics and capabilities, and lightly post-process them as needed. ^(1) Fi…
2View on Reddit