Giter Club home page Giter Club logo

Comments (3)

georgebrock avatar georgebrock commented on July 29, 2024

git-config has some awesome colour related features built into it that we should be taking advantage of. The git-config(1) man page gives this example:

An example to use customized color from the configuration in your script:

#!/bin/sh
WS=$(git config --get-color color.diff.whitespace "blue reverse")
RESET=$(git config --get-color "" "reset")
echo "${WS}your whitespace color or blue reverse${RESET}"

The value for these configuration variables is a list of colors (at most two) and attributes (at most one), separated by spaces. The colors accepted are normal, black, red, green, yellow, blue, magenta, cyan and white; the attributes are bold, dim, ul, blink and reverse. The first color given is the foreground; the second is the background. The position of the attribute, if any, doesn’t matter.

Additionally, git-log formats support the same colour options as git-config within a %C(…) placeholder. Mimicking this behaviour would be nice:

The [format] placeholders are:

  • %Cred: switch color to red
  • %Cgreen: switch color to green
  • %Cblue: switch color to blue
  • %Creset: reset color
  • %C(…): color specification, as described in color.branch.* config option

Overall, I think this means we should:

  1. Replace the hard-coded colour/status mappings with calls like git config --get-color color.gitsh.prompt.uninitialized "normal red"
  2. Support the same %C placeholders that are supported by git-log, and convert %C(foo bar) to a call like git config --get-color "" "foo bar"

If we want to go even further, git-log supports %C(auto) which will cause any subsequent placeholders to be colours appropriately. I'm not sure I see the benefit for prompts though: a user only has one prompt at once, whereas they could have many log formats in scripts, aliases etc. Keeping the format colours in the format strings would be repetitious, but keeping prompt colours directly in the prompt is probably fine.

from gitsh.

georgebrock avatar georgebrock commented on July 29, 2024

Work in progress: https://github.com/thoughtbot/gitsh/compare/gb-custom-prompt-colors

from gitsh.

georgebrock avatar georgebrock commented on July 29, 2024

Done and merged.

from gitsh.

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.