Open ZX-80 opened 2 years ago
Have you been able to reproduce these issues in any other LSP clients (e.g. vscode, vim)?
It could also be that some of these issue have been solved in subsequent versions of texlab: I'm also the maintainer of those on conda-forge
, and will try to get an updated version out, though it might be the weekend, if it's tricky: i'm not a particularly sharp rust user.
I've tried vscode, which works without issue using texlab-vscode (which is using TexLab v3.3.2).
Using the precompiled Linux binary for TexLab v3.3.2 instead of installing from conda also runs into the same problem, so I assumed it was a jupyterlab-lsp issue. It's not time sensitive, just glad to know it's being looked into, thanks
welp, we have 3.3.2 on conda-forge now, so at least there's that.
as to 50: i don't know. if you clear the suggestion, and re-trigger does it show new ones? do other languages (e.g. python, r) behave the way you'd expect or exhibit the same (lack of) behavior?
Nice! And yes, clearing the suggestion and pressing tab will give new ones.
Hmm, I've only just tested it with python, but I think this is the issue. The Python language server seems to sends every possible suggestion for what it thinks you want. Thus it doesn't need to refresh each keystroke. But because there's little context to work off of in LaTeX, and a lot of macros, TexLab would end up sending far too many suggestions and thus wouldn't be performant. Reading up on TexLab, they've specifically limited it to 50 suggestions, expecting a re-request on each keystroke, which is never sent, because the other language servers probably just send everything.
Could be wrong, but that's what it looks like...
Thank you for the investigation @ZX-80.
The Python language server seems to sends every possible suggestion for what it thinks you want. Thus it doesn't need to refresh each keystroke. But because there's little context to work off of in LaTeX, and a lot of macros, TexLab would end up sending far too many suggestions and thus wouldn't be performant. Reading up on TexLab, they've specifically limited it to 50 suggestions, expecting a re-request on each keystroke, which is never sent, because the other language servers probably just send everything.
Does it send isIncomplete
set to true
? If it does, then this is error on our side, if it does not, then we are good and it is the TexLab's fault.
This is one of the annoying parts of LSP spec, see the long discussion in https://github.com/microsoft/language-server-protocol/issues/898.
It appears to in completion.rs, though I'd have to figure out how to get it's debug output when running under jupyterlab-lsp to actually see what it's doing
Description
I'm getting the following issue with candidate suggestions from TexLab. I've tried installing with a new environment in conda, using version 3.0.0 of jupyterlab-lsp and had a friend install it on his machine.
Here when I type
\
, TexLab sends its first 50 (the default for TexLab) candidates. But as I continue to type, it never sends any more. It should be sending a new list of candidates with each keystroke. This also occurs when using tab to auto-complete.Reproduce
conda install -c conda-forge 'jupyterlab>=3.0.0,<4.0.0a0' jupyterlab-lsp texlab chktex
\
for the first 50 candidates to be suggesteddoc
, and notice no new candidates are suggestedExpected behavior
A new list of 50 candidates should be continually suggested as the user types (unless TexLab returns less than 50 of course)
Context
Required: installed server extensions
Required: installed lab extensions
Troubleshoot Output
Command Line Output
Browser Output (recommended for all interface issues)