It works as a plugin / addon for most IDEs and Text Editors to report warnings and compilation errors of your Fantom code, as you type.
This alpha / proof of concept version has support for:
Standalone Fantom files
Tracking file operations (incremental updates, renames, and deletes)
Fantom Projects (via build.fan files and LSP Workspaces)
Reporting compilation errors and warnings (via LSP Diagnostics)
Class outline views (via LSP Document Symbols)
StarLord has been tested on:
Eclipse IDE (the latest 2022 versions)
Kate Editor
Sublime Text
It should also be possible to use StarLord with the likes of Intelli-J and M$ VSCode, but they seem to require you to create and compile custom extensions - and (given I don't use these editors) that's a step too far for me at the moment.
I've been dabbling on and off with a Fantom LSP for a few months now, and it has just gotten to the point where it feels useful - i.e. it can compile whole Fantom projects! So now seemed like a good time to put it out for a bit of general testing.
This is awesome Steve! I can't wait to see where it goes.
Do you have the afxLspFantom code on GitHub yet? I would be very curious to take a look since this is a project I've been mulling for many years that we really need. I feel like these days almost everyone I see uses VS Code
Jay Herron2Thu 5 Jan 2023
So cool Steve! Great job!
SlimerDudeThu 5 Jan 2023
Hi Brian, Jay, thanks!
this is a project I've been mulling for many years
I know what you mean, I first released JSON-RPC with LSP in mind, back in June 2021!
Do you have the afxLspFantom code on GitHub?
This LSP project has been a good proving ground for our new AFX platform. But AFX is (currently) closed source - so there's little sense at the moment in openly releasing afxLspFantom.
But I guess you're more interested in how I've been mangling your compiler code! I can send you samples off line.
The main pain point was that the Fantom AST and compiler errors only give a start location, whereas LSP mandates that Ranges are always given with start and end locations.
Related, I'm expecting there be to tricky problems when inspecting statements - looking for where local variables are declared and such like. (I suspect all this should be done before closures are initialised / normalised.)
SlimerDude Tue 3 Jan 2023
StarLord is a Language Server Protocol (LSP) implementation for Fantom.
https://github.com/Fantom-Factory/afxStarLord
It works as a plugin / addon for most IDEs and Text Editors to report warnings and compilation errors of your Fantom code, as you type.
This alpha / proof of concept version has support for:
build.fan
files and LSP Workspaces)StarLord has been tested on:
It should also be possible to use StarLord with the likes of Intelli-J and M$ VSCode, but they seem to require you to create and compile custom extensions - and (given I don't use these editors) that's a step too far for me at the moment.
I've been dabbling on and off with a Fantom LSP for a few months now, and it has just gotten to the point where it feels useful - i.e. it can compile whole Fantom projects! So now seemed like a good time to put it out for a bit of general testing.
StarLord is just a binary download for now, and setup instructions can be found on the GitHub page.
Happy New Year!
brian Wed 4 Jan 2023
This is awesome Steve! I can't wait to see where it goes.
Do you have the afxLspFantom code on GitHub yet? I would be very curious to take a look since this is a project I've been mulling for many years that we really need. I feel like these days almost everyone I see uses VS Code
Jay Herron2 Thu 5 Jan 2023
So cool Steve! Great job!
SlimerDude Thu 5 Jan 2023
Hi Brian, Jay, thanks!
I know what you mean, I first released JSON-RPC with LSP in mind, back in June 2021!
This LSP project has been a good proving ground for our new AFX platform. But AFX is (currently) closed source - so there's little sense at the moment in openly releasing
afxLspFantom
.But I guess you're more interested in how I've been mangling your compiler code! I can send you samples off line.
The main pain point was that the Fantom AST and compiler errors only give a start location, whereas LSP mandates that Ranges are always given with start and end locations.
Related, I'm expecting there be to tricky problems when inspecting statements - looking for where local variables are declared and such like. (I suspect all this should be done before closures are initialised / normalised.)