MesserLab / SLiM

SLiM is a genetically explicit forward simulation software package for population genetics and evolutionary biology. It is highly flexible, with a built-in scripting language, and has a cross-platform graphical modeling environment called SLiMgui.
https://messerlab.org/slim/
GNU General Public License v3.0
160 stars 30 forks source link

Wrap Eidos code edition/analysis features into a proper language server. #424

Open iago-lito opened 7 months ago

iago-lito commented 7 months ago

Just tossing the idea here for future reference, in case anyone finds the ressource to tackle it.

The Eidos "input commands" subwindow of the SLiMGui offers sophisticated code-edition-related features like:

These must be the result of a huge work, and they make the Eidos coding experience rather nice. Unfortunately, they are restricted to this very particular sub-window of this very particular SLiMGui application. As a consequence, while writing Eidos code, we cannot benefit from any other standard modern IDE features like shortcuts customization, macros recording, automation, multiple window management, split views, theming, etc. unless we use an external editor instead of the SLiMGui editor. But then we loose the above features.

If the above features were extracted into a proper eidos-language-server, then we could have our cake and eat it too. We could edit Eidos script files using either SLiMGui/vim/vscode/intellij/emacs/atom/notepad++/\<whatever>.. and still always benefit from the above features.

(Note: all population-genetics-simulation-related features (visualisation, genome browsing, reports, plots..) are not strictly related to code edition and cannot be forwarded to code editors via the language server protocol. Of course, SLiMGui remains the best application to run/visualize the models ;)

bhaller commented 7 months ago

As discussed over email with Iago, I've marked this "help wanted"; it might be a fun side project for somebody, but will be complex, and I'm unlikely to have time for it for, well, maybe ever. But it's a nice idea.