Coder Social home page Coder Social logo

Interrested in merging? about nixvim HOT 4 CLOSED

pta2002 avatar pta2002 commented on August 29, 2024
Interrested in merging?

from nixvim.

Comments (4)

pta2002 avatar pta2002 commented on August 29, 2024 1

I think the best way to go about this would be to submit this as a PR and then I can go ahead and review the code over there, should make it easier to give feedback.

from nixvim.

pta2002 avatar pta2002 commented on August 29, 2024

Hi! Could you please leave an overview of what's changed, just so I can have an idea of what to look for?

As far as modules are concerned, I have no opposition to merging them (the more the better), though I'd probably cherry-pick the commits that add new plugins for now, since the rest is more architecturally different.

As far as the cmp changes are concerned, I'd have to look better into that, specially considering I'm not the one who developed that module and am not very familiar with it. I'd really like to avoid any breaking changes, though.

from nixvim.

jooooscha avatar jooooscha commented on August 29, 2024

Sure,

I think one of the most important change is that I integrated nixpkgs-vim-extra-plugins into the projekt (Actually a fork of mine, because the developer of the original repo delete plugins as soon they are in nixpkgs, which I think is a bad Idea because they are easier to keep up to date in a separate repo. Adding them is a matter of adding one line to the manifest.txt ).
However, I did this to have easy access to more and newer plugins.

I added a mkLuaPlugin helper function. With this functions adding simple lua plugins only requires adding the module options in camalCase and they are automatically converted to the corresponding lua options in snake_case. The function also automatically adds a enable option and extraConfig option. This also means that new plugins can be added in a matter of minutes, because all lua config can be added via the extraConfig options. Nix module options can then be added later.

I used this function to create a list of generated plugins. The Idea is to be able to add new plugins in one line. A complete module can then be added later. This way, we could always have "all' plugins available via modules.

I added a plugin_template_lua.nix For easy plugin bootstrapping.

I added aliases for boolOptions, strOptions, intOptions, and their counterparts where the argument can also be null. I added them for cleaner module structure and better overview.

I added a bunch of plugins (besides the generated ones)

As for the cmp module, I modularizes some options as they are deeply nested and I though the module was way too long. I plan to do this for all options eventually.
I started implementing a better sollution for snipped, but did not finish yet. I would revert this before merging, until I finish the new solution.
I think the only breaking change I have made is the way how to add sources. In my implementation they are normal module options that can be enabled and setup via nix; no lua code needed. I think the breaking change would be worth it, but if you really want to avoid breaking anything, I could re-add the old style as an legacy option.

I also renamed a bunch of variables that served the same purpose in different modules but had different names. This is only internally and should not break any config.

I think that is all.
If it is ok I will create a merge request and we can discuss which changes you want and which don't

from nixvim.

pta2002 avatar pta2002 commented on August 29, 2024

Closing this since #36 is now open

from nixvim.

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.