Coder Social home page Coder Social logo

question about readme about lightline.vim HOT 6 CLOSED

bling avatar bling commented on July 30, 2024
question about readme

from lightline.vim.

Comments (6)

itchyny avatar itchyny commented on July 30, 2024

Configurability means that everyone (with less knowledge of the language) is able to configure the appearance easily.
It does not mean that the potential of the plugin.
I believe that anyone can swap the paste and mode component, once they take a glance at my readme file.

You might think that users can configure as they wish in your plugin and regard it as configurability of your plugin.
However, there are lots of Vim users, who do not know how to open a help (for the grammer of statusline), or who do not know how they write functions in .vimrc.
They may get tired after copying a single dictionary config in .vimrc!

Do not confuse that you can configure so your plugin is configurable.

Moreover, while reading your code, I found some points indicating that it is really not configurable.

  • Colors become the same on the both sides and users could not change this behavior. This is far apart from the original one of vim-powerline.
  • The read-only component used to be always added to section_c and users could not configure.
  • The paste component used to be always added to section_a and users could not configure.
  • The right components in unite/vimfiler buffer disappears unintentionally and it's hard to retrieve.
  • The left component for inactive windows is restricted to '%f%m' and users cannot configure.
  • The way of using pipeline (funcref?) is not intuitive so it's hard to configure.
  • When they start to write their own airline_section_b or something in .vimrc, they will have to write g:airline_left_alt_sep. Joining components with a separator is a very simple task which can be done in the plugin. But the users have to write.
  • You have difficulty in truncation of an empty component.

Okay, listen.
You might think that power users can configure your plugin as they wish, so your plugin is configurable.
What is important for a plugin is that it has clean APIs, intuitive ways of settings, so that very beginner of the plugin can extensibly write their own configuration.

from lightline.vim.

bling avatar bling commented on July 30, 2024

if a user cannot look up the help of statusline they have no business installing a plugin.

i do think, however, that it's a bit disingenuous to claim that a plugin is not configurable just because it favors the use of code for customization.

from lightline.vim.

itchyny avatar itchyny commented on July 30, 2024

Not just for the use of code.
What do you think of the points I picked up?

from lightline.vim.

bling avatar bling commented on July 30, 2024

in regards to the points you brought up:

colors

all sections have since been configurable such that it doesn't have to be mirrored anymore. in fact, this was done so that your landscape theme would look as intended. if people feel the need to update existing themes to have different colors on the right side they can submit pull requests.

the ### component cannot be configured

the granular positioning that you mentioned is currently not possible because the g:airline_section variables were never designed to be configurable in that way. also, since nobody raised an issue about it i figured most people were happy already so i didn't see a need to change something that already worked.

The right components in unite/vimfiler buffer disappears unintentionally

i have not seen this personally, but would be happy to fix it if there's an issue raised with repro steps.

The way of using pipeline (funcref?) is not intuitive so it's hard to configure.

i disagree, as by implementing a funcref you can transform the statusline to something entirely different in a couple lines of code. IMO if you are using vim, you are probably a programmer, and the syntax of vimscript is similar enough to C/Java/Python such that you can customize easily by looking at existing examples. the joining of separators is a non-issue if you're using the exposed statusline builder (as you should).

You have difficulty in truncation of an empty component.

the same problem exists in lightline once you turn separators on.


all i'm trying to say is that there's a spectrum of configurability. 0% configurability means you would have to change the source code of the plugin to make it do what you want. 100% configurability would mean there's no plugin at all, and all of it would sit inside your vimrc. i would prefer that you remove your opinionated comment about configurability.

from lightline.vim.

itchyny avatar itchyny commented on July 30, 2024

Okay, okay. Your words not mirrored anymore and designed to be configurable are supported by my PRs, remember, and imagine that I found it not configurable before sending PRs. I firstly tried to move the readonly component to section_b, resulting into that component doubled. Such an implementation was left alone for two months! It was an enough reason for me to judge that your plugin is not configurable.

from lightline.vim.

bling avatar bling commented on July 30, 2024

thanks for taking the time to explain your reasoning.

from lightline.vim.

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.