Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Robot Framework language server (again) #724

Merged
merged 16 commits into from
Jan 8, 2022

Conversation

bollwyvl
Copy link
Collaborator

@bollwyvl bollwyvl commented Dec 12, 2021

Binder

References

Code changes

  • refreshes robot dependencies
  • adds new robot stuff
    • robotkernel
    • robotframework-lsp
    • robotframework-robocop
    • robotframework-robotidy
    • robotframework-pabot (interested to see the intersection of this with other tools)
      • took this out: couldn't get this to work reliably w/r/t to the language servers... there might be some env-singleton resource issues or something

    • jupyterlab-robotmode
  • updates language server docs
    • adds robotframework to the "notebook" section (it's pretty good)
    • generate the shell command for our list of npm ones
      • decide if we want to also list the version we tested?
        • yaml, ts, etc. have bitten us in weird ways in the past, even on point releases
    • some sorting
  • adds overrides.json to the binder

User-facing changes

  • visitors to the binder will see more robot-related features
  • visitors to the binder will see more latex-related features (linting)

Backwards-incompatible changes

  • n/a

Chores

  • linted
  • tested
  • documented
  • changelog entry

@github-actions
Copy link

Binder 👈 Launch a binder notebook on branch bollwyvl/jupyterlab-lsp/gh-332-add-rflsp-again

@bollwyvl bollwyvl changed the title Add Robot Framework language server (again) [wip] Add Robot Framework language server (again) Dec 12, 2021
@bollwyvl
Copy link
Collaborator Author

Still need to test in Configuration: once robocop is turned on, underlines don't show up, even though things appear in the diagnostic panel...

@bollwyvl
Copy link
Collaborator Author

underlines don't show up

Ah, all of the diagnostics I've seen have zero width! Really surprised me!

I guess some options (not to be fixed on this issue):

  • gutter (we've wanted that anyway, was hoping to wait for CM6)
  • offer expanding zero-width diagnostics to the full line

@krassowski
Copy link
Member

offer expanding zero-width diagnostics to the full line

or to 1 character? I would like this regardless of gutters.

@bollwyvl
Copy link
Collaborator Author

bollwyvl commented Dec 25, 2021 via email

@krassowski
Copy link
Member

krassowski commented Dec 25, 2021

If that becomes a setting, I happy for it to have a non-zero default.
Edit: (zero would be fine too, but it feels like non-zero would be better default)

@krassowski
Copy link
Member

Is it still WIP, or can we merge?

@bollwyvl
Copy link
Collaborator Author

bollwyvl commented Dec 27, 2021 via email

@bollwyvl bollwyvl changed the title [wip] Add Robot Framework language server (again) Add Robot Framework language server (again) Jan 2, 2022
@bollwyvl
Copy link
Collaborator Author

bollwyvl commented Jan 2, 2022

I've

If this passes, it's probably ready to go.

binder/overrides.json Outdated Show resolved Hide resolved
@bollwyvl
Copy link
Collaborator Author

bollwyvl commented Jan 2, 2022

Thanks for the binder assist, trying right now. I put the user check in because i test (the rest of) postBuild as part of my local development flow, but having too much fancy stuff configured makes it harder to test... are there any other things we'd want to pre-configure, i guess? Maybe checktex or whatever cuteness it is?

@bollwyvl
Copy link
Collaborator Author

bollwyvl commented Jan 2, 2022

Ugh, the "magic" rstudio stuff on binder is brutal. It looks like our initial solve pulls in 4.1, but then the hard pins bump it back down to 4.0, and then pip installs a bunch of weird stuff for shiny from github tarballs. Gross. I'll have to defer to r users whether this is all worth it, or if we should remove the r stuff from the "main" binder environment, and install just our r-related stuff (without rstudio and shiny server i guess)... conda-forge has made overtures of collaboration with the folk that run that ecosystem and they pretty much are defending their distribution mechanism.

Additionally: it looks like something we're pulling in is forcing us down to jupyterlab 3.1.x, which is good for testing, i guess, but poor for picking up more recent features and bug fixes. It also means that the retrolab we're getting is fairly outdated at this point... I guess that's academic, as we'll want to start testing with lab4 and nb7 soon enough on another branch, and should keep what we've got working today working as long as we can.

@bollwyvl
Copy link
Collaborator Author

bollwyvl commented Jan 2, 2022

Ok, had a go at it on binder. Everything seems mostly working except:

  • third-party keyword libraries (e.g. SeleniumLibrary) doesn't seem to resolve, which doesn't happen locally, and potentially something we can investigate at a later date
  • completion (both from the kernel and the lsp) seems to be busted

Note that i can't reproduce these issues locally. We could put completion under test, but once again, at some point there's only so much we can control.

conda-lock for reference: jupyter-lsp-binder.conda.lock.txt

@bollwyvl bollwyvl mentioned this pull request Jan 2, 2022
13 tasks
@krassowski
Copy link
Member

completion (both from the kernel and the lsp) seems to be busted

works for me on binder; the problem might be that it is case sensitive by default; we might want to allow servers specs to override the defaults (and have a default option for caseSensitive set to "auto" which means let server decide). Similarly for SQL we would want case-insensitive completion.

Copy link
Member

@krassowski krassowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@krassowski krassowski merged commit 729d7b9 into jupyter-lsp:master Jan 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support/test a Robot Framework language server
2 participants