Coder Social home page Coder Social logo

Keep folds open when staging about neogit HOT 6 CLOSED

neogitorg avatar neogitorg commented on July 20, 2024 3
Keep folds open when staging

from neogit.

Comments (6)

RianFuro avatar RianFuro commented on July 20, 2024 2

Yeah that's part of the problem. Another challenge we need to solve is that even if we only selectively redrawing the buffer, we still need to potentially update/replace the diffs inside the folds without breaking the fold itself. Well, or restoring the fold status after a redraw i guess.
I'd like to avoid manually updating the buffer to match the operation result, so we'd need some logic to calculate a delta from the new status (after a operation or reload) against the current one and then redrawing parts of the buffer based on that delta. Think shadow dom handling, basically.

I definitely feel the frustration just as much though 😅 Going to have a look at that soon-ish

from neogit.

akinsho avatar akinsho commented on July 20, 2024 1

Just wanted to bump this issue since it's a little old now and this is a daily frustration for me as a new neogit user. If someone wants to point out what would be needed to fix this I can have a look when I get the time/I'm tipped over the edge by my frustration. Alternatively I can wait for a fix if it's better done by someone with know how about the code base

from neogit.

TimUntersberger avatar TimUntersberger commented on July 20, 2024

This probably is because we redraw the whole buffer after modifying the status.\

@RianFuro What do you think?

from neogit.

akinsho avatar akinsho commented on July 20, 2024

This might be a red herring and I apologise if it is I haven't read through all the code myself, but I think https://github.com/wbthomason/packer.nvim uses nvim extmarks to keep track of items and update each specifically in it's UI as plugins are being updated in parallel, the code is in its display.lua module. That might be a useful insight for what you're describing

from neogit.

hkupty avatar hkupty commented on July 20, 2024

I think using extmark is the way to go, but from what I remember from the code, it might need a refactoring on how things are presented.

I guess the idea would be to keep track of the state between redraws and take in consideration the previously set fold level on the first pass directly.

from neogit.

hkupty avatar hkupty commented on July 20, 2024

Feels like this has been sorted out. I'm fixing it. Thanks!

from neogit.

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.