Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Ólafur Páll Geirsson
    @olafurpg
    it's more expensive to index methods because you need to read classfiles or parse sources
    it's still cheap
    current indexing is super cheap
    asaadza
    @asaadza
    yes, it's really fast
    I hope you guys realise how useful the stuff you create and let us use is!
    Ólafur Páll Geirsson
    @olafurpg
    I'm glad to hear :D
    asaadza
    @asaadza
    thanks
    Ólafur Páll Geirsson
    @olafurpg
    I'm still working full-time on indexing and devtool stuff, just not scala right now. Been looking into trigram indexing for text search this week https://docs.google.com/document/d/1KY-CK0kDw6PNEBuOpslh_wbDOgelRfSfYpTg1SotFDg/edit#
    some tricks there would be helpful for the new Metals feature to search in resource files, turns out you can index text files very quickly with int64 bit fiddling
    ascii is only 7 bits and unicode 21 bits
    asaadza
    @asaadza
    interesting
    do you use IJ any more?
    Ólafur Páll Geirsson
    @olafurpg
    I use goland for go
    and IJ for Java
    asaadza
    @asaadza
    OK
    Ólafur Páll Geirsson
    @olafurpg
    but still VS Code for scala
    asaadza
    @asaadza
    the search for symbol in IJ is probably one of the only features I still miss
    Ólafur Páll Geirsson
    @olafurpg
    IJ has very slow completions, I regularly press enter before the completions load
    I agree
    the LSP api makes it difficult to implement proper symbol search
    asaadza
    @asaadza
    I thought of another thing that would be good to have in metals, but can't remember it now :)
    Ólafur Páll Geirsson
    @olafurpg
    need to load the exact location for every search result (filename on disk and line number)
    that's like >95% of the overhead
    asaadza
    @asaadza
    have you seen the haskell extension for metals?
    Ólafur Páll Geirsson
    @olafurpg
    o.O
    I have not
    asaadza
    @asaadza
    they recently addedd -- >>> which get executed inline
    not such a big deal though now we have pretty good worksheets in metals
    Ólafur Páll Geirsson
    @olafurpg
    My wish for worksheets is to implement the new notebook API in vscode
    asaadza
    @asaadza
    one thing I don't always predict is when the worksheet execution will get re-triggered
    Ólafur Páll Geirsson
    @olafurpg
    more explicit run/cancel UI for execution
    asaadza
    @asaadza
    right
    Ólafur Páll Geirsson
    @olafurpg
    and would make it possible to provide full IDE support in markdown files
    without hijacking completion in *.md files
    for mdoc code fences
    asaadza
    @asaadza
    that would be a tutorial writer's dream
    Ólafur Páll Geirsson
    @olafurpg
    yup, and it's probably not so difficult to implement. Most of the infrastructure is there
    asaadza
    @asaadza
    one thing I was thinking years ago is that if scalajs was used instead of typescript, you would get more contributions, but I think you were worried about the facades having to change too often
    Ólafur Páll Geirsson
    @olafurpg
    vscode has a few helpful "proposed APIs" for notebooks that would be nice to land in stable, but not blockers really
    I don't think it would make a big difference
    asaadza
    @asaadza
    I keep seeing notebook support gets enhanced, but don't use python
    Ólafur Páll Geirsson
    @olafurpg
    the vscode client is not supposed to implement hardcore logic anyways, it's mostly glue code
    asaadza
    @asaadza
    no doubt, and some presentation
    Ólafur Páll Geirsson
    @olafurpg
    a core principle is that the metals server does the heavy lifting so that the same logic can be reused between editors
    asaadza
    @asaadza
    so, the real answer is that people could jsut contribute to metals, if that were the case!
    Ólafur Páll Geirsson
    @olafurpg
    non-trivial logic still naturally ends up living in the vscode client extension, but you want to limit it
    it takes some practice to add new features that change the server + client
    asaadza
    @asaadza
    was there ever a video or blog post about it?
    Ólafur Páll Geirsson
    @olafurpg
    it's a lot of moving pieces, scala server, lsp4j bindings (and Java reflection-based JSON serialization), and TS client
    this presentation is great https://www.youtube.com/watch?v=fpzN_vTBy18