Building #Regal’s linter rules in #Rego really pushed the language to its limits some years back, and both OPA and Rego have improved a lot thanks to that. Building parts of its *language server* in Rego too was perhaps taking it too far, but OTOH, the LSP is really just JSON in and JSON out, which is what OPA does best after all.
The bundled policies in Regal are normally embedded in the binary. That’s great for distribution, but kinda sucks for development as any change requires compilation. Not anymore! Today I merged some work of mine allowing live-reloading of the language server policies, and it’s such a *huge* difference seeing the result of a change a second after you made it. The video here shows live-editing of a LSP code action policy, and how adding a new “source action” item in the server immediately propagates to the client. Sooo much fun!