Giter Site home page Giter Site logo

Comments (3)

alecthomas avatar alecthomas commented on August 16, 2024

Hi there.

Believe it or not, this will get much simpler in v2, but it's not quite ready yet. v2 splits parsing and execution into multiple passes, building an intermediate structure that contains the result of the parse. This contains the exact flags, commands and arguments that the parser sees, so you will not need to use heuristics to figure out what the args[]string contains.

However, there are some things holding up progress:

  1. I'm trying to figure out a better way to display help. As you mention, dumping the full list of commands is a bit overwhelming. My current thought is to just dump each level of the tree as each command is encountered.
  2. I want to expose the internal command tree structure publicly, and use text/template to generate the help from that structure. This would allow users to override the help in any way they like. This looks like it will require a fair bit of work though.

So, basically, it's not ready yet, but it should hopefully be much better than v1.

from kingpin.

xealot avatar xealot commented on August 16, 2024

Having tried what must be dozens of these types of libs having a text template is something I've always wanted. It seems like a very natural approach and I'm somewhat surprised it's not more common.

I agree that if you can descend into the subcommands and show relevant help it would be much more intuitive.

from kingpin.

xealot avatar xealot commented on August 16, 2024

👍 NOICE!

from kingpin.

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.