IntelliJ Candid Language Plugin

Hello :wave:

I recently made my repo public and released a rather primitive version but already usable of a plugin to support Candid inside any intellij based editor.

It has for now only a few basic feature but it is my goal to work on it on the upcoming weeks so expect to see a few updates.

  • :bulb: Syntax Highlighting
  • :keyboard: Auto Completion
  • :mag: Find Usage
  • :lipstick: Code Format

A random screenshot to show what it looks like with a random code taken on github :slight_smile:

Just wanted to share it, maybe it will be useful to someone even at the early stage.

13 Likes

Since I made this topic, I will keep using it as a sort of changelog but with more visual. I just made an update to v0.1.0 fixing a few things and features.

Auto import on completion
candid-import

Menu entry to create a new file
image

Show if a type is not from the current file during the completion:
image

Please note whenever I make an update although the entire release process is well automated through github actions - the jetbrains marketplace is manually reviewing every update. It usually takes around 1-2 business day. There’s also the option to directly grab the plugin on github in the release section if you want it faster.

1 Like

Incredible work! Thanks a lot!

Just can’t believe my eyes seeing this :smiley:
Screenshot from 2022-05-14 20-41-18

1 Like

@Alaanor looks great! I don’t use IntelliJ so I’m wondering if this is (or could be) implemented using the language server protocol so that other editors could benefit from it as well.

Nope, unfortunately intellij way to make a language plugin is different from implementing a custom language for the language server protocol that most editor use. I was aware of this constraint from the beginning and still made the choice to go with this. There’s some github repo that have tried making the conversion possible but nothing of production grade. Imo this is something that has to be build twice, let’s hope someone will do it during the supernova hackathon :slight_smile:

Amazing stuff Alaanor! If you’d like to implement the language server for this as well that would be grant material dfinity.org/grants.