The road to intellij-elixir 1.0.0
summary
Porting Elixir's yecc/YAK grammar into JetBrains' Grammar-Kit plus a JFlex lexer forces concrete tradeoffs: interpolation requires a manual pushdown stack in Java because JFlex is finite‑state, Pratt parsing (Grammar‑Kit) handles no‑parentheses calls and operator associativity, and a year of work produces intellij‑elixir v1.0.0. Tests use Elixir and JInterface quotes vs PSI comparison to validate trees and uncover edge cases — the effort found three bugs in native Elixir and yields a working IntelliJ plugin.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 1:09Plugin motivation
- 3:23Parsing and grammar kit
- 6:27Implementing features
- 9:35Lexing and interpolation
- 12:24Stack management
- 16:04Operator associativity
- 20:14Pratt parsing
- 24:20Parsing expressions
- 27:54Function calls
- 30:59Grammar recursion
- 35:35Testing with JInterface
- 38:45Tokenizing bugs
- 42:09Stab expressions
- 45:53Do blocks
- 48:52Final tests and bugs
- 52:38Conclusion
related talks
40mIntelliJ Elixir Works Even if your Code Doesn't
40mIntelliJ Elixir Works Even if your Code Doesn't
29mYour Plugin for IntelliJ IDEA
38mErlang IDE done right
27mA Go IDE: Because Semantics Matter
58mHow We Support New Technologies, Languages, and Frameworks in IntelliJ IDEA
07mA quick word about JetBrains now and later
45mLet’s use IntelliJ as a game engine, just because we can
