Git Product home page Git Product logo

Comments (8)

meraymond2 avatar meraymond2 commented on June 27, 2024 1

That's really helpful, thanks for making that.

Looking at it, it might have been that bug after all. In the worst case when you hover between words, it was trying to type check the whole document, and then got stuck.

from idris-vscode.

Dessix avatar Dessix commented on June 27, 2024 1

#60 was a bug in that it was evaluating both the early-out code-paths and the long-form code paths, but returning immediately regardless. I do believe, however, that there's still a bug- the final res(...) lines should either be returned or awaited as well.

This, however, will mean that the promise in question won't insta-return, and something may currently be relying on that bug to function.

Edit: Disregard this- I misread the PR context, and assumed res was a promise-function, not the constructor to Promise's resolve callback. Too much time spent with Rust futures ^^;

from idris-vscode.

meraymond2 avatar meraymond2 commented on June 27, 2024 1

That fix is released in the 0.0.10 version.

from idris-vscode.

meraymond2 avatar meraymond2 commented on June 27, 2024

It sounds like an issue with the idris2 process starting. Can you run idris2 --ide-mode --find-ipkg in the project directory and see what it outputs?

from idris-vscode.

timsueberkrueb avatar timsueberkrueb commented on June 27, 2024

Hey, I have the same issue. Running idris2 --ide-mode --find-ipkg gives the expected output:

> idris2 --ide-mode --find-ipkg
000018(:protocol-version 2 0)

Is there something else I can try in order to debug this? Thanks!

from idris-vscode.

meraymond2 avatar meraymond2 commented on June 27, 2024

Are you also using 0.4.0, and do you have an example of a repo where this is happening?

I'm testing on the Idris2 repo because most people have that, but it's a bit problematic because the idris2 --ide-mode --find-ipkg command is confused by the two ipkgs files, but if I temporarily remove the idris2api.ipkg file, it works. I'm using 0.4.0, from the Nixos unstable channel.

The best way to test is to clone this repo, change line 76 in src/state.ts to debug: true and rebuild it. The readme has instructions for running locally. In the debug console in VS you will be able to see all of the messages that go to and from and ide-process.

<< 00003e((:load-file "/home/michael/dev/Idris2/src/Core/Hash.idr") 1)

>> (:protocol-version 2 0)
>> ...lots of source highlighting messages

If it's not working for some reason, like the ipkg thing, it won't show anything after the :load-file message.

from idris-vscode.

timsueberkrueb avatar timsueberkrueb commented on June 27, 2024

Thanks! This is a snippet where I can reproduce it and I've made a screencast of the issue:

demo.mp4

First I hover over example and it works just fine.
Next, I hover over the colon in the type definition of example. Afterwards, the CPU load goes up and it gets unresponsive.

I'm running Ubuntu 20.04 and I've built Idris 2 from source (v0.4.0 tag).

from idris-vscode.

timsueberkrueb avatar timsueberkrueb commented on June 27, 2024

I just tested #60, and it actually seems to fix this issue for me!

from idris-vscode.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.