Leo for VS Code : LeoInteg 1.0 is now available in the extension marketplace!
Many thanks to Edward and everyone else who have contributed to this project! Documentation and source here: https://github.com/boltex/leointeg
LeoInteg offers all features and keybindings found in Leo… in VSCode!
Hi! I’m Félix, I’ve been using Leo along with other IDEs, file browsers, and terminals since I discovered it in 2002 in this article: https://slashdot.org/story/02/08/28/1655207/literate-programming-and-leo
(I happen to be one of the co-authors of http://xccnode.sourceforge.net, which is kind of the exact opposite of LeoInteg...)
Anyways, here’s the story of LeoInteg 😛I was irked with having to alt-tab between Leo and other IDEs, file browsers, terminals, and thought to myself: “Why can’t Leo be integrated in a modern full-fledged IDE like Sublime or VSCode? That’d be so cool!”
And so this project started an evening of late july 2019 when I experimented by making a vscode extension that implemented their “tree/outline panel” provider, by directly hooking their required “getChildren” method, to the eponymous “getChildren” method of Leo’s API through a leoBridge ‘instance’ python script, feeding JSON text messages of its output via stdio.
I can pinpoint the precise moment I decided to go ahead and actually make this (and the matching server script): It's when I found out about the p_to_ap and ap_to_p methods in leoflexx.py! It was then just a trivial matter of grabbing the output and building the required structure for the headline string & icon state, and using it to ‘feed’ the VSCode api.
I fiddled with it and added enough to think it deserved a repository by august 10th. The rest can be seen through the commit and issues history :)
Enjoy!
--
Félix https://boltex.github.io/
Psst! If you’re a Leo and python enthousiast, don’t forget to look at the (client agnostic) leoserver.py, which can be used to make any other Leo UI client program, with native network and multi-user support included!
Leo for VS Code : LeoInteg 1.0 is now available in the extension marketplace!