jupyterlab-lsp icon indicating copy to clipboard operation
jupyterlab-lsp copied to clipboard

Selectively enable/disable LSP features

Open krassowski opened this issue 5 years ago • 6 comments

Extracting discussion from #55, quote by @bollwyvl :

Not in this pr, but: I'd also like to see a toolbar item that let you enable/disable different language server ui features for the current file. It could be right aligned, but left of the kernel name/status icon, and also have an indicator of whether there is pending stuff... This would be particularly useful in the typescript case which takes upwards of a minute to fully resolve all the references in, say, index.ts.

I think that a statusbar would be a good place for it (so that we have it for both files and notebooks).

Sketch:

{
    "disableForKernels": {
      "title": "Disable for specific kernels",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    }
}

krassowski avatar Oct 15 '19 19:10 krassowski

Very good point (though I usually turn it off)... I thought the editor also exposed a toolbar entry point like the notebook, but I could be imagining things...

It's too bad there's no way to know if the language server is still "busy"... Responses just seem to come back whenever. Sure would make testing easier!

On Tue, Oct 15, 2019, 15:28 M. Krassowski [email protected] wrote:

Extracting discussion from #55 https://github.com/krassowski/jupyterlab-lsp/pull/55, quote by @bollwyvl https://github.com/bollwyvl :

Not in this pr, but: I'd also like to see a toolbar item that let you enable/disable different language server ui features for the current file. It could be right aligned, but left of the kernel name/status icon, and also have an indicator of whether there is pending stuff... This would be particularly useful in the typescript case which takes upwards of a minute to fully resolve all the references in, say, index.ts.

I think that a statusbar would be a good place for it (so that we have it for both files and notebooks).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/krassowski/jupyterlab-lsp/issues/61?email_source=notifications&email_token=AAALCRDJRISDAFX7NY34RB3QOYKURA5CNFSM4JBA7UFKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HR64IBQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALCRHORFPNSG2SZ4NMA5DQOYKURANCNFSM4JBA7UFA .

bollwyvl avatar Oct 15 '19 19:10 bollwyvl

Riffing on the status bar idea, perhaps we have it show, e.g.:

(icons for placement only)

  [⏳ Python]  # initializing
  [🎧 Python]  # ready

When you click on it, it can show a sidebar/main area widget which shows:

  _____________________________________
_| ⏳ Untitled.ipynb Language Server  x|___________________

Feature                 Global   Python   This File
🆗 Diagnostics            ☑️        ☑️         ☑️
❔ Jump To Reference      ☑️        ☑️         ☑️
❔ Hover                  ☑️        ☑️         ☐

Open Advanced Settings Editor...

⛛ Python Language Server Info
   Docs | Issues | Version: 0.29.1

Those little status markers are what I would need to know that something has arrived so it can be tested.

bollwyvl avatar Oct 27 '19 14:10 bollwyvl

I like this idea. It could be in a popover but a new tab/sidebar widget would work as well.

krassowski avatar Oct 27 '19 17:10 krassowski

I am working on a basic status indicator right now.

krassowski avatar Oct 27 '19 19:10 krassowski

Cool! Excited to see what you come up with.

My thinking on the ugly ASCII mockup: I think more popups/hovers/(context)menus, aside from being harder to test, can make it harder to inform people what choice they are making when it comes to settings. "What the heck is a diagnostic and why would I hide it?" Hence I usually encourage anything remotely settings related (e.g would persist after restart) to err on the side of being more verbose and discoverable.

On Sun, Oct 27, 2019, 15:52 M. Krassowski [email protected] wrote:

I am working on a basic status indicator right now.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/krassowski/jupyterlab-lsp/issues/61?email_source=notifications&email_token=AAALCRBRLZX7RIVKZLKDCODQQXPN3A5CNFSM4JBA7UFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECLGNUA#issuecomment-546727632, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALCRCDTR2XLKHQD52RJO3QQXPN3ANCNFSM4JBA7UFA .

bollwyvl avatar Oct 27 '19 20:10 bollwyvl

Agree that there should be a way to disable LSP (completely) just in case things are broken or completion is slow so that users to want to temporary disable it without uninstalling the extension.

Also, it's best it there's a way to restart lsp without restarting jupyterlab. This is critical for Docker based users.

dclong avatar Feb 18 '21 07:02 dclong