#2931 VS Code Ext with full LSP support!

james g Mon 2 Dec

In my attempts to learn Fantom (and javascript... and typescript...) I've started working on a vscode ext that provides full language server support for Fantom! This is largely for my own benefit and learning, but I figured I'd throw it out there for anyone else who might use VS Code like me.

VS Code Fantom Support

VSCode Ext Marketplace

You can view the full readme on github. So far, I have the following working (though not fully tested or polished):

  • Outline view support
  • Sidebar Fantom docs
  • Semantic token parsing & additional syntax highlighting (for classes, methods, types, fields, etc)
  • Hover docs (WIP)

To install: Search "fantom" in the ext sidebar, and look for Fantom Language Support (not to be confused with Fantom Syntax Highlighting). Hit install, and hope for the best!

Screenshots

Additional syntax highlighting for classes, methods, fields, etc (shown with WIP hover documentation)

hover docs

Fantom doc tree built into the sidebar (shows when classes are private or slots are inherited)

Slots

Outline view to navigate through your classes, methods, & fields

Outline

Slot Details

Slot Details

Notes

  • While there is a way to generate your own pod docs, it got messy so I decided to just ship pre-built JSONs with the ext. The docs are pre-built using native Fantom and support versions Fantom v1.0.80 and Haxall v3.1.10.
  • While this also supports SkySpark's Fantom pods, those are not open source so any related documentation is not included.
  • As I mentioned I largely made this for me, and as such it suits my own preferences. If you have requests, let me know and I'll consider them :)
  • If you're interested in contributing, feel free to open a PR!

Disclaimer

This is my first ever typescript project made on a few nights/weekends, so set your expectations accordingly. There are lots of known bugs and needed improvements. I do not consider this a stable release.

Happy coding :D

SlimerDude Fri 6 Dec

Hey James G, this looks really good!

Thank you for all the hard work!

Login or Signup to reply.