Skip to content

Update of kickstart-modular to follow the upstream vim.pack refactor#97

Merged
dam9000 merged 14 commits into
devfrom
test-pack
Jun 12, 2026
Merged

Update of kickstart-modular to follow the upstream vim.pack refactor#97
dam9000 merged 14 commits into
devfrom
test-pack

Conversation

@dam9000

@dam9000 dam9000 commented Jun 3, 2026

Copy link
Copy Markdown
Owner

Based on PR:
#95

And script:
https://github.com/oriori1703/personal-kickstart.nvim/blob/test/modular/scripts/split_init.py

Which was mentioned in:
#94

I applied some changes to split_init.py:

    split_init.py: several adjustments to match existing modular structure more closer
    
    A couple of notable changes:
    - renamed section file names to match existing files in kickstart-modular
    - split ui section to separate plugins to match existing files in kickstart-modular
    - append modeline
    - merge gitsigns from init.lua and existing gitsigns.lua plugin
    
    This is so that the resulting file names match existing kickstart-modular
    files, which should make it easier to review changes, and also to merge
    these changes to anyone that is forking kickstart-modular

@dam9000

dam9000 commented Jun 3, 2026

Copy link
Copy Markdown
Owner Author

@oriori1703

Can you please review this, I made some adjustments to your script to better match the existing kickstart-modular structure.
From my initial look and test it appears fine, but I will let it soak for a bit.

Oh and btw for the script to work properly, it depends on your renumbering of sections from here:
2026-05-07 3e17d38 orip BETTER

oriori1703@3e17d38

So if everything looks ok it would be good to eventually integrate that section renumbering in the upstream kickstart too.

This was referenced Jun 3, 2026
dam9000 added 2 commits June 4, 2026 15:12
…e more closer

A couple of notable changes:
- renamed section file names to match existing files in kickstart-modular
- split ui section to separate plugins to match existing files in kickstart-modular
- append modeline
- merge gitsigns from init.lua and existing gitsigns.lua plugin

This is so that the resulting file names match existing kickstart-modular
files, which should make it easier to review changes, and also to merge
these changes to anyone that is forking kickstart-modular
@dam9000

dam9000 commented Jun 4, 2026

Copy link
Copy Markdown
Owner Author

I have now rebased my personal config on top of this and it seems to work fine.

@oriori1703 oriori1703 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I commented on some minor code readability improvements, but otherwise the code seems to function fine (though I kinda skimmed the script because I don't have a lot of time until the weekend).

Though I think I prefer something closer to my earlier version because I think parsing the vim.pack calls and splitting the files / combining with the extras is really fragile and adds a lot of complexity to the script.

I get that you want each plugin to be in it's own file, but this is already not the case with blink, telescope, and lsp.
Also most of the plugins in the split file have a really small config and I don't think really warrant their own file.

If this helps I can also merge the 2 gitsigns configs in the upstream repo (and also include 3e17d38) which gives one less reason to split that section.

Comment thread scripts/split_init.py
Comment thread scripts/split_init.py Outdated
Comment thread scripts/split_init.py Outdated
Comment thread scripts/split_init.py Outdated
Comment thread scripts/split_init.py Outdated
Comment thread scripts/split_init.py Outdated
Comment thread scripts/split_init.py Outdated
Comment thread scripts/split_init.py Outdated
Comment thread scripts/split_init.py
Comment thread scripts/split_init.py
@dam9000

dam9000 commented Jun 11, 2026

Copy link
Copy Markdown
Owner Author

I commented on some minor code readability improvements, but otherwise the code seems to function fine (though I kinda skimmed the script because I don't have a lot of time until the weekend).

Thank you so much, many of the suggestion make sense and I will apply them.

Though I think I prefer something closer to my earlier version because I think parsing the vim.pack calls and splitting the files / combining with the extras is really fragile and adds a lot of complexity to the script.

I get that you want each plugin to be in it's own file, but this is already not the case with blink, telescope, and lsp. Also most of the plugins in the split file have a really small config and I don't think really warrant their own file.

I thought about this a lot but in the end decided to keep the current structure. Having an easier path of migrating forward for people that merge in the changes is a compelling argument I think. At least I know it made my migration much easier, because in my personal config I make many small changes all around. Having to deal with the plugin manager change and a restructuring at the same time would be a bit too much of a hassle to even consider the migration.

Regarding the script complexity, I wouldn't worry about it, with the accessibility of vibe coding adapting the script is very easy and quick to do so - all my changes were vibe coded (and it shows :) ), but it gets the job done.

It's true that some larger sections are not split to separate plugins but in that case it makes sense to keep them as is because they are dealing with the dependencies on the actual plugin and the dependent plugins were kept together already in the original modular structure - because the lazy plugin manager treats that that way - a plugin spec contains also the dependent plugins.

Also I find that having the name of the plugins be reflected in the filename instead of a section name is an advantage, because let's say you want to replace telescope with snacks, if the plugin is called by the section name - search, you would be rewriting the whole section file and would not have an easy path back. While if the plugin is called telescope, you can just comment out the require for it, and add a new one called snacks and you can probably easily switch between them by just commenting/un-commenting one single line. Similar for completion - you can have blink.cmp or nvim-cmp, if the plugin is called completion you would need to rewrite it instead of having the ability of switching between them

We might reconsider restructuring this in the future, as I see the package manager change and the restructuring as two separate issues.

(sorry for the lengthy post, just wanted to put out the rationale behind it)

If this helps I can also merge the 2 gitsigns configs in the upstream repo (and also include 3e17d38) which gives one less reason to split that section.

If you can merge the 3e17d38 changes to the section names (split foundation to options and keymaps and renumber) that would be great, yes please.

As for gitsigns I'll leave the decision up to you. I guess it would make sense to just fold the existing gitsigns.lua plugin of the original kickstart into init.lua, but at the time that was suggested the hesitation was that it would increase the line count of init.lua where the wish was to keep it short.

@oriori1703

Copy link
Copy Markdown
Collaborator

Regarding the script complexity, I wouldn't worry about it, with the accessibility of vibe coding adapting the script is very easy and quick to do so - all my changes were vibe coded (and it shows :) ), but it gets the job done.

While I agree that it would be easier to fix with the help of LLMs, it would be the easiest if nothing breaks at all :)
Though I ultimately I agree with the following, and think that simplifications should be deferred to the future:

We might reconsider restructuring this in the future, as I see the package manager change and the restructuring as two separate issues.

I merged added the changes from 3e17d38 in 7031a09.

Regarding the gitsigns change, I'm unsure in which direction I want to make the merge (into init.lua vs gitsigns.lua), so I opened a PR for the gitsigns changes and I will wait a couple of days to see if anyone has a preference (feel free to comment if you would like).

Let me know if I can help in any other way :)

@dam9000 dam9000 force-pushed the test-pack branch 2 times, most recently from aff225a to 64e7f1b Compare June 11, 2026 22:29
Co-authored-by: Ori Perry <48057913+oriori1703@users.noreply.github.com>
@dam9000

dam9000 commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

All comments resolved, I think this looks OK now, will merge.

@dam9000 dam9000 merged commit f26595a into dev Jun 12, 2026
1 check passed
@dam9000 dam9000 deleted the test-pack branch June 12, 2026 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants