I will not do a code review but I intend to use the plugin with my work project which has a huge Python code base and I'm very curious how it will work and maybe I'm going to switch to the LSP approach completely but no promises yet :).
I'm _really_ interested in your feedback - some things may just be limitations of particular servers but some things can possibly be improved in the behavior of the plugin or new config options could possibly be added to control the plugin's behavior if some servers behave differently.
I mostly tested the plugin with the `clangd` server and not so much with Python and other pre-configured servers which I tested only lightly. I found `pylsp` a little too slow so I'd recommend `pyright` or `jedi-language-server`. If you only want to use a linting language server, `ruff` might be a good option as it's super-fast. There has been some discussion about various Python language servers in
https://github.com/techee/geany-lsp/issues/51
Also, it's always possible to disable a particular feature and fall back to Geany's default TM implementation.
Though this might take a few weeks to complete as I need to get in touch with LSPs and find my way through the config.
It's actually really simple and you don't have to study anything too much. Just install the server you want to use, check its documentation regarding how to start it and whether it needs some special command-line options and enter this to the `cmd` config file option. Then just follow
https://github.com/techee/geany-lsp?tab=readme-ov-file#quick-start
Some servers require the project's root directory, some don't. There are some options at the beginning of the config file you can use to configure the plugin so it runs without Geany projects if you don't want to use those.
Also, I recommend getting the plugin from https://github.com/techee/geany-lsp and not this PR as I still keep working on some stuff and sync the changes to this PR infrequently.