Giter VIP home page Giter VIP logo

Comments (12)

venkatakrishnaannam avatar venkatakrishnaannam commented on May 27, 2024 1

Hey @datwaft, thanks for the great plugin!
I followed a different way of creating highlight groups. I changed the code to create a global cache of highlight commands in highlight factory and create highlight groups on demand while rendering status line. This creates only the highlight groups which are actually used.
I'll open a pull request if you are okay with this approach.

from bubbly.nvim.

datwaft avatar datwaft commented on May 27, 2024 1

Sounds good, thanks!

from bubbly.nvim.

datwaft avatar datwaft commented on May 27, 2024

Hello!

Yes, that was desired, but mainly because when I wrote that part I didn't have a better solution to support all the colors the user could select.

I have been thinking about solutions, one could be to generate at start only the combinations used by the user in the configuration.

Another could be to generate a highlight per component and change the highlight colors at start or on configuration change.

What do you think would be the best?

I am planning to work on this when I am unocuppied from college, which would be in a month or two at maximum. Feel free to open a pull request if you prefer not to wait.

from bubbly.nvim.

kuznetsss avatar kuznetsss commented on May 27, 2024

Actually, I don't know how it works now. In general each component should be separate from others and it should be loaded only if it is being used.

If I'll have free time I try to fix it or at least to give you some ideas.

from bubbly.nvim.

datwaft avatar datwaft commented on May 27, 2024

Thanks! The code for the highlight is here.

from bubbly.nvim.

crides avatar crides commented on May 27, 2024

This also seems to drastically slow down nvim startup with larger files, on the order of seconds for files with thousands of lines

from bubbly.nvim.

datwaft avatar datwaft commented on May 27, 2024

I will give this higher priority.

In a month or so I will be free enough to continue working on this. I have a full rework planned for better performance.

from bubbly.nvim.

datwaft avatar datwaft commented on May 27, 2024

I am beginning to work in the full rework, btw

from bubbly.nvim.

datwaft avatar datwaft commented on May 27, 2024

As @venkatakrishnaannam said in #108, it seems that there is no noticeable performance improvement on large files.
I will close this issue because the problem of too many highlight groups was fixed, but I will open a new one for the startup time in large files.

from bubbly.nvim.

datwaft avatar datwaft commented on May 27, 2024

Reopened because of #112.

The pull request that fixed this (i.e. #109) was reverted because of high CPU utilization (#111).

from bubbly.nvim.

kuznetsss avatar kuznetsss commented on May 27, 2024

With neovim 0.6.1 I started to have errors Too many highlight and syntax groups from different plugins. Is it because of bubbly's amount of highlight groups?

from bubbly.nvim.

datwaft avatar datwaft commented on May 27, 2024

With neovim 0.6.1 I started to have errors Too many highlight and syntax groups from different plugins. Is it because of bubbly's amount of highlight groups?

It's probably related. Bubbly generates every permutation based on the colors in the configuration.

Sorry that I haven't had the time to do the full rework, life has been crazy these past months.

from bubbly.nvim.

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.