1
0
Fork 0
mirror of synced 2024-11-15 04:28:58 -05:00
Commit graph

362 commits

Author SHA1 Message Date
Eric Nielsen
6af7892f91 [archive] Check unrar with commands array
“unrar-free returns the error code 1 when run without arguments, thus
failing the presence check.” as reported at sorin-ionescu/prezto#1383

Reformat code and use one-liners instead of if/then/fi. And we don’t
need to separate local definitions from assignments anymore starting
from zsh 5.2.
2018-02-07 18:27:59 -05:00
Eric Nielsen
2d1aea3b74 [prompt] Remove autoload -Uz colors
since we don't need that. We're using the newer '%F{red}color%f' code
instead.

Also use `PS1` instead of `PROMPT`, as suggested at `man zshcontrib`,
under "Writing Themes”.

Refactor code.
2018-02-07 18:15:17 -05:00
Eric Nielsen
451e51bd88 [git] Add git-branch-delete-interactive
that prompts if upstream remote branch(es) should be deleted too. As
with `git branch`, the function supports multiple branches as params,
and also the `-r`/`--remotes` param. Update `gbx` and `gbX` to use this
function.

Also update `git-stash-clear-interactive` to have multiple tests instead
of multiple nested `if`/`then`/`fi`. (Simpler syntax, IMHO)
2018-02-05 10:44:59 -05:00
Eric Nielsen
e9171405cf [prompt] steef: Update it to be customizable
and to have a help and a preview too.

Inspired by #192, and by having (few but) good prompt themes to serve as
starting points for the users to customize or implement their own.

Also removed the colors functions, since we don't need that. We're using
the newer '%F{red}color%f' code instead. (Actually all our themes are)

Closes #245
2018-01-22 17:37:35 -05:00
Eric Nielsen
fd9274ea91 [git] Show upstream branch name in gbl and gbL
being more verbose when listing branches.
2018-01-22 17:25:51 -05:00
Eric Nielsen
c501a1b64c [git] Review aliases and README.md
This complements the changes done in the last commit, and also fixes the
`glg` output, and removes the now unnecessary `--date=relative`
parameter from `glG`.

Although I insisted on the `--long-option` format on 8669a4f, I think
`rm -rf` is pretty common and recognizable, so revert to that.

Add missing aliases to README.md, and improve description of existing
ones. The main improvement is trying to be more concise, so instead of
repeating "records changes to the repository" multiple times, simply say
"commits", for example. Also try to use words that match the alias
letters, so for "gcs" say "shows" instead of "displays", for example.
2018-01-11 11:30:20 -05:00
Eric Nielsen
0a7451999e [git] Review all functions but ones using git fsck
as there are multiple solutions to list the lost commits and stashes,
but I could not find reliable ones. See
https://stackoverflow.com/q/89332/2654518.
Well, the current `git-commit-lost` and `git-stash-dropped`
implementations don't accurately work at least on the repositories I'm
working with.

The `git-hub` functions where removed at dcc3265, but aliases and docs
remained. Remove these.

Remove line break from `_git_log_oneline_format`, so it really occupies
one line. And change date format in `glG` output from committer date
(`%cd`) to relative author date (`%ar`) to conform with other formats.

Refactor remaining functions. Most of the changes refer to using the
already existing git error messages and return codes, instead of having
code that creates that. (Error messages for 'not in a git repository'
where not even consistent among functions, and there's were I started
this...)
The most drastic changes can be seen in `git-root`, then in `git-dir`
and `git-stash-clear-interactive`.
2018-01-10 10:25:25 -05:00
Eric Nielsen
4156606e67 [git-info] Move git-info function to functions dir
since we already have a function (`coalesce`) defined and both can now
get zcompiled into the same digest file.

Also, nest the `git-action` function to the scope where it's used.
2018-01-09 09:24:01 -05:00
Eric Nielsen
9a8cb227f3 [git-info] Define integer variables with -i
also multiple variables can be defined with `local` at the same line.
2018-01-08 17:20:10 -05:00
Eric Nielsen
7b70cffc0e [prompt] eriner: Simplify help message and use PS1
and `RPS1`, instead of `PROMPT` and `RPROMPT`, as suggested by the zsh
manual at `man zshcontrib`, under "Writing Themes":

> By convention, themes use `PS1`, `PS2`, `RPS1`, etc., rather than the
longer `PROMPT` and `RPROMPT`.
2018-01-08 12:22:35 -05:00
Eric Nielsen
313d157c9e [autosuggestions] Update submodule to version v0.4.2 2018-01-05 12:30:56 -05:00
Brottweiler
6f8be83920 Update to new repo URL
from `Eriner/zim` to the new `zimfw/zimfw`.

Closes #238
2018-01-03 10:30:12 -05:00
Eric Nielsen
5387adb78e [utility] Change colour blue to bold blue
Since some terminal colour schemes have a too dark blue color that does
not go well with a black background. And since some people actually use
such colour schemes!  :- )

Fixes #225
2017-12-01 17:28:02 -05:00
Eric Nielsen
20c3f79743 [git] Change colour blue to bold blue
Since some terminal colour schemes have a too dark blue color that does
not go well with a black background. And since some people actually use
such colour schemes!  :- )

Fixes #228
2017-12-01 17:23:34 -05:00
Eric Nielsen
9d0851ed95 [utility] Use "our" ls colors in GNU too
They were only being applied to BSD. Also, GNU uses `LS_COLORS`, and BSD
only uses `LSCOLORS`. Keeping these consistent, with same color scheme,
in both GNU and BSD.

Simplify arithmetic command expression without using `${var}`
substitution, but `var` instead. The second construct does not fail if
`var` is not defined, but defaults its value to `0` in that case.
2017-12-01 07:45:55 -05:00
Eric Nielsen
1716ed6fea Revert "[utility] BSD uses LSCOLORS and GREP_COLOR"
This reverts commit 6022fe46c5.

Current code only works in a GNU with coreutils installed for `ls`, and
only with a `grep` that supports colors (not a Busybox one, for example)

Fixes #230
2017-12-01 07:45:55 -05:00
Eric Nielsen
4004d109cf Revert "fix typo'd var; otherwise colors would never apply"
This reverts commit abbeeb9d37.

That was not a typo
2017-12-01 07:22:28 -05:00
Matt Hamilton
abbeeb9d37 fix typo'd var; otherwise colors would never apply 2017-11-29 18:47:37 -05:00
Wellington Mendoza
f6304a06cc [git] Update log colour scheme
Use yellow commit hash, cyan author, blue date, and auto ref names

Closes #228
2017-11-29 10:33:03 -05:00
Eric Nielsen
39e961117d
[prompt] eriner: Add help, preview, parameters
and refactor code, inlining auxiliary functions inside
`prompt_eriner_main`.

Theme colors are now customizable with parameters. Also, it works better
with light backgrounds by using `%Sstandout%s` for the segments which
were originally using black as foreground color (intended for dark
backgrounds).

The help explains the parameters, and the preview shows one color
variation.

Fixes #169. Closes #226.
2017-11-29 09:07:53 -05:00
Eric Nielsen
bc742f0023
[completion] Remove smart editor completion
as Vim can open archives, and Emacs can virtually open everything  :- )

I suggest we don't try to be smart here.

Closes #229
2017-11-29 09:06:41 -05:00
Eric Nielsen
bd380e8e18
[spectrum] Delete submodule
The following was introduced in zsh 5.0:

> %F, %K, %f, %k allow colouring of prompts both using ANSI colour names
  and values supported by individual terminal emulators.

making this submodule obsolete.

See http://zsh.sourceforge.net/releases.html

Closes #224
2017-11-29 09:05:12 -05:00
Eric Nielsen
41c2232166 [utility] Move mkcd to functions subdirectory
Now that we have a general digest file that can contain all the
functions from all active modules, we can add functions to any of them
without the need to update the `fpath`.
2017-11-24 21:05:48 -05:00
Eric Nielsen
6022fe46c5 [utility] BSD uses LSCOLORS and GREP_COLOR
and GNU uses LS_COLORS and GREP_COLORS. So change logic to only set
these environment variables for each OSTYPE.

Also original code was setting the `ls` alias with `-G` instead of
`--color=auto` if in a GNU without `dircolors`. Fix that too.

Simplify arithmetic command expression without using `${var}`, but
`var` instead. The second construct does not fail if `var` is not
defined, but defaults its value to `0` in that case.

Closes #225
2017-11-24 19:14:23 -05:00
Eric Nielsen
e0a7c679e0 [meta] Move zmanage to function in init.zsh
and delete the meta module altogether.

Also refactor `tools/zim_issue` to use `tools/zim_info`, use local
variables, and print the output directly without the need of the
intermediate `issue_md` array.

Closes #218
2017-11-24 19:08:39 -05:00
Eric Nielsen
8ba34e68e5 [completion] Don't zcompile the zcompdump file
as this is already being done in `zlogin`. Centralizing all the
compilation in one place.

Closes #218
2017-11-24 19:08:20 -05:00
Eric Nielsen
ab3b20f8cd [tools] Clean zcompdump_file and .zwc.old files
Consider the `zcompdump_file` variable, that could be defined in
`.zimrc`, when cleaning the cache.

A custom zcompdump_file would not be cleaned from the cache without this
correction.

Also remove *.zwc.old files from cache, as zrecompile also generates
these.

Closes #218
2017-11-24 19:08:17 -05:00
Eric Nielsen
8aa086c481 [prompt] pure: Update submodule to version 1.6.0 2017-11-01 17:56:25 -05:00
Eric Nielsen
3e31167e70 [completion] Update submodule to version 0.27.0 2017-11-01 17:49:00 -05:00
Eric Nielsen
ee7cb6581d [prompt] pure: Update submodule 2017-10-23 10:01:08 -05:00
Eric Nielsen
b190231682 [archive] Remove _gzip_bin and _bzip2_bin refs
as these variables are not being set anymore.

Fixes #220
2017-10-23 09:54:08 -05:00
djape
01e2766e8c [archive] Support for multipart 7zip archives
Cover all multipart archives created by 7zip

Closes  #221
2017-10-14 10:28:03 -05:00
Matt Hamilton
8fbd143b01 set defaults for bz2 and gz compression utils
Fix #220
2017-10-08 16:38:38 -04:00
Eric Nielsen
5564c87338 [completion] Update submodule 2017-10-03 12:17:07 -05:00
Eric Nielsen
23b8265f87 [prompt] lean: Update submodule
Fixes #209
2017-10-02 11:59:27 -05:00
Eric Nielsen
8ba9621f48 [prompt] Add sp to the prompt_opts array
in our custom themes.

With zsh starting at version 5.4, when using the `prompt_opts` array,
`nopromptsp` will be set unless the array contains a `sp`. This was
introduced in zsh at
43e55a9bcd (diff-bb10d67e7a8561b66a53a805f3c77a40R233)

Fixes #209
2017-10-01 20:41:43 -05:00
Eric Nielsen
d0429dc0bb [environment] Remove path separator from WORDCHARS
So individual path elements can be edited with backward-kill-word and
backward-word/forward-word keys.

Fixes #206.
2017-09-21 19:23:14 -05:00
Matt Hamilton
d40b6cf928 [prompt] pass prompt prams from zprompt_theme
While normally it's a good thing that zsh doesn't auto-expand on spaces,
in this case we want to split on spaces into distinct words, that way
the values are passed to `prompt` in multiple params.

Fixes #178
2017-09-18 09:18:20 -04:00
Matt Hamilton
54faa20468 [pacman] detect pkg regardless of compress method 2017-09-18 09:18:12 -04:00
Eric Nielsen
29e2043b99 [syntax-highlighting] Update submodule to version 0.6.0 2017-09-11 09:48:55 -05:00
Eric Nielsen
7479e22b17 [prompt] lean: Update submodule 2017-09-11 09:44:49 -05:00
Eric Nielsen
dc73306b4d [completion] Update submodule 2017-09-11 09:41:56 -05:00
Chet Gurevitch
9eaba9a3a3 [meta] Use ZIM_HOME in zmanage
And fix init.zhs to export ZIM_HOME. The zmanage script invokes a new
shell for the sub commands, and those would fail as there would be no
value for ZIM_HOME.

Closes #203
2017-09-04 17:29:34 -05:00
Thiago Kenji Okada
f6bb75579f Allow arbitrary ZIM location with ZIM_HOME
This change allow arbitrary Zim location path by setting a new
environment variable, ZIM_HOME. If the user does not set it, Zim falls
back to the old "${ZDOTDIR:-${HOME}}/.zim" location.

Closes #203
2017-09-04 17:25:01 -05:00
Eric Nielsen
96c474978e [completion] Update submodule 2017-08-19 14:03:28 -05:00
Eric Nielsen
25d97ccac9 [prompt] lean: Update submodule 2017-08-19 14:00:48 -05:00
Eric Nielsen
537f076603 Don't load zim if zsh < 5.2
and show an error message, as discussed in #184.

Code in modules/environment/init.zsh is also simplified to only support
zsh >= 5.2

Closes #200
2017-08-03 09:18:39 -05:00
wweir
83f61ddeba [environment] Recognize comments starting with '#'
compatible with bash/omz

Closes #198
2017-07-30 17:37:12 -05:00
Eric Nielsen
a9618a0fd3 [git] Use fetch --all in gfu alias
instead of `remote update`. Both behave the same way, fetching from all
configured remotes. The `fetch --all` is shorter, and probably more
familiar. See https://stackoverflow.com/a/17512004/2654518

Also change `;` to `&&`, so merge is only called after fetch succeeded.

Closes #196
2017-07-30 17:35:44 -05:00
Eric Nielsen
8669a4f369 [git] Commit messages with 50 characters in glG
truncating at character 60. First 10 chars are used for `*`, commit
hash and spaces.

The 50 char limit is based on
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

Also changed aliases to use the `--long-option` format when available,
so aliases are clearer for those unfamiliar with the options.

Closes #196
2017-07-30 17:35:44 -05:00
Eric Nielsen
460090beb9 [completion] Update submodule 2017-07-25 10:07:03 -05:00
Eric Nielsen
d562acc4c0 [history-substring-search] Remove redundant defaults
for options already defined, with the same values, in
`zsh-history-substring-search.zsh`. See
be0fe1fca9/zsh-history-substring-search.zsh (L46-L48)

Closes #189
2017-07-17 16:15:51 -03:00
Eric Nielsen
61019c5827 [prompt] pure: Update submodule 2017-06-28 14:25:15 -05:00
Eric Nielsen
c7fdef5305 [prompt] lean: Update submodule 2017-06-28 14:24:37 -05:00
Eric Nielsen
95f1e3c6ca [prompt] pure: Update submodule 2017-06-08 09:58:41 -05:00
Eric Nielsen
0fec8a7e40 [prompt] lean: Update submodule 2017-06-08 09:58:17 -05:00
Eric Nielsen
57ebe3e61f [history-substring-search] Update submodule 2017-06-08 09:57:44 -05:00
Eric Nielsen
e3637db2c4 [completion] Update submodule 2017-06-08 09:57:22 -05:00
Eric Nielsen
f4fa8cf8b0 [autosuggestions] Update submodule 2017-06-08 09:56:48 -05:00
ℳichiel ℛoos
87a8b82563 [autosuggestions] Add module
Closes #172. Fixes #35.
2017-06-08 09:33:26 -05:00
Matt Hamilton
126e950056 remove broken quote in fasd function 2017-05-30 06:30:30 -07:00
Matt Hamilton
8f395be650 Fix fasd regression from #180
Fixes #186
2017-05-29 09:54:23 -07:00
ℳichiel ℛoos
fcf060482b [environment] Use zsh style tests for empty vars
Closes #180
2017-05-17 15:59:49 -05:00
ℳichiel ℛoos
c58f9015ec [fasd] Use zsh style tests for empty vars
Closes #180
2017-05-17 15:59:38 -05:00
Eric Nielsen
872926c84c [utility] Use one-liner instead of "if then fi"
in recent tests included, to keep code simpler.
2017-05-15 08:59:17 -05:00
ℳichiel ℛoos
f15d6e4e02 [utility] Don't overwrite existing env variables
Environment variables set in `.zshenv` should not be overwritten.
However, it is sourced before Zim loads, making Zim overwrite the
settings.

Fixes #175. Closes #179
2017-05-15 08:49:06 -05:00
Matt Hamilton
4ad8f8db8e [syntax-highlighting] update submodule 2017-04-30 09:03:36 -07:00
Matt Hamilton
7d389add76 [prompt] pure: update submodule 2017-04-30 09:03:25 -07:00
Matt Hamilton
0e2094afef [prompt] liquidprompt: update submodule 2017-04-30 09:03:12 -07:00
Matt Hamilton
60968c428d [prompt] lean: update submodule 2017-04-30 09:02:58 -07:00
Matt Hamilton
903e8aa24d [completion] update submodule 2017-04-30 09:02:46 -07:00
Eric Nielsen
c8820313ef Fix liquidprompt preview
breaking the current prompt after `prompt -p`. Actually liquidprompt is
pretty invasive in the way it is implemented, defining extra
`prompt_on`, `prompt_off` and `prompt_OFF` functions to switch it after
it is executed.

Fixes #112, Closes #165
2017-04-30 09:01:36 -07:00
Henrique Silva
d97ff6bd07 Support dynamic title on urxvt
Closes #151
2017-04-30 09:01:14 -07:00
Eric Nielsen
dca1803ced [prompt] Don't expand git_info in eriner theme
to avoid the git-info vulnerability to execute an arbitrary command, as
reported in #158.

Fixes #158 (for eriner theme), Closes #168
2017-04-17 23:17:53 -05:00
Eric Nielsen
d771fd88fb [prompt] Range segment in eriner as in magicmace
This reverts commit eee6e911d2.

As suggested in
https://github.com/Eriner/zim/pull/142#issuecomment-283806756 (and
"thumb-upped" by Tmplt). The Ranger segment was introduced in eriner
theme by Tmplt in https://github.com/Eriner/zim/pull/64. He also added
it to the magicmace theme.
2017-04-17 16:31:07 -05:00
Eric Nielsen
3c2730d0c4 [git-info] Remove dependency on git-dir function
from the git module.
Also now making all git calls with `command`.

Fixes #161 (again), Closes #164
2017-04-12 20:21:26 -05:00
Eric Nielsen
9de30b97b1 Remove is-true function
that was only being used in the `git` and `git-info` modules to check
the output of `git rev-parse --is-inside-work-tree`. The code depending
on this function was already changed.

Closes #163
2017-04-11 17:50:09 -07:00
Eric Nielsen
b34a75e4d8 Remove git dependency on is-true function
The function is currently only being used for checking the result of
`git rev-parse --is-inside-work-tree`. Checking for the return code of
the command is enough.
2017-04-11 17:50:07 -07:00
Eric Nielsen
262f4992e9 Remove git-info dependency on is-true function
from `git` module. Actually, the function is a little bit of
over-engineering and it's currently only being used for checking the
result of `git rev-parse --is-inside-work-tree`, even in the `git`
module code.

Checking for the return code of `git rev-parse --is-inside-work-tree` is
enough. Also refactored other portions of the code where return codes
are being checked.

Fixes #161, Closes #162
2017-04-11 17:49:47 -07:00
Joe Moon
43096df5cb [environment] Fix url-quote-magic
`url-quote-magic` automatically escapes characters that fit a URI scheme
as you type. From what I can tell from the commit history, this was
mistakenly placed in `else` branch of the nested conditional instead of
at the end of the outermost conditional.

Closes #160
2017-04-11 13:29:53 -05:00
Eric Nielsen
53a3cd7933 Fix git-info arbitrary command execution exposure
The contents of git_info are subject to expansion by the shell. Avoid
putting raw ref names in the prompt to protect the user from arbitrary
code execution via specially crafted ref names (e.g., a ref named
'$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)' would execute 'sudo rm -rf /' when the
prompt is drawn). Instead, put the ref names in new global variables and
reference these variables from git_info.

See:
- https://github.com/njhartwell/pw3nage
- 8976500cbb

Fixes #158, Closes #159
2017-03-30 10:17:03 -07:00
Eric Nielsen
f3e673a52b Rewrite steeef theme using git-info
This uses the verbose mode to be able to display indexed, unindexed and
untracked files indicators. This is the last theme left to be migrated
to git-info, and the first one to use its verbose mode.

Originally, the theme also supported svn via vcs_info. The svn support
is lost in this rewrite. Maybe if a new svn-info module is introduced to
Zim...

Closes #157
2017-03-29 19:40:07 -07:00
Eric Nielsen
0df896c3f1 Change git-info verbose mode implementation
so it behaves alike the non-verbose mode. For example, in the "merge"
special action context, files are being reported as both indexed and
unindexed by `git diff-index` and `git diff-files` commands in
non-verbose mode. That was not the case with the regular expressions
used in the verbose mode.
2017-03-29 19:40:03 -07:00
Sebastian S
449634a99e git-commit-list: fix typo
command is written with two m, not three.

Closes #156
2017-03-29 12:57:05 -07:00
Eric Nielsen
ae771c878f Rewrite minimal theme using git-info
As previous migrations of themes to git-info, this does not use its
verbose mode, so a repo with just untracked files is not considered
dirty.

It uses the newly-introduced `diverged` context and `coalesce` function
from git-info.

Closes #152
2017-03-27 13:56:47 -07:00
Eric Nielsen
d56bddf4b1 Add coalesce function to git-info
that will be used by the minimal theme, and could be used for future
themes too. Prezto had this, but we diminished its necessity by
simplifying how git-info works.
2017-03-27 13:56:47 -07:00
Eric Nielsen
a844454a65 Remove undocumented git-info configuration
`prompt.showinfo` for enabling or disabling it globally or per
repository. It can be globally disabled by not loading the `git-info`
module at all, and prompts currently will not break (and in the future
should still not break) if the module is not loaded.

This removes one git call that is used to check for the
`prompt.showinfo` configuration value.
2017-03-27 13:56:47 -07:00
Eric Nielsen
53aef5a05c Add diverged context to git-info
that, when defined, will be set if branch is both ahead and behind of
remote. If not defined, the `ahead` and `behind` contexts will still be
set, as how they worked previously.
2017-03-27 13:56:47 -07:00
Eric Nielsen
76cf486d5d Only evaluate prompt_gitster_status once
replacing its contents directly into the `PROMPT`, instead of calling
the function continuously.

Closes #150
2017-03-27 13:56:47 -07:00
Eric Nielsen
c7b2232378 Inline is-true function body, as other functions
defined in Zim. Instead of creating an additional `is-true() { }`
function scope.

Closes #148
2017-03-27 13:56:45 -07:00
Eric Nielsen
4b95df9a5f Fix magicmace errors when git-info not enabled
and add a comment stating that the theme requires the `git-info` module.
Also make better usage of the arithmetic command `(( ))`.

Closes #146
2017-03-08 06:20:19 -08:00
Eric Nielsen
176d2ab4d3 Fix gitster theme errors when git-info not enabled
and add a comment stating that the theme requires the `git-info` module.

Closes #145, fixes #144
2017-03-08 06:20:02 -08:00
Eric Nielsen
597d611d7b Fix eriner theme errors when git-info not enabled
as it was incorrectly testing for the `${+functions[git-info]}`.

Closes #142
2017-03-08 06:19:56 -08:00
Eric Nielsen
eee6e911d2 Add Ranger segment to eriner theme
instead of having the Ranger indicator at the status segment, likewise
the magicmace theme.
2017-03-08 06:17:39 -08:00
Eric Nielsen
a469e147cc Rewrite eriner theme using the Zim git-info module
Based on my rewrite of the Agnoster theme, uses simpler segment drawing
functions and only relies on local variables. Uses git-info module in
non-verbose mode, so a repo with only untracked files will not count as
dirty (but dirty state is computed faster). Also took the freedom of
adding an extra space character after the 'r' for the Ranger segment,
and after the dirty indicator for the Git segment. Everything else looks
and behaves exactly the same as the original prompt.
2017-03-08 06:17:39 -08:00
Matt Hamilton
cf0bb77a37 [syntax-highlighting] update submodule 2017-03-08 06:17:35 -08:00
Matt Hamilton
5ef14a64f1 [prompt] pure: update submodule 2017-03-08 06:17:25 -08:00
Matt Hamilton
9416c7de90 [prompt] liquidprompt: update submodule 2017-03-08 06:17:08 -08:00
Matt Hamilton
9d9b6c2ec9 [prompt] lean: update submodule 2017-03-08 06:16:56 -08:00
Matt Hamilton
269f8399d2 [completion] update submodule 2017-03-08 06:16:42 -08:00