I started making one, but kind of gave up on it (in favour of my LSP implementation), since SWI’s syntax is flexible enough that it’s really hard to have a useful tree-sitter grammar that doesn’t explode in the face of custom operators.
They are part of any Prolog system I know as well as the ISO standard. They are useful as it allows creating good looking DSLs. They are a serious hurdle for tools though
There are so many different editors these days that all come with their own way to define syntax highlighting that it is practically impossible to support a good subset of them. Paulo Moura did a lot of work on that for Logtalk. I guess the highlighting can easily be tricked using operators and meta-programming.
It would be great if you had a bit time to write a blog post explaining what an lsp server is, what features can be had (e.g. is visual debugging included?), and what editors or “clients” support LSPs …
Almost all major text editors support it or are working to support it. Many also have plugins to fill the void. Visual Studio, VSCode, Vim/Neovim, Emacs, Kakoune, Helix, IntelliJ’s suite, etc. It is also complemented by the Debug Adapter Protocol (DAP): Official page for Debug Adapter Protocol
Hello Kirawi, nice to have you on the forum and thanks for the link. You can also download SWI-Prolog language and have a look at the Emacs integration, knowing that the graphical debugging part is done through a dedicated interface named XPCE as Prolog is an AI language based on rules and inference better rendered (till now and as far as i know) on such a tool, but @jan could better talk about it than me.
EDIT Another interesting part about Prolog is that Japan has a great community of users and has been largely investing into AI hardware for research.
Have a look at FGCS and what derived from it into Japanese AI. You can also have a look at their latest super computers. Anyway the AI part on hardware developments being supported by investments in Japanese universities, the best should be to have contacts with research teams there. As i am no more into hardware, I have no more interesting personal contacts.
Soo, sorry, what’s the recommended method of doing this? I’m looking at the instructions here. Is this the language server to use? Do you add the config to the global config file at ~/helix/languages.toml or the local config which overrides that one by running :config-open?
Would anyone mind sharing what exactly they added and where?