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

Upgrade to Monaco 0.20.0 #8010

Merged
merged 8 commits into from
Aug 24, 2020
Merged

Upgrade to Monaco 0.20.0 #8010

merged 8 commits into from
Aug 24, 2020

Conversation

RomanNikitenko
Copy link
Contributor

@RomanNikitenko RomanNikitenko commented Jun 15, 2020

What it does

TODO

How to test

  • test language features with VS Code extension:
    • test that features are available in the editor context menu and in quick command palette (automated)
    • a declaration is revealed when following the reference (automated)
    • focus belongs to a proper editor after following a reference (for internal and outside references, from editor to editor preview and view versa) (automated)
    • reference peek is still opened after following a reference (for internal and outside references, from editor to editor preview and view versa) (automated)
    • esc closes reference peek widget (automated)
    • completion items are properly resolved and inserted (automated)
    • focus belongs to a proper editor on peek definition (for internal and outside references, from editor to editor preview and view versa) (automated)
    • check that rename work inside the file and across files (automated)
    • check that arguments are proposed by the signature help (automated)
    • check that hover is present with properly rendered docs (automated)
    • check that symbol occurrences is highlighted when a declaration or reference is selected (automated)
    • check that go to (type|implementation) definition works properly, i.e. definition is revealed (automated)
    • check that code lens work properly (automated)
    • check that code actions work properly (quick fixes) (automated)
    • check that document and selection formatting work properly (automated)
    • check color provider with css colors
    • check link provider with links in html
    • check that folding ranges are properly provided for js, css and html
    • check go to symbol command
    • check open workspace symbol command
  • test quick palette:
    • proper keys are displayed for the quick command palette, i.e. they are displayed and a corresponding Monaco command can be triggered by such keybinding
    • use sample vscode extension
    • use fuzzy search
  • test vscode tree view (that context keys work properly)
  • test plugin editor decorations, for example with power mode extension
  • test debug console input editor
  • test debug breakpoint editor
  • test that preferences are propagated as config key values: change editor preferences and check whether they are reflected
  • test language auto detection
  • test edit menu with editor
  • test selection menu with editor
  • test editor context menu
  • smoke test some VS Code extensions like go, python, just use editor for a bit, check backend and frontend logs for errors
  • test manually task related functionality
    - done Upgrade to Monaco 0.20.0 #8010 (comment)

Review checklist

Reminder for reviewers

@akosyakov akosyakov added monaco issues related to monaco lsp language server protocol labels Jun 16, 2020
@RomanNikitenko RomanNikitenko force-pushed the upgrade_monaco_20 branch 2 times, most recently from c2fab83 to e9a1640 Compare June 26, 2020 13:28
@akosyakov
Copy link
Member

@RomanNikitenko let me know if you need any input to move it forward, I'm going to start looking into dropping monaco-languageclient later this week, but it would be good to have this PR in first.

@RomanNikitenko
Copy link
Contributor Author

RomanNikitenko commented Jun 30, 2020

@RomanNikitenko let me know if you need any input to move it forward, I'm going to start looking into dropping monaco-languageclient later this week, but it would be good to have this PR in first.

I'm working on ConfigurationChangeEvent alignment with VS Code at the moment. It should fix some tests as well.
I'll try to speed up the process...

@RomanNikitenko
Copy link
Contributor Author

I had to pause my work on the issue because of some urgent issues on our side.
I think I am able to come back and continue to work in a couple of days...

I'm really sorry for the delay.

@akosyakov
Copy link
Member

I'm really sorry for the delay.

It is fine. I think we will land removing monaco-langaugeclient only in 1.5.0 (in beginning of August).

@akosyakov
Copy link
Member

akosyakov commented Jul 5, 2020

@RomanNikitenko I will spend this week adding more automated tests. Maybe also doing a follow-up PR for #7608 based on your PR.

@RomanNikitenko
Copy link
Contributor Author

I'm working on ConfigurationChangeEvent alignment with VS Code at the moment.

@RomanNikitenko
Copy link
Contributor Author

Working on editor configurations alignment.

@azatsarynnyy azatsarynnyy linked an issue Jul 15, 2020 that may be closed by this pull request
@RomanNikitenko
Copy link
Contributor Author

RomanNikitenko commented Jul 16, 2020

I provided a separate PR #8185 as possible solution for compareEntries function problem as we have the issue for that #7899

@RomanNikitenko RomanNikitenko force-pushed the upgrade_monaco_20 branch 3 times, most recently from 977c516 to fd9f111 Compare July 20, 2020 12:43
@RomanNikitenko
Copy link
Contributor Author

RomanNikitenko commented Jul 20, 2020

Tested Selection menu:

@RomanNikitenko
Copy link
Contributor Author

Tested Tasks related functionality:

  • task schema support at creating a new configuration
  • Problems view displays warnings for a wrong configuration in a tasks.json file
  • Terminal -> Run Task menu displays configured, detected and recently used tasks
  • I was able to run a task from all categories (configured, detected and recently used)
  • codicon-gear is displayed for a selected item
  • Configure Tasks action allows to open the corresponding config file and a configuration is ready for editing
  • hover Configure Task is displayed when select codicon-gear
  • the corresponding tasks.json file is open at click on codicon-gear and the configuration of selected task is available for editing
  • changes for presentation field of a configuration is applied correctly
  • I don't see any regression for Run Last Task, Show Running Tasks, Restart Running Task, Terminate Task, Run Selected Text actions

@RomanNikitenko RomanNikitenko force-pushed the upgrade_monaco_20 branch 3 times, most recently from d5b2fda to 201dedc Compare July 29, 2020 09:41
@RomanNikitenko
Copy link
Contributor Author

RomanNikitenko commented Jul 29, 2020

tests sometimes are failed, sometimes are successful on ci for my PR.
I don't know if it's unstable only for my branch.

@akosyakov
could you help with testing to detect real problems?
I'm going to focus on the PR to finalize upgrade Monaco.
thanks in advance!

@akosyakov
Copy link
Member

@RomanNikitenko I will look tomorrow!

@akosyakov akosyakov mentioned this pull request Jul 30, 2020
1 task
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
@akosyakov
Copy link
Member

akosyakov commented Aug 21, 2020

I've rebased the PR and resolved #8010 (comment). I would like to merge it (if tests are green) and move to implement semantic highligting support in the plugin system. Does anyone has objections or would you like to test it more? @eclipse-theia/ecd-theia-committers I can open a PR against this PR if so.

@benoitf
Copy link
Contributor

benoitf commented Aug 21, 2020

merge it as soon as possible so it can fit in upcoming release and it let some time to fix some bugs before cutting the release

@akosyakov
Copy link
Member

akosyakov commented Aug 21, 2020

Unfortunately tests are not passing with Node.js 12. I will check what is wrong.

@akosyakov
Copy link
Member

akosyakov commented Aug 21, 2020

@RomanNikitenko semantic of editor.action.rename was changed, before it will await till edits are applied, now it only awaits till edits are produced. I am going to await instead till the document actually has a renamed symbol to get rid of time out.

That's unfortunately won't fix other tests. They seem to be affected by rename test but not because of failure. A rather a fix which did last week that models without editors should be auto saved not opened. I will try to disable auto saving before tests to see whether it helps.

RomanNikitenko and others added 2 commits August 21, 2020 11:53
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
Also-by: Roman Nikitenko <rnikiten@redhat.com>
Signed-off-by: Anton Kosyakov <anton.kosyakov@typefox.io>
@akosyakov akosyakov force-pushed the upgrade_monaco_20 branch 3 times, most recently from 6727fb3 to 2a8a22f Compare August 21, 2020 12:01
@akosyakov
Copy link
Member

Disabling auto save of dirty models without editors for tests helped. I will wait for builds and if they are green will merge. (Besides #8360, since it was failing before as well).

@akosyakov
Copy link
Member

Nope tests are still failing. I will debug more on Monday why models get persisted implicitly by tests.

@akosyakov
Copy link
Member

I was able to track down the bug in how we apply bulk edits now. There are 7 edits during rename for variable and references. We don't group them and apply atomically to the same model, but each in own tick, so revert get canceled and consequent tests are using the wrong model.

Signed-off-by: Anton Kosyakov <anton.kosyakov@typefox.io>
@akosyakov akosyakov merged commit 63c21f6 into master Aug 24, 2020
@akosyakov akosyakov deleted the upgrade_monaco_20 branch August 24, 2020 12:40
@akosyakov
Copy link
Member

akosyakov commented Aug 24, 2020

I fixed bulk edits in the last commit and adjusted test expectations to await a single edit operation on rename or fail.

@azatsarynnyy
Copy link
Member

Thank you @akosyakov for fixing it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lsp language server protocol monaco issues related to monaco
Projects
None yet
Development

Successfully merging this pull request may close these issues.

upgrade to Monaco 0.20.0
5 participants