Comments (3)
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
andwhite
; the attributes arebold
,dim
,ul
,blink
andreverse
. 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 incolor.branch.*
config option
Overall, I think this means we should:
- Replace the hard-coded colour/status mappings with calls like
git config --get-color color.gitsh.prompt.uninitialized "normal red"
- Support the same
%C
placeholders that are supported bygit-log
, and convert%C(foo bar)
to a call likegit 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.
Work in progress: https://github.com/thoughtbot/gitsh/compare/gb-custom-prompt-colors
from gitsh.
Done and merged.
from gitsh.
Related Issues (20)
- Homebrew installation fails (Failed to configure Ruby extension ) HOT 1
- Tab completion for git-rebase HOT 2
- branch -D stops completing after second branch name HOT 1
- `inputrc` test fails intermittently HOT 2
- Fall back to path completion for external commands? HOT 1
- tab complete to track remote branches HOT 1
- Shell commands using env variables and spaces fail HOT 1
- Linuxbrew support?
- :cd command should also change dir of parent shell HOT 2
- Can not start gitsh in MacOS Catalina HOT 3
- Interactive rebase broken with hub HOT 1
- [Question] How would one use the ssh-agent? HOT 4
- Crash while trying to create a new branch
- Custom key bindings/commands HOT 3
- Compatibility with GitHub CLI
- Tab completion with aliases HOT 1
- gitsh doesn't work on Apple Silicon HOT 3
- Hooks running commands like `npm run lint` will fail because `npm` cannot be found HOT 2
- Is this project dead? HOT 2
- Switch to Reline? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gitsh.