Compare commits

...

26 Commits

Author SHA1 Message Date
Eric Freese
0e810e5afa
Merge pull request #813 from tesar-tech/patch-1
Fixes link for nixos package
2024-11-25 20:07:39 -07:00
Jan Tesař
f9526195c5
Fixes link for nixos package 2024-11-25 18:04:58 +01:00
Eric Freese
e52ee8ca55
Merge pull request #811 from zsh-users/develop
v0.7.1
2024-11-15 12:47:51 -07:00
Eric Freese
f8907cf32b v0.7.1 2024-11-15 12:36:08 -07:00
Eric Freese
a50468ef4b Update changelog for v0.7.1 release 2024-11-15 12:35:58 -07:00
Eric Freese
9aceef9646 Remove circle ci reference left over from switch to github actions 2024-11-15 12:28:27 -07:00
Joe Schaefer
11d17e7fea Clear POSTDISPLAY instead of unsetting
We don't have any particular reason to unset. Clearing should be good
enough, and avoid any errors using unset parameters.

Cherry-picked from PR #634
2023-09-07 09:54:04 -06:00
Eric Freese
a593f4dfec
Merge pull request #630 from codicodi/reset-fd
Always reset file descriptor after consuming it
2023-09-07 09:39:17 -06:00
Eric Freese
2c9e57fd50
Merge pull request #628 from jeebak/develop
Ensure that we're using the builtin exec
2023-09-07 09:31:03 -06:00
Eric Freese
c3d4e576c9
Merge pull request #687 from japanese-goblinn/master
fix: Makefile SRC_DIR spacing
2023-09-07 08:58:48 -06:00
Pablo Speciale
23f2943455 Add more common widgets to list of clear widgets
Cherry-picked from PR #706 and updates made to src/config.zsh.

Fixes issues #678
2023-09-07 08:49:25 -06:00
Eric Freese
95602e2dea
Merge pull request #723 from migimigi/migimigi-patch-1
Create .gitignore for *.zwc
2023-09-07 08:46:09 -06:00
Eric Freese
39aa7bed3a
Merge pull request #671 from jirutka/patch-1
Install: Add Alpine Linux package
2023-09-04 09:56:08 -06:00
Eric Freese
27c298cf1a
Merge pull request #711 from dpthegrey/patch-1
Update Install.md
2023-09-04 09:54:44 -06:00
Eric Freese
a84d78f8b5
Merge pull request #758 from mjperrone/patch-1
Update INSTALL link for Mac OS - homebrew moved under z/
2023-09-04 09:53:24 -06:00
Mike Perrone
309d32ac9e
Update INSTALL link for Mac OS - homebrew moved under z/ 2023-09-03 10:00:21 -07:00
Eric Freese
9908eb49a3
Merge pull request #755 from rweir/master
Update README.md
2023-08-17 20:15:04 -06:00
Rob Weir
2b97cf3b30
Update README.md
Clarify where to get `zpty` from.

Info from https://apple.stackexchange.com/a/416099 and https://zsh.sourceforge.io/releases.html .
2023-08-17 23:42:12 +01:00
migimigi
f29bb7f032
Create .gitignore for *.zwc 2023-02-14 01:08:57 +09:00
D
c14ad9fc46
Update Install.md
Adds steps to install zsh-autosuggestions via Homebrew Formulae.
2022-10-12 13:10:21 +05:30
japanese-goblinn
fc391d6bf6 fix: Makefile SRC_DIR spacing 2022-05-16 22:11:12 +03:00
Jakub Jirutka
7795a357e6
Install: Add Alpine Linux package 2022-03-15 22:52:50 +01:00
Robert Cegliński
56f10c3b5d Always reset file descriptor after consuming it
This prevents the request cancelling logic from closing an unrelated fd that happens to reuse the same number.
2021-09-17 00:15:07 +02:00
JeeBak Kim
8072e52d96 Run: make 2021-08-28 22:15:54 -07:00
JeeBak Kim
69bf058c23 Ensure we're using the builtin exec 2021-08-28 22:15:54 -07:00
Eric Freese
a411ef3e09
Merge pull request #613 from zsh-users/develop
v0.7.0
2021-06-04 16:05:04 -06:00
10 changed files with 54 additions and 23 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# zsh word code files
*.zwc

View File

@ -1,5 +1,12 @@
# Changelog
## v0.7.1
- Clear POSTDISPLAY instead of unsetting (#634)
- Always reset async file descriptor after consuming it (#630)
- Always use builtin `exec` (#628)
- Add `history-beginning-search-*-end` widgets to clear widget list (#619)
- Switch CI from Circle CI to GitHub Actions
## v0.7.0
- Enable asynchronous mode by default (#498)
- No longer wrap user widgets starting with `autosuggest-` prefix (#496)

View File

@ -3,19 +3,21 @@
* [Packages](#packages)
* [Antigen](#antigen)
* [Oh My Zsh](#oh-my-zsh)
* [HomeBrew](#homebrew)
* [Manual](#manual-git-clone)
## Packages
| System | Package |
| ------------- | ------------- |
| Alpine Linux | [zsh-autosuggestions](https://pkgs.alpinelinux.org/packages?name=zsh-autosuggestions) |
| Debian / Ubuntu | [zsh-autosuggestions OBS repository](https://software.opensuse.org/download.html?project=shells%3Azsh-users%3Azsh-autosuggestions&package=zsh-autosuggestions) |
| Fedora / CentOS / RHEL / Scientific Linux | [zsh-autosuggestions OBS repository](https://software.opensuse.org/download.html?project=shells%3Azsh-users%3Azsh-autosuggestions&package=zsh-autosuggestions) |
| OpenSUSE / SLE | [zsh-autosuggestions OBS repository](https://software.opensuse.org/download.html?project=shells%3Azsh-users%3Azsh-autosuggestions&package=zsh-autosuggestions) |
| Arch Linux / Manjaro / Antergos / Hyperbola | [zsh-autosuggestions](https://www.archlinux.org/packages/zsh-autosuggestions), [zsh-autosuggestions-git](https://aur.archlinux.org/packages/zsh-autosuggestions-git) |
| NixOS | [zsh-autosuggestions](https://github.com/NixOS/nixpkgs/blob/master/pkgs/shells/zsh/zsh-autosuggestions/default.nix) |
| NixOS | [zsh-autosuggestions](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/zs/zsh-autosuggestions/package.nix) |
| Void Linux | [zsh-autosuggestions](https://github.com/void-linux/void-packages/blob/master/srcpkgs/zsh-autosuggestions/template) |
| Mac OS | [homebrew](https://github.com/Homebrew/homebrew-core/blob/master/Formula/zsh-autosuggestions.rb) |
| Mac OS | [homebrew](https://github.com/Homebrew/homebrew-core/blob/master/Formula/z/zsh-autosuggestions.rb) |
| NetBSD | [pkgsrc](http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/shells/zsh-autosuggestions/README.html) |
## Antigen
@ -47,6 +49,21 @@
3. Start a new terminal session.
## Homebrew
1. Install command:
```sh
brew install zsh-autosuggestions
```
2. To activate the autosuggestions, add the following at the end of your .zshrc:
```sh
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
```
3. Start a new terminal session.
## Manual (Git Clone)
1. Clone this repository somewhere on your machine. This guide will assume `~/.zsh/zsh-autosuggestions`.

View File

@ -1,4 +1,4 @@
SRC_DIR := ./src
SRC_DIR := ./src
SRC_FILES := \
$(SRC_DIR)/config.zsh \

View File

@ -6,7 +6,6 @@ It suggests commands as you type based on history and completions.
Requirements: Zsh v4.3.11 or later
[![CircleCI](https://img.shields.io/circleci/build/github/zsh-users/zsh-autosuggestions.svg)](https://circleci.com/gh/zsh-users/zsh-autosuggestions)
[![Chat on Gitter](https://img.shields.io/gitter/room/zsh-users/zsh-autosuggestions.svg)](https://gitter.im/zsh-users/zsh-autosuggestions)
<a href="https://asciinema.org/a/37390" target="_blank"><img src="https://asciinema.org/a/37390.png" width="400" /></a>
@ -53,7 +52,7 @@ For more info, read the Character Highlighting section of the zsh manual: `man z
`ZSH_AUTOSUGGEST_STRATEGY` is an array that specifies how suggestions should be generated. The strategies in the array are tried successively until a suggestion is found. There are currently three built-in strategies to choose from:
- `history`: Chooses the most recent match from history.
- `completion`: Chooses a suggestion based on what tab-completion would suggest. (requires `zpty` module)
- `completion`: Chooses a suggestion based on what tab-completion would suggest. (requires `zpty` module, which is included with zsh since 4.0.1)
- `match_prev_cmd`: Like `history`, but chooses the most recent match whose preceding history item matches the most recently executed command ([more info](src/strategies/match_prev_cmd.zsh)). Note that this strategy won't work as expected with ZSH options that don't preserve the history order such as `HIST_IGNORE_ALL_DUPS` or `HIST_EXPIRE_DUPS_FIRST`.
For example, setting `ZSH_AUTOSUGGEST_STRATEGY=(history completion)` will first try to find a suggestion from your history, but, if it can't find a match, will find a suggestion from the completion engine.

View File

@ -1 +1 @@
v0.7.0
v0.7.1

View File

@ -11,7 +11,7 @@ _zsh_autosuggest_async_request() {
# If we've got a pending request, cancel it
if [[ -n "$_ZSH_AUTOSUGGEST_ASYNC_FD" ]] && { true <&$_ZSH_AUTOSUGGEST_ASYNC_FD } 2>/dev/null; then
# Close the file descriptor and remove the handler
exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&-
builtin exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&-
zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD
# We won't know the pid unless the user has zsh/system module installed
@ -32,7 +32,7 @@ _zsh_autosuggest_async_request() {
fi
# Fork a process to fetch a suggestion and open a pipe to read from it
exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <(
builtin exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <(
# Tell parent process our pid
echo $sysparams[pid]
@ -68,9 +68,10 @@ _zsh_autosuggest_async_response() {
zle autosuggest-suggest -- "$suggestion"
# Close the fd
exec {1}<&-
builtin exec {1}<&-
fi
# Always remove the handler
zle -F "$1"
_ZSH_AUTOSUGGEST_ASYNC_FD=
}

View File

@ -28,6 +28,8 @@ typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig-
history-search-backward
history-beginning-search-forward
history-beginning-search-backward
history-beginning-search-forward-end
history-beginning-search-backward-end
history-substring-search-up
history-substring-search-down
up-line-or-beginning-search

View File

@ -30,7 +30,7 @@ _zsh_autosuggest_toggle() {
# Clear the suggestion
_zsh_autosuggest_clear() {
# Remove the suggestion
unset POSTDISPLAY
POSTDISPLAY=
_zsh_autosuggest_invoke_original_widget $@
}
@ -47,7 +47,7 @@ _zsh_autosuggest_modify() {
local orig_postdisplay="$POSTDISPLAY"
# Clear suggestion while waiting for next one
unset POSTDISPLAY
POSTDISPLAY=
# Original widget may modify the buffer
_zsh_autosuggest_invoke_original_widget $@
@ -102,7 +102,7 @@ _zsh_autosuggest_suggest() {
if [[ -n "$suggestion" ]] && (( $#BUFFER )); then
POSTDISPLAY="${suggestion#$BUFFER}"
else
unset POSTDISPLAY
POSTDISPLAY=
fi
}
@ -128,7 +128,7 @@ _zsh_autosuggest_accept() {
BUFFER="$BUFFER$POSTDISPLAY"
# Remove the suggestion
unset POSTDISPLAY
POSTDISPLAY=
# Run the original widget before manually moving the cursor so that the
# cursor movement doesn't make the widget do something unexpected
@ -151,7 +151,7 @@ _zsh_autosuggest_execute() {
BUFFER="$BUFFER$POSTDISPLAY"
# Remove the suggestion
unset POSTDISPLAY
POSTDISPLAY=
# Call the original `accept-line` to handle syntax highlighting or
# other potential custom behavior

View File

@ -1,6 +1,6 @@
# Fish-like fast/unobtrusive autosuggestions for zsh.
# https://github.com/zsh-users/zsh-autosuggestions
# v0.7.0
# v0.7.1
# Copyright (c) 2013 Thiago de Arruda
# Copyright (c) 2016-2021 Eric Freese
#
@ -54,6 +54,8 @@ typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig-
history-search-backward
history-beginning-search-forward
history-beginning-search-backward
history-beginning-search-forward-end
history-beginning-search-backward-end
history-substring-search-up
history-substring-search-down
up-line-or-beginning-search
@ -292,7 +294,7 @@ _zsh_autosuggest_toggle() {
# Clear the suggestion
_zsh_autosuggest_clear() {
# Remove the suggestion
unset POSTDISPLAY
POSTDISPLAY=
_zsh_autosuggest_invoke_original_widget $@
}
@ -309,7 +311,7 @@ _zsh_autosuggest_modify() {
local orig_postdisplay="$POSTDISPLAY"
# Clear suggestion while waiting for next one
unset POSTDISPLAY
POSTDISPLAY=
# Original widget may modify the buffer
_zsh_autosuggest_invoke_original_widget $@
@ -364,7 +366,7 @@ _zsh_autosuggest_suggest() {
if [[ -n "$suggestion" ]] && (( $#BUFFER )); then
POSTDISPLAY="${suggestion#$BUFFER}"
else
unset POSTDISPLAY
POSTDISPLAY=
fi
}
@ -390,7 +392,7 @@ _zsh_autosuggest_accept() {
BUFFER="$BUFFER$POSTDISPLAY"
# Remove the suggestion
unset POSTDISPLAY
POSTDISPLAY=
# Run the original widget before manually moving the cursor so that the
# cursor movement doesn't make the widget do something unexpected
@ -413,7 +415,7 @@ _zsh_autosuggest_execute() {
BUFFER="$BUFFER$POSTDISPLAY"
# Remove the suggestion
unset POSTDISPLAY
POSTDISPLAY=
# Call the original `accept-line` to handle syntax highlighting or
# other potential custom behavior
@ -766,7 +768,7 @@ _zsh_autosuggest_async_request() {
# If we've got a pending request, cancel it
if [[ -n "$_ZSH_AUTOSUGGEST_ASYNC_FD" ]] && { true <&$_ZSH_AUTOSUGGEST_ASYNC_FD } 2>/dev/null; then
# Close the file descriptor and remove the handler
exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&-
builtin exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&-
zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD
# We won't know the pid unless the user has zsh/system module installed
@ -787,7 +789,7 @@ _zsh_autosuggest_async_request() {
fi
# Fork a process to fetch a suggestion and open a pipe to read from it
exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <(
builtin exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <(
# Tell parent process our pid
echo $sysparams[pid]
@ -823,11 +825,12 @@ _zsh_autosuggest_async_response() {
zle autosuggest-suggest -- "$suggestion"
# Close the fd
exec {1}<&-
builtin exec {1}<&-
fi
# Always remove the handler
zle -F "$1"
_ZSH_AUTOSUGGEST_ASYNC_FD=
}
#--------------------------------------------------------------------#