Giter Club home page Giter Club logo

Comments (10)

echasnovski avatar echasnovski commented on August 11, 2024 1

this looks really cool. when's the next release? :)

Thanks! For 0.3.0 I planned 'mini.doc' and 'mini.indentscope' as new modules. They need to be publicly beta-tested for a while (each at least couple of weeks). I also really want to create at least rudimentary tests for all modules, but that is a daunting task. But I'll try.
So, in short: in quite a while.

from mini.nvim.

Runeword avatar Runeword commented on August 11, 2024 1

The combination of text-object + motions + vizualisation is perfect and allowed me to ditch indent-blankline, vim-indent-object and vim-indentwise since I don't use all their features.

from mini.nvim.

echasnovski avatar echasnovski commented on August 11, 2024 1

A few ideas:

1. A toggle (to ensure opt-in) to show either the current indent, or, the current indent and all 'upstream | higher' indents up until the first one

2. Using `Yggdroot/indentLine` in combination with this module seems to have this module overlay lines over Yggdroot's lines. It would be nice if the two could be combined, however not sure if this is possible as I didn't come across any sign of using `extmark` in `Yggdroot/indentLine`, so a priority change would not easily fix this. Might be redundant if point 1 is taken into consideration

Seems to work well so far, cheers !

Thanks for the feedback, this is helpful!

About ideas:

  1. I considered implementing it for quite a while, but it proved to be a lot of small nuances which would make code more complicated. I might rethink this in the future, but at the moment I don't see it implemented here.
  2. Yes, 'mini.indentscope' will overlay those lines exactly because it uses extmarks. Unfortunately, currently it doesn't coexists well even with lukas-reineke/indent-blankline.nvim, which uses extmarks. The main reason is that Neovim at the moment doesn't (and probably won't ever) allow placing extmarks not near the text. This is an issue because I want vertical line to be shown correctly even on empty lines. So this means using approach from 'indent-blankline.nvim' - place extmark on first column with text mimicking padding. Current API of extmarks allows different highlighting groups for different parts of text, but not different priorities. This is why I created neovim/neovim#17366. If it gets implemented, then I'll make whitespace padding have a very low priority so that it will get overlaid by extmarks from 'indent-blankline.nvim'. However, I don't have my hopes high because it seems like a difficult feature to implement. Maybe allowing placing extmarks on any screen position might be even simpler :)

from mini.nvim.

echasnovski avatar echasnovski commented on August 11, 2024 1

Thank you all for beta-testing 'mini.indentscope'! I made new release (hey, @hunleyd), so it is now not in beta any more.

from mini.nvim.

xigoi avatar xigoi commented on August 11, 2024

Beautiful! I've wanted something like this!

I don't like that it's animated by default. IMO, it goes against the spirit of Vim where everything happens as fast as possible. But it's easy to turn off the animation, so it's not that much of a problem.

from mini.nvim.

echasnovski avatar echasnovski commented on August 11, 2024

Yeah, I've had this exact thought today just before the release. I just really like the animation outcome and how I got there implementation-wise. And technically, it does happen as fast as possible, because it is non-blocking :)

from mini.nvim.

hunleyd avatar hunleyd commented on August 11, 2024

this looks really cool. when's the next release? :)

from mini.nvim.

levouh avatar levouh commented on August 11, 2024

Turning this into a toggle-able command would not be super useful, right? Its basically the same thing as :set cursorline at that point, with some goodies like text objects, cool animations, and whatnot.

from mini.nvim.

echasnovski avatar echasnovski commented on August 11, 2024

Turning this into a toggle-able command would not be super useful, right? Its basically the same thing as :set cursorline at that point, with some goodies like text objects, cool animations, and whatnot.

Not sure, what exactly you mean here.

Some possibilities:

  • There are vim.{g,b}.miniindentscope_disable to enable/disable/toggle automated visualization. Toggle here is done with :lua vim.g.miniindentscope_disable = not vim.g.miniindentscope_disable.
  • There are MiniIndentscope.draw() and MiniIndentscope.undraw() for manual drawing and undrawing of visual indicator. There is no draw_toggle() or exported indicator of drawing status to manually implement "perfect" draw_toggle(), but it might be done using variables from previous bullet and/or setting draw.delay to a very large value. Didn't do it, because it wasn't the main point of this module, but not opposed to it. If you describe your intended usage, we can work something out.

from mini.nvim.

lcrockett avatar lcrockett commented on August 11, 2024

A few ideas:

  1. A toggle (to ensure opt-in) to show either the current indent, or, the current indent and all 'upstream | higher' indents up until the first one
  2. Using Yggdroot/indentLine in combination with this module seems to have this module overlay lines over Yggdroot's lines. It would be nice if the two could be combined, however not sure if this is possible as I didn't come across any sign of using extmark in Yggdroot/indentLine, so a priority change would not easily fix this. Might be redundant if point 1 is taken into consideration

Seems to work well so far, cheers !

from mini.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.