Skip to content

Fennel support #2963

@technomancy

Description

@technomancy

At the Clojure Conj a few days ago, I mentioned I wished we had something like Calva for Fennel, and @PEZ replied that maybe we could just make Calva work for Fennel instead of rebuilding the wheel. Fennel is not a dialect of Clojure, but for the purposes of this work, I guess we can just pretend that it is and treat it like ClojureDart or Jank.

As I understand it, this would consist of several changes:

  • detect .fnl and .fnlm files
  • switch the nrepl server command to a Fennel-compatible one
  • switch the LSP server command to fennel-ls
  • replace the list of keywords used for syntax highlighting
  • maybe replace indentation rules (maybe we can skip this if formatting is delegated to LSP)

I have made some progress for the second point by updating my own nREPL server for Fennel, which now works respectably well: https://git.sr.ht/~technomancy/jeejah

However, when it comes to the changes needed in Calva itself, I am willing to give it a shot, but I think I would need some guidance for where to look. I have never before used Calva, VS Code, Typescript, ClojureScript, npm, or the official Clojure CLI, so I'm in quite a bit over my head.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions