mirror of
				https://github.com/zsh-users/zsh-autosuggestions.git
				synced 2025-10-30 15:26:29 +08:00 
			
		
		
		
	Compare commits
	
		
			16 Commits
		
	
	
		
			f5c3fd7701
			...
			1f0bdd6be7
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 1f0bdd6be7 | ||
|   | e52ee8ca55 | ||
|   | f8907cf32b | ||
|   | a50468ef4b | ||
|   | 9aceef9646 | ||
|   | 11d17e7fea | ||
|   | a593f4dfec | ||
|   | 2c9e57fd50 | ||
|   | 23f2943455 | ||
|   | 9b0272944f | ||
|   | c5044edd48 | ||
|   | 2cc34c015e | ||
|   | 66aa318713 | ||
|   | 56f10c3b5d | ||
|   | 8072e52d96 | ||
|   | 69bf058c23 | 
| @ -1,15 +0,0 @@ | |||||||
| version: 2 |  | ||||||
| jobs: |  | ||||||
|   build: |  | ||||||
|     parallelism: 4 |  | ||||||
|     shell: /bin/bash --login |  | ||||||
|     docker: |  | ||||||
|     - image: ericfreese/zsh-autosuggestions-test:latest |  | ||||||
|     steps: |  | ||||||
|     - checkout |  | ||||||
|     - run: |  | ||||||
|         name: Running tests |  | ||||||
|         command: | |  | ||||||
|           for v in $(grep "^[^#]" ZSH_VERSIONS | awk "(NR + $CIRCLE_NODE_INDEX) % $CIRCLE_NODE_TOTAL == 0"); do |  | ||||||
|             TEST_ZSH_BIN=zsh-$v make test || exit 1 |  | ||||||
|           done |  | ||||||
							
								
								
									
										51
									
								
								.github/workflows/integration.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								.github/workflows/integration.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | on: [push, pull_request] | ||||||
|  | concurrency: | ||||||
|  |   group: ${{ github.workflow }}-${{ github.ref }} | ||||||
|  |   cancel-in-progress: true | ||||||
|  | env: | ||||||
|  |   IMAGE_CACHE_PATH: /tmp/.image-cache | ||||||
|  |   IMAGE_CACHE_NAME: zsh-autosuggestions-test | ||||||
|  | jobs: | ||||||
|  |   determine-versions: | ||||||
|  |     runs-on: ubuntu-22.04 | ||||||
|  |     outputs: | ||||||
|  |       versions: ${{ steps.set-versions.outputs.versions }} | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v3 | ||||||
|  |     - id: set-versions | ||||||
|  |       run: | | ||||||
|  |         echo "versions=$( | ||||||
|  |           grep "^[^#]" ZSH_VERSIONS \ | ||||||
|  |           | sed -E 's/(^|$)/"/g' \ | ||||||
|  |           | paste -sd ',' - \ | ||||||
|  |           | sed -e 's/^/[/' -e 's/$/]/' | ||||||
|  |         )" >> $GITHUB_OUTPUT | ||||||
|  |   test: | ||||||
|  |     needs: determine-versions | ||||||
|  |     runs-on: ubuntu-22.04 | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         version: ${{ fromJson(needs.determine-versions.outputs.versions) }} | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v3 | ||||||
|  |     - name: Docker image cache | ||||||
|  |       id: image-cache | ||||||
|  |       uses: actions/cache@v3 | ||||||
|  |       with: | ||||||
|  |         path: ${{ env.IMAGE_CACHE_PATH }} | ||||||
|  |         key: image-cache-${{ matrix.version }}-${{ hashFiles('Dockerfile', 'install_test_zsh.sh', 'Gemfile.lock') }} | ||||||
|  |     - name: Load cached docker image if available | ||||||
|  |       if: ${{ steps.image-cache.outputs.cache-hit }} | ||||||
|  |       run: gunzip < $IMAGE_CACHE_PATH/$IMAGE_CACHE_NAME.tar.gz | docker load | ||||||
|  |     - name: Build the docker image if necessary | ||||||
|  |       if: ${{ !steps.image-cache.outputs.cache-hit }} | ||||||
|  |       run: | | ||||||
|  |         docker build --build-arg TEST_ZSH_VERSION=${{ matrix.version }} -t $IMAGE_CACHE_NAME . | ||||||
|  |         mkdir -p $IMAGE_CACHE_PATH | ||||||
|  |         docker save $IMAGE_CACHE_NAME | gzip > $IMAGE_CACHE_PATH/$IMAGE_CACHE_NAME.tar.gz | ||||||
|  |     - name: Run the tests | ||||||
|  |       run: | | ||||||
|  |         docker run --rm \ | ||||||
|  |           -v $PWD:/zsh-autosuggestions \ | ||||||
|  |           $IMAGE_CACHE_NAME \ | ||||||
|  |           make test | ||||||
| @ -1,5 +1,12 @@ | |||||||
| # Changelog | # 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 | ## v0.7.0 | ||||||
| - Enable asynchronous mode by default (#498) | - Enable asynchronous mode by default (#498) | ||||||
| - No longer wrap user widgets starting with `autosuggest-` prefix (#496) | - No longer wrap user widgets starting with `autosuggest-` prefix (#496) | ||||||
|  | |||||||
| @ -1,5 +1,8 @@ | |||||||
| FROM ruby:2.5.3-alpine | FROM ruby:2.5.3-alpine | ||||||
| 
 | 
 | ||||||
|  | ARG TEST_ZSH_VERSION | ||||||
|  | RUN : "${TEST_ZSH_VERSION:?}" | ||||||
|  | 
 | ||||||
| RUN apk add --no-cache autoconf | RUN apk add --no-cache autoconf | ||||||
| RUN apk add --no-cache libtool | RUN apk add --no-cache libtool | ||||||
| RUN apk add --no-cache libcap-dev | RUN apk add --no-cache libcap-dev | ||||||
| @ -11,10 +14,8 @@ RUN apk add --no-cache tmux | |||||||
| 
 | 
 | ||||||
| WORKDIR /zsh-autosuggestions | WORKDIR /zsh-autosuggestions | ||||||
| 
 | 
 | ||||||
| ADD ZSH_VERSIONS /zsh-autosuggestions/ZSH_VERSIONS | ADD install_test_zsh.sh ./ | ||||||
| ADD install_test_zsh.sh /zsh-autosuggestions/install_test_zsh.sh |  | ||||||
| RUN ./install_test_zsh.sh | RUN ./install_test_zsh.sh | ||||||
| 
 | 
 | ||||||
| ADD Gemfile /zsh-autosuggestions/Gemfile | ADD Gemfile Gemfile.lock ./ | ||||||
| ADD Gemfile.lock /zsh-autosuggestions/Gemfile.lock |  | ||||||
| RUN bundle install | RUN bundle install | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
								
							| @ -6,7 +6,6 @@ It suggests commands as you type based on history and completions. | |||||||
| 
 | 
 | ||||||
| Requirements: Zsh v4.3.11 or later | Requirements: Zsh v4.3.11 or later | ||||||
| 
 | 
 | ||||||
| [](https://circleci.com/gh/zsh-users/zsh-autosuggestions) |  | ||||||
| [](https://gitter.im/zsh-users/zsh-autosuggestions) | [](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> | <a href="https://asciinema.org/a/37390" target="_blank"><img src="https://asciinema.org/a/37390.png" width="400" /></a> | ||||||
| @ -170,18 +169,16 @@ Tests are written in ruby using the [`rspec`](http://rspec.info/) framework. The | |||||||
| 
 | 
 | ||||||
| Test files live in `spec/`. To run the tests, run `make test`. To run a specific test, run `TESTS=spec/some_spec.rb make test`. You can also specify a `zsh` binary to use by setting the `TEST_ZSH_BIN` environment variable (ex: `TEST_ZSH_BIN=/bin/zsh make test`). | Test files live in `spec/`. To run the tests, run `make test`. To run a specific test, run `TESTS=spec/some_spec.rb make test`. You can also specify a `zsh` binary to use by setting the `TEST_ZSH_BIN` environment variable (ex: `TEST_ZSH_BIN=/bin/zsh make test`). | ||||||
| 
 | 
 | ||||||
| A docker image for testing is available [on docker hub](https://hub.docker.com/r/ericfreese/zsh-autosuggestions-test). It comes with ruby, the bundler dependencies, and all supported versions of zsh installed. | It's possible to run the tests for any supported version of zsh in a Docker image by building an image from the provided Dockerfile. To build the docker image for a specific version of zsh (where `<version>` below is substituted with the contents of a line from the [`ZSH_VERSIONS`](ZSH_VERSIONS) file), run: | ||||||
| 
 |  | ||||||
| Pull the docker image with: |  | ||||||
| 
 | 
 | ||||||
| ```sh | ```sh | ||||||
| docker pull ericfreese/zsh-autosuggestions-test | docker build --build-arg TEST_ZSH_VERSION=<version> -t zsh-autosuggestions-test . | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| To run the tests for a specific version of zsh (where `<version>` below is substituted with the contents of a line from the [`ZSH_VERSIONS`](ZSH_VERSIONS) file): | After building the image, run the tests via: | ||||||
| 
 | 
 | ||||||
| ```sh | ```sh | ||||||
| docker run -it -e TEST_ZSH_BIN=zsh-<version> -v $PWD:/zsh-autosuggestions zsh-autosuggestions-test make test | docker run -it -v $PWD:/zsh-autosuggestions zsh-autosuggestions-test make test | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,9 +1,5 @@ | |||||||
| # Zsh releases to run tests against | # Zsh releases to run tests against | ||||||
| # See https://github.com/zsh-users/zsh/releases | # See https://github.com/zsh-users/zsh/releases | ||||||
| # |  | ||||||
| # When modifying this file, rebuild and push docker image: |  | ||||||
| #   $ docker build -t ericfreese/zsh-autosuggestions-test . |  | ||||||
| #   $ docker push ericfreese/zsh-autosuggestions-test |  | ||||||
| 4.3.11 | 4.3.11 | ||||||
| 5.0.2 | 5.0.2 | ||||||
| 5.0.8 | 5.0.8 | ||||||
| @ -14,4 +10,5 @@ | |||||||
| 5.5.1 | 5.5.1 | ||||||
| 5.6.2 | 5.6.2 | ||||||
| 5.7.1 | 5.7.1 | ||||||
| 5.8 | 5.8.1 | ||||||
|  | 5.9 | ||||||
|  | |||||||
| @ -2,19 +2,17 @@ | |||||||
| 
 | 
 | ||||||
| set -ex | set -ex | ||||||
| 
 | 
 | ||||||
| for v in $(grep "^[^#]" ZSH_VERSIONS); do | mkdir zsh-build | ||||||
|   mkdir zsh-$v | cd zsh-build | ||||||
|   cd zsh-$v |  | ||||||
| 
 | 
 | ||||||
|   curl -L https://api.github.com/repos/zsh-users/zsh/tarball/zsh-$v | tar xz --strip=1 | curl -L https://api.github.com/repos/zsh-users/zsh/tarball/zsh-$TEST_ZSH_VERSION | tar xz --strip=1 | ||||||
| 
 | 
 | ||||||
| ./Util/preconfig | ./Util/preconfig | ||||||
| ./configure --enable-pcre \ | ./configure --enable-pcre \ | ||||||
|             --enable-cap \ |             --enable-cap \ | ||||||
|             --enable-multibyte \ |             --enable-multibyte \ | ||||||
|             --with-term-lib='ncursesw tinfo' \ |             --with-term-lib='ncursesw tinfo' \ | ||||||
|               --with-tcsetpgrp \ |             --with-tcsetpgrp | ||||||
|               --program-suffix="-$v" |  | ||||||
| 
 | 
 | ||||||
| make install.bin | make install.bin | ||||||
| make install.modules | make install.modules | ||||||
| @ -22,5 +20,4 @@ for v in $(grep "^[^#]" ZSH_VERSIONS); do | |||||||
| 
 | 
 | ||||||
| cd .. | cd .. | ||||||
| 
 | 
 | ||||||
|   rm -rf zsh-$v | rm -rf zsh-build | ||||||
| done |  | ||||||
|  | |||||||
| @ -11,7 +11,7 @@ _zsh_autosuggest_async_request() { | |||||||
| 	# If we've got a pending request, cancel it | 	# If we've got a pending request, cancel it | ||||||
| 	if [[ -n "$_ZSH_AUTOSUGGEST_ASYNC_FD" ]] && { true <&$_ZSH_AUTOSUGGEST_ASYNC_FD } 2>/dev/null; then | 	if [[ -n "$_ZSH_AUTOSUGGEST_ASYNC_FD" ]] && { true <&$_ZSH_AUTOSUGGEST_ASYNC_FD } 2>/dev/null; then | ||||||
| 		# Close the file descriptor and remove the handler | 		# 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 | 		zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD | ||||||
| 
 | 
 | ||||||
| 		# We won't know the pid unless the user has zsh/system module installed | 		# We won't know the pid unless the user has zsh/system module installed | ||||||
| @ -32,7 +32,7 @@ _zsh_autosuggest_async_request() { | |||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
| 	# Fork a process to fetch a suggestion and open a pipe to read from it | 	# 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 | 		# Tell parent process our pid | ||||||
| 		echo $sysparams[pid] | 		echo $sysparams[pid] | ||||||
| 
 | 
 | ||||||
| @ -68,9 +68,10 @@ _zsh_autosuggest_async_response() { | |||||||
| 		zle autosuggest-suggest -- "$suggestion" | 		zle autosuggest-suggest -- "$suggestion" | ||||||
| 
 | 
 | ||||||
| 		# Close the fd | 		# Close the fd | ||||||
| 		exec {1}<&- | 		builtin exec {1}<&- | ||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
| 	# Always remove the handler | 	# Always remove the handler | ||||||
| 	zle -F "$1" | 	zle -F "$1" | ||||||
|  | 	_ZSH_AUTOSUGGEST_ASYNC_FD= | ||||||
| } | } | ||||||
|  | |||||||
| @ -28,6 +28,8 @@ typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig- | |||||||
| 		history-search-backward | 		history-search-backward | ||||||
| 		history-beginning-search-forward | 		history-beginning-search-forward | ||||||
| 		history-beginning-search-backward | 		history-beginning-search-backward | ||||||
|  | 		history-beginning-search-forward-end | ||||||
|  | 		history-beginning-search-backward-end | ||||||
| 		history-substring-search-up | 		history-substring-search-up | ||||||
| 		history-substring-search-down | 		history-substring-search-down | ||||||
| 		up-line-or-beginning-search | 		up-line-or-beginning-search | ||||||
|  | |||||||
| @ -30,7 +30,7 @@ _zsh_autosuggest_toggle() { | |||||||
| # Clear the suggestion | # Clear the suggestion | ||||||
| _zsh_autosuggest_clear() { | _zsh_autosuggest_clear() { | ||||||
| 	# Remove the suggestion | 	# Remove the suggestion | ||||||
| 	unset POSTDISPLAY | 	POSTDISPLAY= | ||||||
| 
 | 
 | ||||||
| 	_zsh_autosuggest_invoke_original_widget $@ | 	_zsh_autosuggest_invoke_original_widget $@ | ||||||
| } | } | ||||||
| @ -47,7 +47,7 @@ _zsh_autosuggest_modify() { | |||||||
| 	local orig_postdisplay="$POSTDISPLAY" | 	local orig_postdisplay="$POSTDISPLAY" | ||||||
| 
 | 
 | ||||||
| 	# Clear suggestion while waiting for next one | 	# Clear suggestion while waiting for next one | ||||||
| 	unset POSTDISPLAY | 	POSTDISPLAY= | ||||||
| 
 | 
 | ||||||
| 	# Original widget may modify the buffer | 	# Original widget may modify the buffer | ||||||
| 	_zsh_autosuggest_invoke_original_widget $@ | 	_zsh_autosuggest_invoke_original_widget $@ | ||||||
| @ -102,7 +102,7 @@ _zsh_autosuggest_suggest() { | |||||||
| 	if [[ -n "$suggestion" ]] && (( $#BUFFER )); then | 	if [[ -n "$suggestion" ]] && (( $#BUFFER )); then | ||||||
| 		POSTDISPLAY="${suggestion#$BUFFER}" | 		POSTDISPLAY="${suggestion#$BUFFER}" | ||||||
| 	else | 	else | ||||||
| 		unset POSTDISPLAY | 		POSTDISPLAY= | ||||||
| 	fi | 	fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -128,7 +128,7 @@ _zsh_autosuggest_accept() { | |||||||
| 	BUFFER="$BUFFER$POSTDISPLAY" | 	BUFFER="$BUFFER$POSTDISPLAY" | ||||||
| 
 | 
 | ||||||
| 	# Remove the suggestion | 	# Remove the suggestion | ||||||
| 	unset POSTDISPLAY | 	POSTDISPLAY= | ||||||
| 
 | 
 | ||||||
| 	# Run the original widget before manually moving the cursor so that the | 	# Run the original widget before manually moving the cursor so that the | ||||||
| 	# cursor movement doesn't make the widget do something unexpected | 	# cursor movement doesn't make the widget do something unexpected | ||||||
| @ -151,7 +151,7 @@ _zsh_autosuggest_execute() { | |||||||
| 	BUFFER="$BUFFER$POSTDISPLAY" | 	BUFFER="$BUFFER$POSTDISPLAY" | ||||||
| 
 | 
 | ||||||
| 	# Remove the suggestion | 	# Remove the suggestion | ||||||
| 	unset POSTDISPLAY | 	POSTDISPLAY= | ||||||
| 
 | 
 | ||||||
| 	# Call the original `accept-line` to handle syntax highlighting or | 	# Call the original `accept-line` to handle syntax highlighting or | ||||||
| 	# other potential custom behavior | 	# other potential custom behavior | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| # Fish-like fast/unobtrusive autosuggestions for zsh. | # Fish-like fast/unobtrusive autosuggestions for zsh. | ||||||
| # https://github.com/zsh-users/zsh-autosuggestions | # https://github.com/zsh-users/zsh-autosuggestions | ||||||
| # v0.7.0 | # v0.7.1 | ||||||
| # Copyright (c) 2013 Thiago de Arruda | # Copyright (c) 2013 Thiago de Arruda | ||||||
| # Copyright (c) 2016-2021 Eric Freese | # Copyright (c) 2016-2021 Eric Freese | ||||||
| #  | #  | ||||||
| @ -54,6 +54,8 @@ typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig- | |||||||
| 		history-search-backward | 		history-search-backward | ||||||
| 		history-beginning-search-forward | 		history-beginning-search-forward | ||||||
| 		history-beginning-search-backward | 		history-beginning-search-backward | ||||||
|  | 		history-beginning-search-forward-end | ||||||
|  | 		history-beginning-search-backward-end | ||||||
| 		history-substring-search-up | 		history-substring-search-up | ||||||
| 		history-substring-search-down | 		history-substring-search-down | ||||||
| 		up-line-or-beginning-search | 		up-line-or-beginning-search | ||||||
| @ -186,7 +188,7 @@ _zsh_autosuggest_bind_widget() { | |||||||
| 	}" | 	}" | ||||||
| 
 | 
 | ||||||
| 	# Create the bound widget | 	# Create the bound widget | ||||||
| 	zle -N -- $widget _zsh_autosuggest_bound_${bind_count}_$widget | 	[[ $widget == .* ]] || zle -N -- $widget _zsh_autosuggest_bound_${bind_count}_$widget | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # Map all configured widgets to the right autosuggest widgets | # Map all configured widgets to the right autosuggest widgets | ||||||
| @ -292,7 +294,7 @@ _zsh_autosuggest_toggle() { | |||||||
| # Clear the suggestion | # Clear the suggestion | ||||||
| _zsh_autosuggest_clear() { | _zsh_autosuggest_clear() { | ||||||
| 	# Remove the suggestion | 	# Remove the suggestion | ||||||
| 	unset POSTDISPLAY | 	POSTDISPLAY= | ||||||
| 
 | 
 | ||||||
| 	_zsh_autosuggest_invoke_original_widget $@ | 	_zsh_autosuggest_invoke_original_widget $@ | ||||||
| } | } | ||||||
| @ -309,7 +311,7 @@ _zsh_autosuggest_modify() { | |||||||
| 	local orig_postdisplay="$POSTDISPLAY" | 	local orig_postdisplay="$POSTDISPLAY" | ||||||
| 
 | 
 | ||||||
| 	# Clear suggestion while waiting for next one | 	# Clear suggestion while waiting for next one | ||||||
| 	unset POSTDISPLAY | 	POSTDISPLAY= | ||||||
| 
 | 
 | ||||||
| 	# Original widget may modify the buffer | 	# Original widget may modify the buffer | ||||||
| 	_zsh_autosuggest_invoke_original_widget $@ | 	_zsh_autosuggest_invoke_original_widget $@ | ||||||
| @ -364,7 +366,7 @@ _zsh_autosuggest_suggest() { | |||||||
| 	if [[ -n "$suggestion" ]] && (( $#BUFFER )); then | 	if [[ -n "$suggestion" ]] && (( $#BUFFER )); then | ||||||
| 		POSTDISPLAY="${suggestion#$BUFFER}" | 		POSTDISPLAY="${suggestion#$BUFFER}" | ||||||
| 	else | 	else | ||||||
| 		unset POSTDISPLAY | 		POSTDISPLAY= | ||||||
| 	fi | 	fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -390,7 +392,7 @@ _zsh_autosuggest_accept() { | |||||||
| 	BUFFER="$BUFFER$POSTDISPLAY" | 	BUFFER="$BUFFER$POSTDISPLAY" | ||||||
| 
 | 
 | ||||||
| 	# Remove the suggestion | 	# Remove the suggestion | ||||||
| 	unset POSTDISPLAY | 	POSTDISPLAY= | ||||||
| 
 | 
 | ||||||
| 	# Run the original widget before manually moving the cursor so that the | 	# Run the original widget before manually moving the cursor so that the | ||||||
| 	# cursor movement doesn't make the widget do something unexpected | 	# cursor movement doesn't make the widget do something unexpected | ||||||
| @ -413,7 +415,7 @@ _zsh_autosuggest_execute() { | |||||||
| 	BUFFER="$BUFFER$POSTDISPLAY" | 	BUFFER="$BUFFER$POSTDISPLAY" | ||||||
| 
 | 
 | ||||||
| 	# Remove the suggestion | 	# Remove the suggestion | ||||||
| 	unset POSTDISPLAY | 	POSTDISPLAY= | ||||||
| 
 | 
 | ||||||
| 	# Call the original `accept-line` to handle syntax highlighting or | 	# Call the original `accept-line` to handle syntax highlighting or | ||||||
| 	# other potential custom behavior | 	# other potential custom behavior | ||||||
| @ -766,7 +768,7 @@ _zsh_autosuggest_async_request() { | |||||||
| 	# If we've got a pending request, cancel it | 	# If we've got a pending request, cancel it | ||||||
| 	if [[ -n "$_ZSH_AUTOSUGGEST_ASYNC_FD" ]] && { true <&$_ZSH_AUTOSUGGEST_ASYNC_FD } 2>/dev/null; then | 	if [[ -n "$_ZSH_AUTOSUGGEST_ASYNC_FD" ]] && { true <&$_ZSH_AUTOSUGGEST_ASYNC_FD } 2>/dev/null; then | ||||||
| 		# Close the file descriptor and remove the handler | 		# 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 | 		zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD | ||||||
| 
 | 
 | ||||||
| 		# We won't know the pid unless the user has zsh/system module installed | 		# We won't know the pid unless the user has zsh/system module installed | ||||||
| @ -787,7 +789,7 @@ _zsh_autosuggest_async_request() { | |||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
| 	# Fork a process to fetch a suggestion and open a pipe to read from it | 	# 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 | 		# Tell parent process our pid | ||||||
| 		echo $sysparams[pid] | 		echo $sysparams[pid] | ||||||
| 
 | 
 | ||||||
| @ -823,11 +825,12 @@ _zsh_autosuggest_async_response() { | |||||||
| 		zle autosuggest-suggest -- "$suggestion" | 		zle autosuggest-suggest -- "$suggestion" | ||||||
| 
 | 
 | ||||||
| 		# Close the fd | 		# Close the fd | ||||||
| 		exec {1}<&- | 		builtin exec {1}<&- | ||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
| 	# Always remove the handler | 	# Always remove the handler | ||||||
| 	zle -F "$1" | 	zle -F "$1" | ||||||
|  | 	_ZSH_AUTOSUGGEST_ASYNC_FD= | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #--------------------------------------------------------------------# | #--------------------------------------------------------------------# | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user