From 6686861b86e58f0c64632eb1c68ed18fd4344f3f Mon Sep 17 00:00:00 2001 From: tomit4 Date: Wed, 3 Dec 2025 02:44:11 -0800 Subject: [PATCH] :wrench: Massive update to personal gentoo configs --- gentoo/dotfiles/.aliases | 418 + gentoo/dotfiles/.bash_login | 4 + gentoo/dotfiles/.bash_profile | 30 + gentoo/dotfiles/.bashrc | 235 + gentoo/dotfiles/.xinitrc | 92 + gentoo/dotfiles/.zprofile | 14 + .../.github/ISSUE_TEMPLATE/bug-report.md | 48 + .../.github/ISSUE_TEMPLATE/config.yml | 1 + .../.github/ISSUE_TEMPLATE/feature_request.md | 32 + .../.github/workflows/lock.yml | 20 + .../.github/workflows/test.yml | 25 + .../.zsh/zsh-autocomplete/.gitmodules | 3 + .../zsh-autocomplete/.img/alias-expansion.png | Bin 0 -> 72230 bytes .../zsh-autocomplete/.img/file-search.gif | Bin 0 -> 583016 bytes .../zsh-autocomplete/.img/history-lines.png | Bin 0 -> 76741 bytes .../zsh-autocomplete/.img/history-menu.png | Bin 0 -> 188881 bytes .../zsh-autocomplete/.img/history-search.gif | Bin 0 -> 346952 bytes .../zsh-autocomplete/.img/multi-select.png | Bin 0 -> 185032 bytes .../zsh-autocomplete/.img/recent-dirs.png | Bin 0 -> 80919 bytes .../.zsh/zsh-autocomplete/.img/requoted.png | Bin 0 -> 72674 bytes .../zsh-autocomplete/.img/unambiguous.png | Bin 0 -> 119840 bytes .../Completions/_autocomplete__command | 6 + .../_autocomplete__compadd_opts_len | 10 + .../Completions/_autocomplete__history_lines | 156 + .../Completions/_autocomplete__recent_paths | 35 + .../_autocomplete__should_insert_unambiguous | 9 + .../Completions/_autocomplete__unambiguous | 45 + .../Functions/Init/.autocomplete__async | 679 ++ .../Functions/Init/.autocomplete__compinit | 181 + .../Functions/Init/.autocomplete__config | 159 + .../Init/.autocomplete__key-bindings | 64 + .../Functions/Init/.autocomplete__main | 94 + .../Functions/Init/.autocomplete__recent-dirs | 40 + .../Functions/Init/.autocomplete__widgets | 46 + .../Functions/Util/.autocomplete__patch | 8 + .../Functions/Util/.autocomplete__zle-flags | 27 + ...complete__complete-word__completion-widget | 25 + .../.autocomplete__complete-word__post | 65 + ...ocomplete__down-line-or-select__zle-widget | 7 + ...omplete__history-search__completion-widget | 22 + ...utocomplete__up-line-or-search__zle-widget | 7 + gentoo/dotfiles/.zsh/zsh-autocomplete/LICENSE | 19 + .../dotfiles/.zsh/zsh-autocomplete/README.md | 347 + .../.zsh/zsh-autocomplete/Tests/__init__.zsh | 4 + .../Tests/complete-word.post.md | 106 + .../.zsh/zsh-autocomplete/run-tests.zsh | 10 + .../zsh-autocomplete.plugin.zsh | 21 + .../.zsh/zsh-autosuggestions/.editorconfig | 18 + .../.github/ISSUE_TEMPLATE/bug-report.md | 36 + .../.github/ISSUE_TEMPLATE/feature_request.md | 20 + .../.github/workflows/integration.yml | 51 + .../dotfiles/.zsh/zsh-autosuggestions/.rspec | 3 + .../.zsh/zsh-autosuggestions/.rubocop.yml | 30 + .../.zsh/zsh-autosuggestions/.ruby-version | 1 + .../.zsh/zsh-autosuggestions/CHANGELOG.md | 124 + .../.zsh/zsh-autosuggestions/DESCRIPTION | 1 + .../.zsh/zsh-autosuggestions/Dockerfile | 21 + .../dotfiles/.zsh/zsh-autosuggestions/Gemfile | 5 + .../.zsh/zsh-autosuggestions/Gemfile.lock | 41 + .../.zsh/zsh-autosuggestions/INSTALL.md | 82 + .../dotfiles/.zsh/zsh-autosuggestions/LICENSE | 23 + .../.zsh/zsh-autosuggestions/Makefile | 35 + .../.zsh/zsh-autosuggestions/README.md | 188 + gentoo/dotfiles/.zsh/zsh-autosuggestions/URL | 1 + .../dotfiles/.zsh/zsh-autosuggestions/VERSION | 1 + .../.zsh/zsh-autosuggestions/ZSH_VERSIONS | 14 + .../zsh-autosuggestions/install_test_zsh.sh | 23 + .../zsh-autosuggestions/spec/async_spec.rb | 70 + .../spec/integrations/auto_cd_spec.rb | 14 + .../bracketed_paste_magic_spec.rb | 43 + .../spec/integrations/client_zpty_spec.rb | 14 + .../spec/integrations/glob_subst_spec.rb | 12 + .../spec/integrations/rebound_bracket_spec.rb | 13 + .../spec/integrations/vi_mode_spec.rb | 80 + .../spec/integrations/wrapped_widget_spec.rb | 39 + .../spec/integrations/zle_input_stack_spec.rb | 24 + .../spec/kill_ring_spec.rb | 23 + .../spec/line_init_spec.rb | 17 + .../spec/multi_line_spec.rb | 8 + .../spec/options/buffer_max_size_spec.rb | 30 + .../spec/options/highlight_style_spec.rb | 7 + .../options/original_widget_prefix_spec.rb | 7 + .../spec/options/strategy_spec.rb | 55 + .../spec/options/widget_lists_spec.rb | 121 + .../zsh-autosuggestions/spec/spec_helper.rb | 54 + .../spec/strategies/completion_spec.rb | 72 + .../spec/strategies/history_spec.rb | 23 + .../spec/strategies/match_prev_cmd_spec.rb | 34 + .../strategies/special_characters_helper.rb | 75 + .../spec/terminal_session.rb | 99 + .../spec/widgets/disable_spec.rb | 19 + .../spec/widgets/enable_spec.rb | 42 + .../spec/widgets/fetch_spec.rb | 24 + .../spec/widgets/toggle_spec.rb | 26 + .../.zsh/zsh-autosuggestions/src/async.zsh | 77 + .../.zsh/zsh-autosuggestions/src/bind.zsh | 106 + .../.zsh/zsh-autosuggestions/src/config.zsh | 95 + .../.zsh/zsh-autosuggestions/src/fetch.zsh | 27 + .../zsh-autosuggestions/src/highlight.zsh | 26 + .../.zsh/zsh-autosuggestions/src/start.zsh | 33 + .../src/strategies/completion.zsh | 137 + .../src/strategies/history.zsh | 32 + .../src/strategies/match_prev_cmd.zsh | 66 + .../.zsh/zsh-autosuggestions/src/util.zsh | 11 + .../.zsh/zsh-autosuggestions/src/widgets.zsh | 231 + .../zsh-autosuggestions.plugin.zsh | 1 + .../zsh-autosuggestions.zsh | 867 ++ .../zsh-syntax-highlighting/.editorconfig | 15 + .../zsh-syntax-highlighting/.gitattributes | 1 + .../.github/workflows/test.yml | 75 + .../zsh-syntax-highlighting/.revision-hash | 1 + .../.zsh/zsh-syntax-highlighting/.version | 1 + .../.zsh/zsh-syntax-highlighting/COPYING.md | 23 + .../.zsh/zsh-syntax-highlighting/HACKING.md | 99 + .../.zsh/zsh-syntax-highlighting/INSTALL.md | 169 + .../.zsh/zsh-syntax-highlighting/Makefile | 64 + .../.zsh/zsh-syntax-highlighting/README.md | 97 + .../.zsh/zsh-syntax-highlighting/changelog.md | 920 ++ .../docs/highlighters.md | 132 + .../docs/highlighters/brackets.md | 31 + .../docs/highlighters/cursor.md | 24 + .../docs/highlighters/line.md | 24 + .../docs/highlighters/main.md | 121 + .../docs/highlighters/pattern.md | 24 + .../docs/highlighters/regexp.md | 65 + .../docs/highlighters/root.md | 25 + .../highlighters/README.md | 8 + .../highlighters/brackets/README.md | 1 + .../brackets/brackets-highlighter.zsh | 107 + .../cursor-matchingbracket-line-finish.zsh | 36 + .../test-data/cursor-matchingbracket.zsh | 47 + .../brackets/test-data/empty-styles.zsh | 33 + .../brackets/test-data/loop-styles.zsh | 53 + .../test-data/mismatch-patentheses.zsh | 42 + .../brackets/test-data/near-quotes.zsh | 42 + .../brackets/test-data/nested-parentheses.zsh | 45 + .../brackets/test-data/only-error.zsh | 34 + .../brackets/test-data/quoted-patentheses.zsh | 34 + .../brackets/test-data/simple-parentheses.zsh | 42 + .../test-data/unclosed-patentheses.zsh | 41 + .../test-data/unclosed-patentheses2.zsh | 40 + .../highlighters/cursor/README.md | 1 + .../cursor/cursor-highlighter.zsh | 47 + .../highlighters/line/README.md | 1 + .../highlighters/line/line-highlighter.zsh | 44 + .../highlighters/main/README.md | 1 + .../highlighters/main/main-highlighter.zsh | 1846 ++++ .../abspath-in-command-position1.zsh | 35 + .../abspath-in-command-position1b.zsh | 36 + .../abspath-in-command-position2.zsh | 35 + .../abspath-in-command-position3.zsh | 37 + .../abspath-in-command-position3b.zsh | 38 + .../abspath-in-command-position4.zsh | 35 + .../abspath-in-command-position5.zsh | 35 + .../main/test-data/alias-assignment1.zsh | 38 + .../main/test-data/alias-basic.zsh | 35 + .../main/test-data/alias-brackets.zsh | 41 + .../test-data/alias-command-substitution.zsh | 37 + .../main/test-data/alias-comment1.zsh | 37 + .../main/test-data/alias-comment2.zsh | 37 + .../main/test-data/alias-complex.zsh | 38 + .../main/test-data/alias-empty.zsh | 38 + .../main/test-data/alias-eponymous1.zsh | 36 + .../main/test-data/alias-eponymous2.zsh | 36 + .../main/test-data/alias-in-cmdsubst.zsh | 43 + .../main/test-data/alias-loop.zsh | 44 + .../main/test-data/alias-loop2.zsh | 35 + .../test-data/alias-nested-precommand.zsh | 43 + .../main/test-data/alias-nested.zsh | 40 + .../main/test-data/alias-parameter.zsh | 38 + .../alias-precommand-option-argument1.zsh | 42 + .../alias-precommand-option-argument2.zsh | 42 + .../alias-precommand-option-argument3.zsh | 42 + .../alias-precommand-option-argument4.zsh | 42 + .../main/test-data/alias-quoted.zsh | 39 + .../main/test-data/alias-redirect.zsh | 38 + .../main/test-data/alias-reuse1.zsh | 39 + .../main/test-data/alias-reuse2.zsh | 39 + .../main/test-data/alias-reuse3.zsh | 39 + .../main/test-data/alias-reuse4.zsh | 42 + .../main/test-data/alias-reuse5.zsh | 43 + .../main/test-data/alias-self.zsh | 38 + .../main/test-data/alias-self2.zsh | 37 + .../main/test-data/alias-to-dir.zsh | 36 + .../main/test-data/alias-to-dir1b.zsh | 37 + .../main/test-data/alias-unknown-token1.zsh | 37 + .../main/test-data/alias-unknown-token2.zsh | 37 + .../highlighters/main/test-data/alias.zsh | 53 + .../highlighters/main/test-data/always1.zsh | 41 + .../highlighters/main/test-data/always2.zsh | 43 + .../highlighters/main/test-data/always3.zsh | 43 + .../main/test-data/anonymous-function.zsh | 44 + .../main/test-data/arg0-colon.zsh | 35 + .../main/test-data/arith-cmdsubst-mess.zsh | 46 + .../highlighters/main/test-data/arith1.zsh | 37 + .../highlighters/main/test-data/arith2.zsh | 38 + .../arithmetic-command-substitution.zsh | 42 + .../test-data/arithmetic-doubled-parens.zsh | 37 + .../main/test-data/arithmetic-empty.zsh | 39 + .../main/test-data/arithmetic-evaluation.zsh | 40 + .../main/test-data/arithmetic-hist-expn.zsh | 38 + .../test-data/arithmetic-invalid-chars.zsh | 39 + .../test-data/arithmetic-multiplication.zsh | 39 + .../main/test-data/arithmetic-nested.zsh | 38 + .../main/test-data/arithmetic-quoted.zsh | 38 + .../main/test-data/arithmetic-unclosed.zsh | 37 + .../main/test-data/arithmetic-unfinished.zsh | 41 + .../main/test-data/array-cmdsep1.zsh | 45 + .../main/test-data/array-cmdsep2.zsh | 41 + .../main/test-data/array-cmdsep3.zsh | 41 + .../main/test-data/assign-append.zsh | 39 + .../main/test-data/assign-argv.zsh | 38 + .../main/test-data/assign-array.zsh | 41 + .../main/test-data/assign-array2.zsh | 40 + .../main/test-data/assign-array3.zsh | 41 + .../main/test-data/assign-invalid-command.zsh | 37 + .../main/test-data/assign-not-array.zsh | 36 + .../main/test-data/assign-not-array2.zsh | 36 + .../main/test-data/assign-quoted-cmdsubst.zsh | 45 + .../main/test-data/assign-semicolon.zsh | 39 + .../main/test-data/assign-subshell.zsh | 37 + .../main/test-data/assign-value-quote1.zsh | 37 + .../main/test-data/assign-value-quote2.zsh | 37 + .../highlighters/main/test-data/assign.zsh | 42 + .../test-data/assignment-before-resword1.zsh | 40 + .../test-data/assignment-before-resword2.zsh | 40 + .../test-data/assignment-before-resword3.zsh | 37 + .../test-data/assignment-before-resword4.zsh | 40 + .../test-data/assignment-before-resword5.zsh | 38 + .../main/test-data/assignment-quoted.zsh | 37 + .../main/test-data/back-quoted-argument.zsh | 58 + .../main/test-data/back-quoted-open.zsh | 41 + .../main/test-data/backslash-continuation.zsh | 35 + .../test-data/backslash-continuation2.zsh | 37 + .../main/test-data/backslash-space.zsh | 39 + .../highlighters/main/test-data/backslash.zsh | 34 + .../main/test-data/bang-assign-array.zsh | 42 + .../main/test-data/bang-assign-scalar.zsh | 38 + .../main/test-data/bang-pipeline.zsh | 39 + .../test-data/block-assignment-no-command.zsh | 38 + .../highlighters/main/test-data/braces1.zsh | 41 + .../highlighters/main/test-data/braces2.zsh | 41 + .../main/test-data/brackets-matching1.zsh | 38 + .../main/test-data/brackets-matching2.zsh | 38 + .../main/test-data/brackets-mismatch1.zsh | 39 + .../brackets-mismatch10-if-negative.zsh | 42 + .../main/test-data/brackets-mismatch2.zsh | 39 + .../main/test-data/brackets-mismatch3.zsh | 36 + .../main/test-data/brackets-mismatch4.zsh | 36 + .../main/test-data/brackets-mismatch5.zsh | 37 + .../main/test-data/brackets-mismatch6.zsh | 40 + .../main/test-data/brackets-mismatch7.zsh | 45 + .../brackets-mismatch8-if-positive.zsh | 53 + .../main/test-data/brackets-mismatch8.zsh | 38 + .../brackets-mismatch9-if-positive.zsh | 42 + .../brackets-premature-termination.zsh | 40 + .../main/test-data/cdpath-abspath.zsh | 38 + .../main/test-data/cmdpos-elision-partial.zsh | 44 + .../command-substitution-adjacent.zsh | 45 + .../command-substitution-in-assignment.zsh | 42 + .../command-substitution-unclosed.zsh | 45 + .../main/test-data/commandseparator.zsh | 38 + .../main/test-data/comment-followed.zsh | 39 + .../main/test-data/comment-leading.zsh | 36 + .../main/test-data/comment-off.zsh | 38 + .../highlighters/main/test-data/comments.zsh | 39 + .../main/test-data/commmand-parameter.zsh | 45 + .../main/test-data/control-flow.zsh | 57 + .../main/test-data/control-flow2.zsh | 40 + .../main/test-data/control-flow3.zsh | 39 + .../highlighters/main/test-data/cthulhu.zsh | 70 + .../highlighters/main/test-data/dinbrack1.zsh | 41 + .../main/test-data/dirs_blacklist.zsh | 40 + .../main/test-data/dollar-dollar.zsh | 39 + .../main/test-data/dollar-noise.zsh | 42 + .../main/test-data/dollar-paren.zsh | 49 + .../main/test-data/dollar-quoted.zsh | 38 + .../main/test-data/dollar-quoted2.zsh | 39 + .../main/test-data/dollar-quoted3.zsh | 39 + .../main/test-data/double-hyphen-option.zsh | 35 + .../main/test-data/double-quoted.zsh | 42 + .../main/test-data/double-quoted2.zsh | 39 + .../main/test-data/double-quoted3.zsh | 42 + .../main/test-data/double-quoted4.zsh | 37 + .../main/test-data/empty-command-newline.zsh | 39 + .../main/test-data/empty-command.zsh | 36 + .../main/test-data/empty-command2.zsh | 39 + .../main/test-data/empty-line.zsh | 36 + .../highlighters/main/test-data/equals1.zsh | 36 + .../highlighters/main/test-data/equals2.zsh | 38 + .../highlighters/main/test-data/equals3.zsh | 36 + .../highlighters/main/test-data/equals4.zsh | 36 + .../main/test-data/escaped-single-quote.zsh | 38 + .../main/test-data/exec-redirection1.zsh | 38 + .../main/test-data/fd-target-not-filename.zsh | 40 + .../main/test-data/function-altsyntax.zsh | 45 + .../main/test-data/function-named1.zsh | 44 + .../main/test-data/function-named2.zsh | 39 + .../highlighters/main/test-data/function.zsh | 42 + .../highlighters/main/test-data/glob.zsh | 41 + .../main/test-data/global-alias1.zsh | 38 + .../main/test-data/globs-with-quoting.zsh | 43 + .../main/test-data/hashed-command.zsh | 35 + .../history-double-quoted-escaped.zsh | 38 + .../history-double-quoted-followed.zsh | 39 + .../test-data/history-double-quoted-no.zsh | 37 + .../history-double-quoted-unescaped.zsh | 38 + .../test-data/history-double-quoted-yes.zsh | 38 + .../main/test-data/history-expansion.zsh | 39 + .../main/test-data/history-expansion2.zsh | 34 + .../main/test-data/inheritance.zsh | 40 + .../main/test-data/jobsubst-isnt-glob.zsh | 37 + .../main/test-data/jobsubst-isnt-glob2.zsh | 37 + .../main/test-data/loop-newline.zsh | 40 + .../main/test-data/meta-no-eval1.zsh | 49 + .../main/test-data/meta-no-eval2.zsh | 40 + .../test-data/multiline-array-assignment1.zsh | 41 + .../main/test-data/multiline-string.zsh | 37 + .../main/test-data/multiline-string2.zsh | 36 + .../test-data/multios-negates-globbing.zsh | 39 + .../test-data/multios-negates-globbing2.zsh | 38 + .../main/test-data/multiple-quotes.zsh | 42 + .../main/test-data/multiple-redirections.zsh | 46 + .../main/test-data/noglob-alias.zsh | 36 + .../main/test-data/noglob-always.zsh | 45 + .../highlighters/main/test-data/noglob1.zsh | 38 + .../highlighters/main/test-data/noglob2.zsh | 40 + .../highlighters/main/test-data/noglob3.zsh | 38 + .../highlighters/main/test-data/noglob4.zsh | 45 + .../highlighters/main/test-data/null-exec.zsh | 38 + .../main/test-data/null-exec2-printenv.zsh | 38 + .../main/test-data/number_range-glob.zsh | 42 + .../main/test-data/off-by-one.zsh | 40 + .../main/test-data/opt-shwordsplit1.zsh | 40 + .../test-data/optimized-cmdsubst-input.zsh | 43 + .../option-dollar-quote-isnt-filename.zsh | 39 + .../main/test-data/option-path_dirs.zsh | 44 + .../main/test-data/option-with-quotes.zsh | 37 + .../test-data/order-path-after-dollar.zsh | 38 + .../test-data/order-path-before-globbing.zsh | 39 + .../param-positional-in-array-append.zsh | 39 + .../param-precommand-option-argument1.zsh | 42 + .../param-precommand-option-argument3.zsh | 42 + .../parameter-elision-command-word.zsh | 36 + .../parameter-expansion-shwordsplit.zsh | 38 + .../parameter-expansion-untokenized1.zsh | 38 + .../parameter-expansion-untokenized2.zsh | 38 + .../main/test-data/parameter-star.zsh | 40 + .../test-data/parameter-to-global-alias.zsh | 42 + ...meter-value-contains-command-position1.zsh | 38 + ...meter-value-contains-command-position2.zsh | 38 + .../main/test-data/pasted-quotes.zsh | 38 + .../main/test-data/path-broken-symlink.zsh | 41 + .../main/test-data/path-dollared-word.zsh | 45 + .../main/test-data/path-dollared-word2.zsh | 37 + .../main/test-data/path-dollared-word3.zsh | 40 + .../main/test-data/path-dollared-word3b.zsh | 38 + .../main/test-data/path-dollared-word4.zsh | 36 + .../main/test-data/path-mixed-quoting.zsh | 39 + .../main/test-data/path-separators.zsh | 53 + .../main/test-data/path-separators2.zsh | 40 + .../main/test-data/path-space.zsh | 37 + .../main/test-data/path-tilde-home.zsh | 36 + .../main/test-data/path-tilde-home2.zsh | 37 + .../main/test-data/path-tilde-home3.zsh | 36 + .../main/test-data/path-tilde-named.zsh | 39 + .../highlighters/main/test-data/path.zsh | 37 + .../main/test-data/path_prefix.zsh | 38 + .../main/test-data/path_prefix2.zsh | 39 + .../main/test-data/path_prefix3.zsh | 38 + .../plain-file-in-command-position.zsh | 39 + .../main/test-data/precommand-killing1.zsh | 40 + .../main/test-data/precommand-killing2.zsh | 39 + .../test-data/precommand-then-assignment.zsh | 37 + .../main/test-data/precommand-type1.zsh | 61 + .../main/test-data/precommand-type2.zsh | 55 + .../main/test-data/precommand-type3.zsh | 55 + .../main/test-data/precommand-uninstalled.zsh | 44 + .../test-data/precommand-unknown-option.zsh | 43 + .../main/test-data/precommand.zsh | 36 + .../main/test-data/precommand2.zsh | 36 + .../main/test-data/precommand3.zsh | 41 + .../main/test-data/precommand4.zsh | 39 + .../main/test-data/prefix-redirection.zsh | 42 + ...process-substitution-after-redirection.zsh | 46 + ...substitution-redirection-isnt-globbing.zsh | 41 + .../main/test-data/process-substitution.zsh | 43 + .../main/test-data/process-substitution2.zsh | 51 + .../quoted-command-substitution-empty.zsh | 44 + .../quoted-redirection-in-command-word.zsh | 37 + .../highlighters/main/test-data/rc-quotes.zsh | 39 + .../main/test-data/redirection-all.zsh | 95 + .../main/test-data/redirection-comment.zsh | 38 + .../main/test-data/redirection-from-param.zsh | 40 + .../test-data/redirection-in-cmdsubst.zsh | 41 + .../redirection-inhibits-elision.zsh | 38 + .../test-data/redirection-is-not-option.zsh | 38 + .../test-data/redirection-special-cases.zsh | 44 + .../main/test-data/redirection.zsh | 39 + .../main/test-data/redirection2.zsh | 41 + .../main/test-data/redirection3.zsh | 42 + .../main/test-data/reserved-word.zsh | 38 + .../main/test-data/simple-command.zsh | 34 + .../main/test-data/simple-redirection.zsh | 38 + .../highlighters/main/test-data/subshell.zsh | 51 + .../main/test-data/sudo-command.zsh | 54 + .../main/test-data/sudo-comment.zsh | 39 + .../main/test-data/sudo-longopt.zsh | 38 + .../main/test-data/sudo-redirection.zsh | 48 + .../main/test-data/sudo-redirection2.zsh | 41 + .../main/test-data/sudo-redirection3.zsh | 41 + .../main/test-data/tilde-command-word.zsh | 37 + .../main/test-data/time-and-nocorrect1.zsh | 39 + .../main/test-data/time-and-nocorrect2.zsh | 40 + .../main/test-data/unbackslash.zsh | 34 + .../main/test-data/unknown-command.zsh | 34 + .../main/test-data/vanilla-newline.zsh | 39 + .../main/test-data/vi-linewise-mode.zsh | 43 + .../highlighters/pattern/README.md | 1 + .../pattern/pattern-highlighter.zsh | 60 + .../highlighters/pattern/test-data/rm-rf.zsh | 36 + .../highlighters/regexp/README.md | 1 + .../regexp/regexp-highlighter.zsh | 62 + .../highlighters/regexp/test-data/complex.zsh | 37 + .../regexp/test-data/subexpression.zsh | 36 + .../regexp/test-data/word-boundary.zsh | 42 + .../highlighters/root/README.md | 1 + .../highlighters/root/root-highlighter.zsh | 44 + .../images/after1-smaller.png | Bin 0 -> 2517 bytes .../zsh-syntax-highlighting/images/after1.png | Bin 0 -> 5842 bytes .../images/after2-smaller.png | Bin 0 -> 4386 bytes .../zsh-syntax-highlighting/images/after2.png | Bin 0 -> 10228 bytes .../images/after3-smaller.png | Bin 0 -> 1673 bytes .../zsh-syntax-highlighting/images/after3.png | Bin 0 -> 3427 bytes .../images/after4-smaller.png | Bin 0 -> 3224 bytes .../images/before1-smaller.png | Bin 0 -> 1589 bytes .../images/before1.png | Bin 0 -> 2636 bytes .../images/before2-smaller.png | Bin 0 -> 2605 bytes .../images/before2.png | Bin 0 -> 2614 bytes .../images/before3-smaller.png | Bin 0 -> 763 bytes .../images/before3.png | Bin 0 -> 1461 bytes .../images/before4-smaller.png | Bin 0 -> 2987 bytes .../images/preview-smaller.png | Bin 0 -> 5982 bytes .../images/preview.png | Bin 0 -> 14650 bytes .../.zsh/zsh-syntax-highlighting/release.md | 21 + .../zsh-syntax-highlighting/tests/README.md | 124 + .../tests/edit-failed-tests | 40 + .../tests/generate.zsh | 117 + .../tests/tap-colorizer.zsh | 71 + .../zsh-syntax-highlighting/tests/tap-filter | 47 + .../tests/test-highlighting.zsh | 291 + .../tests/test-perfs.zsh | 103 + .../tests/test-zprof.zsh | 78 + .../zsh-syntax-highlighting.plugin.zsh | 2 + .../zsh-syntax-highlighting.zsh | 587 ++ gentoo/dotfiles/.zshenv | 1 + gentoo/dotfiles/.zshrc | 220 + .../env/emerge-default-opts-jobs-2.conf | 1 + gentoo/portage/env/enable-ccache.conf | 11 + gentoo/portage/make.conf | 41 +- gentoo/portage/make.conf.backup | 34 - .../package.accept_keywords/package.unmask | 17 + gentoo/portage/package.accept_keywords/steam | 3 + .../package.accept_keywords/zz-autounmask | 1789 ---- gentoo/portage/package.license/steam | 1 + gentoo/portage/package.mask/systemd | 1 + gentoo/portage/package.use/00video_cards | 2 +- gentoo/portage/package.use/00xorg_entries | 1 + gentoo/portage/package.use/doas | 1 - gentoo/portage/package.use/installkernel | 11 - gentoo/portage/package.use/krita | 1 - gentoo/portage/package.use/librewolf-bin | 1 - gentoo/portage/package.use/onlyoffice-bin | 1 - gentoo/portage/package.use/package.use | 1093 +++ gentoo/portage/package.use/picom | 1 - gentoo/portage/package.use/pyqt5 | 1 - gentoo/portage/package.use/python | 1 - gentoo/portage/package.use/qt5compat | 1 - gentoo/portage/package.use/qtbase | 1 - gentoo/portage/package.use/qtdeclarative | 1 - gentoo/portage/package.use/qttools | 1 - gentoo/portage/package.use/st | 1 - gentoo/portage/package.use/tealdeer | 1 - gentoo/portage/package.use/ufw | 1 - gentoo/portage/package.use/xorg | 0 gentoo/portage/package.use/zsh | 99 - gentoo/portage/postsync.d/50-eix-postsync | 1 + gentoo/portage/profile/systemd | 1 + gentoo/portage/repos.conf/eselect-repo.conf | 16 + gentoo/portage/repos.conf/eselect-repo.conf~ | 21 + gentoo/portage/repos.conf/guru.conf | 4 - gentoo/portage/repos.conf/librewolf.conf | 6 - .../sys-firmware/ipxe-1.21.1_p20230601-r1 | 5 + .../sys-kernel/linux-firmware-20250808 | 8516 ++++++++--------- gentoo/portage/savedconfig/x11-terms/st-0.9.2 | 482 - .../savedconfig/x11-terms/st-0.9.2.bak | 474 - scripts/mkbackup | 2 +- 497 files changed, 29421 insertions(+), 7191 deletions(-) create mode 100644 gentoo/dotfiles/.aliases create mode 100644 gentoo/dotfiles/.bash_login create mode 100644 gentoo/dotfiles/.bash_profile create mode 100644 gentoo/dotfiles/.bashrc create mode 100644 gentoo/dotfiles/.xinitrc create mode 100644 gentoo/dotfiles/.zprofile create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/bug-report.md create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/config.yml create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.github/workflows/lock.yml create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.github/workflows/test.yml create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.gitmodules create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/alias-expansion.png create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/file-search.gif create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/history-lines.png create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/history-menu.png create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/history-search.gif create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/multi-select.png create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/recent-dirs.png create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/requoted.png create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/.img/unambiguous.png create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__command create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__compadd_opts_len create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__history_lines create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__recent_paths create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__should_insert_unambiguous create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__unambiguous create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__async create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__compinit create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__config create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__key-bindings create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__main create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__recent-dirs create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__widgets create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Util/.autocomplete__patch create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Util/.autocomplete__zle-flags create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__complete-word__completion-widget create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__complete-word__post create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__down-line-or-select__zle-widget create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__history-search__completion-widget create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__up-line-or-search__zle-widget create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/LICENSE create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Tests/__init__.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/Tests/complete-word.post.md create mode 100755 gentoo/dotfiles/.zsh/zsh-autocomplete/run-tests.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autocomplete/zsh-autocomplete.plugin.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/.editorconfig create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/ISSUE_TEMPLATE/bug-report.md create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/workflows/integration.yml create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/.rspec create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/.rubocop.yml create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/.ruby-version create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/CHANGELOG.md create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/DESCRIPTION create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/Dockerfile create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/Gemfile create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/Gemfile.lock create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/INSTALL.md create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/LICENSE create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/Makefile create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/URL create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/VERSION create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/ZSH_VERSIONS create mode 100755 gentoo/dotfiles/.zsh/zsh-autosuggestions/install_test_zsh.sh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/async_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/auto_cd_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/bracketed_paste_magic_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/client_zpty_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/glob_subst_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/rebound_bracket_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/vi_mode_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/wrapped_widget_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/zle_input_stack_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/kill_ring_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/line_init_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/multi_line_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/buffer_max_size_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/highlight_style_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/original_widget_prefix_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/strategy_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/widget_lists_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/spec_helper.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/completion_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/history_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/match_prev_cmd_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/special_characters_helper.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/terminal_session.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/disable_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/enable_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/fetch_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/toggle_spec.rb create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/async.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/bind.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/config.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/fetch.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/highlight.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/start.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/completion.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/history.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/match_prev_cmd.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/util.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/src/widgets.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.editorconfig create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.gitattributes create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.github/workflows/test.yml create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.revision-hash create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.version create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/COPYING.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/HACKING.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/INSTALL.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/Makefile create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/changelog.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/brackets.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/cursor.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/line.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/main.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/pattern.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/regexp.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/root.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/README.md create mode 120000 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/brackets-highlighter.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/cursor-matchingbracket.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/empty-styles.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/loop-styles.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/mismatch-patentheses.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/near-quotes.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/nested-parentheses.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/only-error.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/quoted-patentheses.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/simple-parentheses.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/unclosed-patentheses.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/unclosed-patentheses2.zsh create mode 120000 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/cursor/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/cursor/cursor-highlighter.zsh create mode 120000 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/line/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/line/line-highlighter.zsh create mode 120000 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/main-highlighter.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position1b.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position3b.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position5.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-assignment1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-basic.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-brackets.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-command-substitution.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-comment1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-comment2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-complex.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-empty.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-eponymous1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-eponymous2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-in-cmdsubst.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-loop.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-loop2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-nested-precommand.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-nested.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-parameter.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-quoted.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-redirect.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse5.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-self.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-self2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-to-dir.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-to-dir1b.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-unknown-token1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-unknown-token2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/anonymous-function.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arg0-colon.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith-cmdsubst-mess.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-command-substitution.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-doubled-parens.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-empty.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-evaluation.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-hist-expn.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-invalid-chars.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-multiplication.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-nested.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-quoted.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-unclosed.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-unfinished.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-append.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-argv.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-invalid-command.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-not-array.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-not-array2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-quoted-cmdsubst.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-semicolon.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-subshell.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-value-quote1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-value-quote2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword5.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-quoted.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/back-quoted-argument.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/back-quoted-open.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-continuation.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-continuation2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-space.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-assign-array.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-assign-scalar.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-pipeline.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/block-assignment-no-command.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/braces1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/braces2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-matching1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-matching2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch10-if-negative.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch5.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch6.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch7.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch8-if-positive.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch8.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch9-if-positive.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-premature-termination.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cdpath-abspath.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cmdpos-elision-partial.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-adjacent.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-in-assignment.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-unclosed.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/commandseparator.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-followed.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-leading.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-off.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comments.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/commmand-parameter.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cthulhu.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dinbrack1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dirs_blacklist.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-dollar.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-noise.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-paren.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-hyphen-option.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command-newline.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-line.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/escaped-single-quote.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/exec-redirection1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/fd-target-not-filename.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-altsyntax.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-named1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-named2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/glob.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/global-alias1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/globs-with-quoting.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/hashed-command.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-escaped.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-followed.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-no.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-unescaped.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-yes.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-expansion.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-expansion2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/inheritance.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/jobsubst-isnt-glob.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/jobsubst-isnt-glob2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/loop-newline.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/meta-no-eval1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/meta-no-eval2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-array-assignment1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-string.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-string2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multios-negates-globbing.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multios-negates-globbing2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiple-quotes.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiple-redirections.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob-alias.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob-always.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/null-exec.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/null-exec2-printenv.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/number_range-glob.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/off-by-one.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/opt-shwordsplit1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/optimized-cmdsubst-input.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-dollar-quote-isnt-filename.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-path_dirs.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-with-quotes.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/order-path-after-dollar.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/order-path-before-globbing.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-positional-in-array-append.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-precommand-option-argument1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-precommand-option-argument3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-elision-command-word.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-shwordsplit.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-untokenized1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-untokenized2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-star.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-to-global-alias.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-value-contains-command-position1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-value-contains-command-position2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/pasted-quotes.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-broken-symlink.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word3b.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-mixed-quoting.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-separators.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-separators2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-space.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-named.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/plain-file-in-command-position.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-killing1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-killing2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-then-assignment.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-uninstalled.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-unknown-option.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand4.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/prefix-redirection.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution-after-redirection.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/quoted-command-substitution-empty.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/quoted-redirection-in-command-word.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/rc-quotes.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-all.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-comment.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-from-param.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-in-cmdsubst.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-inhibits-elision.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-is-not-option.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-special-cases.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/reserved-word.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/simple-command.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/simple-redirection.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/subshell.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-command.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-comment.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-longopt.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection3.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/tilde-command-word.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/time-and-nocorrect1.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/time-and-nocorrect2.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/unbackslash.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/unknown-command.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/vanilla-newline.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/vi-linewise-mode.zsh create mode 120000 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/pattern-highlighter.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/test-data/rm-rf.zsh create mode 120000 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/regexp-highlighter.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/complex.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/subexpression.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/word-boundary.zsh create mode 120000 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/root/README.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/root/root-highlighter.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after1-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after1.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after2-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after2.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after3-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after3.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after4-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before1-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before1.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before2-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before2.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before3-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before3.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before4-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/preview-smaller.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/preview.png create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/release.md create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/README.md create mode 100755 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/edit-failed-tests create mode 100755 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/generate.zsh create mode 100755 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/tap-colorizer.zsh create mode 100755 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/tap-filter create mode 100755 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-highlighting.zsh create mode 100755 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-perfs.zsh create mode 100755 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-zprof.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh create mode 100644 gentoo/dotfiles/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh create mode 100644 gentoo/dotfiles/.zshenv create mode 100644 gentoo/dotfiles/.zshrc create mode 100644 gentoo/portage/env/emerge-default-opts-jobs-2.conf create mode 100644 gentoo/portage/env/enable-ccache.conf delete mode 100644 gentoo/portage/make.conf.backup create mode 100644 gentoo/portage/package.accept_keywords/package.unmask create mode 100644 gentoo/portage/package.accept_keywords/steam delete mode 100644 gentoo/portage/package.accept_keywords/zz-autounmask create mode 100644 gentoo/portage/package.license/steam create mode 100644 gentoo/portage/package.mask/systemd create mode 100644 gentoo/portage/package.use/00xorg_entries delete mode 100644 gentoo/portage/package.use/doas delete mode 100644 gentoo/portage/package.use/installkernel delete mode 100644 gentoo/portage/package.use/krita delete mode 100644 gentoo/portage/package.use/librewolf-bin delete mode 100644 gentoo/portage/package.use/onlyoffice-bin create mode 100644 gentoo/portage/package.use/package.use delete mode 100644 gentoo/portage/package.use/picom delete mode 100644 gentoo/portage/package.use/pyqt5 delete mode 100644 gentoo/portage/package.use/python delete mode 100644 gentoo/portage/package.use/qt5compat delete mode 100644 gentoo/portage/package.use/qtbase delete mode 100644 gentoo/portage/package.use/qtdeclarative delete mode 100644 gentoo/portage/package.use/qttools delete mode 100644 gentoo/portage/package.use/st delete mode 100644 gentoo/portage/package.use/tealdeer delete mode 100644 gentoo/portage/package.use/ufw delete mode 100644 gentoo/portage/package.use/xorg delete mode 100644 gentoo/portage/package.use/zsh create mode 120000 gentoo/portage/postsync.d/50-eix-postsync create mode 100644 gentoo/portage/profile/systemd create mode 100644 gentoo/portage/repos.conf/eselect-repo.conf~ delete mode 100644 gentoo/portage/repos.conf/guru.conf delete mode 100644 gentoo/portage/repos.conf/librewolf.conf create mode 100644 gentoo/portage/savedconfig/sys-firmware/ipxe-1.21.1_p20230601-r1 delete mode 100644 gentoo/portage/savedconfig/x11-terms/st-0.9.2 delete mode 100644 gentoo/portage/savedconfig/x11-terms/st-0.9.2.bak diff --git a/gentoo/dotfiles/.aliases b/gentoo/dotfiles/.aliases new file mode 100644 index 00000000..9cab6ccb --- /dev/null +++ b/gentoo/dotfiles/.aliases @@ -0,0 +1,418 @@ +# Custom Aliases +alias cdls="source mycd" +#alias {les,less,more}="moar -wrap -no-statusbar -style friendly" # -no-linenumbers" +alias {rg,grep}="rg -i --colors 'match:fg:blue' --colors 'line:fg:blue'" # -N +alias {drag,rdrag}="ripdrag" +alias dusty="dust -i -v 'node_modules'" +#alias lf="ranger" +alias cp="cp -i" +alias df='df -h' +alias free='free -mh' +alias dmesg="doas dmesg -H" +alias kernel="uname -r" +alias mkcd='{ IFS= read -r d && mkdir "$d" && cd "$d"; } <<<' +alias cpwd='pwd | xclip -sel clip' +alias docs="cd ~/Documents && ls" +alias desk="cd ~/Desktop && ls" +alias down="cd ~/Downloads && ls" +alias pics="cd ~/Pictures && ls" +alias pods="cd ~/Podcasts && ls" +alias music="cd ~/Music && ls" +alias vids="cd ~/Videos && ls" +alias mov="cd ~/Videos/mov/ && ls" +alias {sand,sandbox}="cd ~/sandbox && ls" +alias games="cd ~/.local/share/Steam/steamapps/common && ls" +alias notes="cd ~/Documents/notes && ls" +alias scripts="cd ~/scripts && ls" +alias books="cd ~/Documents/books && ls" +alias config="cd ~/.config && ls" +alias cache="cd ~/.cache && ls" +#alias svs="cd /etc/runit/sv && ls" +alias offline="cd ~/Documents/offline_notes && ls" +# alias vpnup="doas sv up wireguard" +# alias vpndown="doas sv down wireguard" +alias pihole="docker exec -it pihole-unbound pihole" +alias obs="gobble flatpak run com.obsproject.Studio" +alias Code="cd ~/Documents/Code && ls" +alias graphics="cd ~/Documents/Graphic_Design && ls" +alias Math="cd ~/Documents/Math && ls" +alias cplus="cd ~/Documents/Code/cpp && ls" +alias js="cd ~/Documents/Code/javascript && ls" +alias py="cd ~/Documents/Code/python && ls" +#alias {pysh,py-sh}="ipython" +#alias phpd="cd ~/Documents/Code/php && ls" +alias golang="cd ~/Documents/Code/golang && ls" +alias {rust,rustlang}="cd ~/Documents/Code/rust && ls" +alias {leet,leetcode}="cd ~/Documents/Code/leetcode/ && ls" +alias {neet,neetcode}="cd ~/Documents/Code/leetcode/neetcode_roadmap/ && ls" +alias neetvids="cd ~/Videos/yt/educational/dsa/leetcode_explanations/neetcode_roadmap/ && ls" +# alias zsaves="cd ~/Zomboid/Saves/Sandbox/ && ls" +# alias zsaves="cd ~/Games/umu/umu-default/drive_c/users/steamuser/Zomboid/Saves/Sandbox && ls" +# alias zmods="cd ~/Games/umu/umu-default/drive_c/users/steamuser/Zomboid/mods && ls" +alias zsaves="cd ~/.wine/drive_c/users/brian/Zomboid/Saves/Sandbox/ && ls" +alias zmods="cd ~/.wine/drive_c/users/brian/Zomboid/mods/ && ls" +alias logs="cd /var/log && ls" +alias llama="cd ~/.local/share/llama.cpp && ./llama.sh ; cd" +alias wtuts="cd ~/Documents/Code/web_tutorials && ls" +alias btuts="cd ~/Documents/Code/book_tutorials && ls" +alias fonts="fc-list" +alias locate="locate -i" +alias bat="bat --theme Nord" +alias ls="eza --icons" +alias li="eza -1 --icons" +alias ll="eza -lih --icons" +alias {lsdir,lsd}="ls -t -1" # list only the directories +alias lshw="doas lshw -short | less" # list hardware +alias {hw,hwinfo}="hwinfo | less" # extensive info on hardware devices +alias dmid="doas dmidecode | less" +alias of="onefetch -o yaml | yq -C" +alias mkdir='mkdir -pv' +alias dict='def' +alias {:q,ex,esc}="exit" +alias :w="touch" +alias digg="doggo" +alias dff="/usr/bin/df -h && duf" +alias {his,hist}="history" +alias mnt="doas mount /dev/sda1 /mnt/media/usb-drive && cd /mnt/media/usb-drive && ls" +alias umnt="doas umount /mnt/media/usb-drive" +alias {imnt,iphone}="ifuse /home/brian/iphone && cd /home/brian/iphone && ls" +alias iumnt="doas umount /home/brian/iphone" +alias kmnt="doas mount /dev/sda /mnt/media/kobo/ && cd /mnt/media/kobo/.kobo && ls" +alias kumnt="doas umount /dev/sda /mnt/media/kobo" +# alias pixel="cd /run/user/1000/gvfs/mtp:host=Google_Pixel_7a_34211JEHN03088/Internal\ shared\ storage && ls" +alias pixel="cd /mnt/media/pixel/Internal\ shared\ storage && ls" +alias pmnt="aft-mtp-mount /mnt/media/pixel && cd /mnt/media/pixel/Internal\ shared\ storage && ls" +alias pumnt="fusermount3 -uz /mnt/media/pixel" +alias pikoshi="cd ~/Documents/Code/group_projects/pikoshi/ && ls" +alias rm="newrm -vi" +alias calendar="calcurse" +alias cal="newcal" +# simple tool for math, see https://github.com/metadelta/mdlt +# alias math="mdlt simplify" +alias mv="mv -v" +alias ln="ln -i" +alias {doasedit,sudoedit}="doas rnano" +alias clean_cache="doas paccache -r && doas rm -r /home/brian/.cache/*" +alias shred="doas shred -uzv" # shreds the file and overwrites it with 1s and 0s, shows progress +alias indelible="doas chattr +i" # makes a file impossible to delete (except with sudo) +alias diff=difft +alias cdiff="colordiff" +# alias kfonts="kitty +list-fonts" +# alias {kdiff,kitten,kd}="kitty +kitten diff" +alias fzfi="rg --files --hidden --follow --no-ignore-vcs -g '!{node_modules,.git}' | fzf" +alias bluepill="neo-matrix --bold=2 -D --color=cyan --density=0.75 --charset=katakana --speed=12 --fullwidth --screensaver" +alias moo="cowsay moo" +# alias btop="kitty -o font_size=12 -o background_opacity=0.50 -e btop; fullscreen enable" +alias tshift='doas timeshift --delete && notify-send "  Previous Backup Deleted!" && doas timeshift --create && notify-send "  New Backup Created!" && doas timeshift --list' +alias btop="bst -e btop" +# alias gimp="gimp --no-splash" +alias krita="gobble flatpak run org.kde.krita --nosplash" +#alias onlyoffice="onlyoffice-desktopeditors" +# alias toonz="opentoonz" +alias {sqlite,sql}="sqlite3" +alias {sqcipher,sqc}="sqlcipher" +alias sqlite-cli="litecli" +alias sq-cli="litecli" # doesn't work with sqlcipher +# alias view="kitty +kitten icat" +alias view="gobble sxiv" +alias view-w="img2sixel" +# alias csview="csvlook" +alias viewer="feh -F -Z -x" +alias mupdf='gobble mupdf -r 204' +alias dkpdf='gobble mupdf -I -r 204' +alias sign='gobble xournalpp' +alias keys="gobble keepassxc $KDBX" +alias {jscrl,jsoncurl,jcrl}="jscurl" +alias kevents="xev -event keyboard" +alias sk="screenkey" +# alias word="wordgrinder" +alias spreadsheet="sc-im" +alias pvctrl="pavucontrol" +alias open="xdg-open" +alias nc="nc -v" +alias dump="doas tcpdump" +alias {wireshark-cli,wshark}="tshark" +alias wireshark="gobble wireshark -k -i wlp6s0" +alias route="traceroute" +alias listen="ss -a -t -p" +alias {lh,lighthouse}="lighthouse --view" +alias {pdf2,pdf2txt}="pdftotext" +alias {pdfg,greppdf}="pdfgrep" +alias tree="tree -ad -L 3 --prune -C -I 'node_modules|.git'" +alias {vi,vim,nv,nvi}="nvim" +alias {vfz,nvfz,nvim-fzf,fzf-nvim}='nvim "$(fzf)"' +alias {cproj,mproj,myproj}="cd '$cproj' && ls" +alias blog="cd ~/Documents/Code/blog/ && ls" +# alias rsm="doas rsm" +alias updatedb="doas updatedb" +alias iftop-w="doas iftop -i wlan0 -P" +alias wmon="wavemon" +# usage p0f -i wlan0 +alias p0f="doas p0f" +alias vnstat-w="vnstat -i wlan0 --json | jq" +alias {bluetooth,bt}="bluetoothctl" +alias {wi,ssid}="doas iw wlan0 scan | grep SSID" + +# NOTE: Find wpa_supplicant and dhcpcd ways to do these NetworkManager commands: +# alias wifi-list="connmanctl services" +#alias wifi-list="nmcli device wifi list" +# alias wifi-scan="connmanctl scan wifi" +# alias wifi-connect="connmanctl connect wifi_34cff6c9b922_44495a5a_managed_psk" +#alias wifi-connect='nmcli device wifi connect "${SSID}" password "${PASSWD}"' +# alias wifi-disconnect="connmanctl disconnect wifi_34cff6c9b922_44495a5a_managed_psk" +#alias wifi-disconnect="nmcli device disconnect wlan0" +#alias wifi-up="doas ifconfig wlan0 up" +#alias wifi-down="doas ifconfig wlan0 down" + +alias lxapp="lxappearance" +alias hd="ncdu" +# one of our most usful aliases (useful in conjunction with yank, awk, etc.): +alias {xsel,catx}="xclip -sel clip" # useful with < or | redirection operators +# wayland has an equivalent as well: +alias {wsel,catw}="wl-copy" # useful with | redirection, i.e. echo "hi there" | catw +alias catp="xclip -out -selection clipboard; echo" +alias mouse="mousepad" +alias xclear="echo '' | xclip && xclip -selection clipboard /dev/null" +# alias diff="diff -wy" +alias exifread="exiftool" +alias exifrm="exiftool -all=" +alias {html,html_pp}="hxnormalize -e" +alias {ltrans,trans,translate}="ltranslate" +alias skey='screenkey --position fixed --geometry $(slop)' +alias birth="stat / | grep 'Birth' | sed 's/Birth: //g' | cut -b 2-11" +# interfaces with asciinema.org for creating simple video tutorials on cli programs +alias ascii="asciinema" + +alias mpv="gobble mpv --sub-font-size=40" +alias mpvl="gobble mpv --sub-font-size=40 --loop-file=inf" +alias mpva='/usr/bin/mpv "${1}" --no-video' +alias mpval='/usr/bin/mpv "${1}" --no-video --loop-file=inf' +alias mmpv='gobble mpv --fs --panscan=1.0' +# alias {qvid,qv4}="gobble qv4l2" # better amount of controls for webcam +# alias {gvid,gv4}="gobble guvcview" # set to 50hz +# bare bones, just views webcam: +alias {wcam,webcam}="gobble mpv --demuxer-lavf-o=video_size=1920x1080,input_format=mjpeg av://v4l2:/dev/video0 --profile=low-latency" +# use: record /path/to/file.mp3 + +# NOTE: instead of arecord (ALSA), find a way to use pw-record (via pipewire) +# alias record="arecord -vv --format=cd --file-type raw | lame -r - " + +#alias {hp,headphones}="pactl set-default-sink alsa_output.usb-FIIO_FiiO_USB_DAC-E10-01.analog-stereo" +#alias {sp,speakers}="pactl set-default-sink alsa_output.pci-0000_0a_00.4.analog-stereo" +#alias dspeakers="pactl set-default-sink alsa_output.pci-0000_08_00.1.hdmi-stereo-extra1" +# laptop only +#alias lapspeakers="pactl set-default-sink alsa_output.pci-0000_00_1f.3.analog-stereo" +alias pulse="pamixer --set-volume" +alias {mu,mt,mute}="pamixer -t" +# laptop only currently, records video/audio, simply name filename .mp4 after command: +alias r_vid="ffmpeg -f v4l2 -framerate 24 -video_size 640x480 -i /dev/video0 -itsoffset 00:00:01.0 -f alsa -i default -c:v libx264 -preset ultrafast -c:a aac" +# for smaller downloads +alias ytdl='yt-dlp --sponsorblock-remove all --write-auto-sub -t mp4' +alias ytdl-w='yt-dlp "best*" --sponsorblock-remove all --write-auto-sub' +# for better resolutions +# alias ytdl-w='yt-dlp -f webm "bestvideo\*+bestaudio" --sponsorblock-remove all --write-auto-sub' +# for audio only +alias ytdl-a="yt-dlp --sponsorblock-remove all -x --audio-format mp3" +# alias thinkorswim="cd /home/brian/thinkorswim && java -jar launcher.jar && cd" +alias {cl,cls}="clear" +alias shutdown="shutdown.sh" +alias reboot="reboot.sh" +alias curltime="curl -w \"@$HOME/Documents/notes/curl-format.txt\" -o /dev/null -s" +#source ~/.zip_code +alias inxi-w="inxi --weather "${ZIPCODE}"" +alias inxi-i="doas inxi -Fxzm" +alias pf="pfetch" +alias ff="fastfetch" +alias has="dependencycheck" +# alias ipaddr="curl ifconfig.me/all.json | jq" +alias hwclock="doas hwclock" +alias kill9="killall -9" # kills process by name, e.g. kill9 cmus +alias ports="netstat -tunlp" +# alias npm_upgrade="doas npm install --location=global npm@latest" +alias npm-l="npm list --global" +alias npm-s="npm start" +alias npm-t="npm test" +alias npm-o="npm outdated" +alias npm-u="npm update" +alias cargo-l="cargo install --list" +alias cargo-u="cargo install-update -a" # requires cargo-update crate +# alias {pacquery,pacq}="pacman -Q" +# alias {pacsearch,pacs}="pacman -Ss" +alias find-empty='find . -depth -empty' +alias rmdir-a='find . -depth -empty -delete' +alias paclogs="bat /var/log/pacman.log" +alias npm_list="find /usr/lib/node_modules -maxdepth 1 | sed -r 's/^\/usr\/lib\/node_modules\///g'" +# useful alias for recursively testing .test.js files on save +# alias jester="jest --watchAll" +# generate uuids using native bash +alias uuid="uuidgen" +alias kuuid="cat /proc/sys/kernel/random/uuid" +alias duuid="dbus-uuidgen" +# generate unique ids from cli, example for no special characters: +# alias manoid="nanoid --alphabet 'abcdefghijklmnopqrstuvwxyz' --size 40" +alias nanoid="npx nanoid" +# alias uglifyhtml="html-minifier --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype --minify-css true --minify-js true" +# autoprefixes css files +# requires installation: +# npm install -g postcss postcss-cli autoprefixer +alias {prefix,autoprefixer}="npx postcss *.css --use autoprefixer -d build/" +# informs on dependency updates +alias taze="npx taze" +# alias pip_upgrade="python -m pip install --upgrade pip" +alias rust_upgrade="rustup update" +alias nb="newsboat" +alias profane="profanity" +alias {gmail,email,mail,mutt,nmut,nmutt}="neomutt" +alias {mnb,nb-m}="cd ~/.config/newsboat && /usr/bin/cp $HOME/.config/newsboat/my_urls $HOME/.config/newsboat/urls && newsboat" +alias {ynb,nb-y}="/usr/bin/cp $HOME/.config/newsboat/yt_urls $HOME/.config/newsboat/urls && newsboat" +alias {rnb,nb-r}="cd ~/.config/newsboat && /usr/bin/cp $HOME/.config/newsboat/reddit_urls $HOME/.config/newsboat/urls && newsboat" +alias {tootnb,mastnb}="cd ~/.config/newsboat && /usr/bin/cp $HOME/.config/newsboat/mastodon_urls $HOME/.config/newsboat/urls && newsboat" +alias rt-rs="doas rm -r watch session && mkdir watch session && rm ~/Downloads/*.meta" +alias slink="streamlink" +#alias {epub,fbreader}="gobble FBReader" +alias scrot="scrot --count --delay" +alias grip="grip 6969" +alias sudoku="sku" +# alias rbd="checkrebuild -v" +# pip list and pip freeze command list pip packages +# poetry virtual env +alias venv='source ".venv/bin/activate"' +alias {uvenv,dvenv}="deactivate" + +#Particularly useful commands more to remember than to use as aliases: +# alias optimalbufsize= 'stat -c "%o"' # followed by filename will give you the optimal read/write BUFSIZE for a file +alias {rcrm,rrm}="doas xargs -d\\n rm -r -v" # when piped after locate or find command, recursively removes outputted files +alias {rlast,dlast}="sed -i '$ d'" # removes last line of file +alias shchk="shellcheck" +# get top process eating memory +alias psmem="ps auxf | sort -nr -k 4 | head -5" +# get top process eating cpu +alias pscpu="ps auxf | sort -nr -k 3 | head -5" +# alias {say,speak,espeak}="espeak -v female5" +alias {say,speak,espeak}="speak-ng" + +# useful bash commands +# grep, sed, awk, tr, sort, seq, paste, uniq + +# git aliases +alias git-a="git add" +alias git-c="git commit -m" +alias git-p="git push" +alias {git-\#,git\#}="git rev-list --count --all" +# taken from Luke Smith, pushes to all remotes +alias git-pa="git remote | xargs -L1 git push --all" +# undo local file changes and keep your last commit +alias git-r="git reset --hard" +# undo local file changes and remove your last commit +alias git-rrh="git reset --hard HEAD^" +# keep local file changes and remove your last commit +alias git-rrs="git reset --soft HEAD^" +alias git-s="git status" +alias git-ss="git status short" +alias git-d="git diff" +alias {git-b,git-br}="git branch" +alias git-bl="git blame" +# for use with notes directory only +alias git-lo="git log --oneline --follow" +# alias {git-l,git-log}="git log --graph --format='format:%C(yellow)%h%C(reset) %s %C(magenta)%cr%C(reset)%C(auto)%d%C(reset)'" +alias {git-l,git-log}="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)' --all" +# more to just remember than to be used +alias git-stsh="git stash" +alias git-stsh-a="git stash apply" +alias git-stsh-d="git stash drop" +alias gitmojis="bat $HOME/Documents/notes/gitmoji.txt" +alias {vimhelp,helpvim,vimtips}="bat $HOME/Documents/notes/nvim_custom_keys.txt" +alias {nvim-c,cleanvim}="nvim --clean" + +# tmux multiplexer session aliases +alias tmux-ls="tmux list--sessions" +alias {tmux-attach,tmux-a}="tmux a -t" +alias {tmux-kill,tmux-k}="tmux kill-ses -t" + +# zellij multiplexer sesssion +# alias zj="zellij" + +# programming specific aliases +alias rc="rustc" +alias cc="cc -Wall -Werror -Wextra -Wpedantic" +alias cprogrammingtags="ctags" +alias vgrind="valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes -s" + +# game shortcuts +# alias gback="cp -r ~/.wine/drive_c/users/brian/AppData/Local/CD\ Projekt\ Red/ ~/game_save_backups/" +# alias {cbpunk,cyberpunk}="steam steam://rungameid/1091500 &" +# alias {twd,thewalkingdead}="steam steam://rungameid/1449690 &" +# alias {cbmods,cybermods}="cd ~/.local/share/Steam/steamapps/common/Cyberpunk\ 2077/archive/pc/mod && ls" + +# docker specific Aliases +alias docker-ls="docker container ls -a && docker images" +alias docker-rm-c="docker container rm" +alias docker-rm-i="docker image rm" +alias {docker-k,docker-kill}="docker kill" +alias docker-exec="docker exec -it" # use with container ID and bash + +# bookmarks +alias apnews='f(){ links https://apnews.com/"$1" ;}; f' # call using 'us' or 'world' as second arg +alias npr="links https://text.npr.org" +alias pbs="links https://lite.pbs.org" +# brings up oregon public broadcasting +alias radio='/usr/bin/mpv --no-video "https://ais-sa3.cdnstream1.com/2440_128.aac/playlist.m3u8?listeningSessionID=64c429fd0062f502_803653_uuxYz9V9_NjYuODUuODkuMzA6ODA\!_0000000vz1k\&downloadSessionID=0\&listenerId=esTrackblock0801483\&aw_0_1st.playerid=esPlayer&aw_0_1st.skey=1691381053"' +alias {gp,gopherpedia}="lynx gopher://gopherpedia.com:70" +alias gopher="lynx https://gopher.floodgap.com/gopher/gw.lite" +alias {ddg,duckduckgo}="links https://duckduckgo.com/lite" +alias bangs="links ~/Documents/notes/ddg_bangs.html" +# alias bangs="links https://duckduckgo.com/bang_lite.html" +alias wikipedia="links https://wikipedia.org" +alias hackernews="links https://news.ycombinator.com/" +# sustainable clothing brands (shoes and underwear) +# alias nothingnew="librewolf https://nothingnew.com &" +# alias wamaundies="librewolf https://wamaunderwear.com &" + +# Kiwix (offline wikis) +alias kiwixdl="links download.kiwix.org" + +# Anarchism +alias itsgoingdown="links https://itsgoingdown.org/" +alias puget="links https://pugetsoundanarchists.org/" +alias {theanarchistlibrary,anarchlib}="links https://theanarchistlibrary.org/" + +# Programming Resources +# CS Basics + +# Blogs +# Unix Sheikh, very good info regarding Unix and Linux +alias unixsheikh="links https://unixsheikh.com" +# A reddit like forum similar also to hackernews +alias lobsters="links https://lobste.rs" + +# Check Tor +alias checktor="links https://check.torproject.org" + +# display related aliases +alias brighten="xrandr --output HDMI-0 --brightness" +alias unred="redshift -x" + +# run the following two aliases every time you update the kernels and nvidiadkms +# alias {grub_update,update_grub}="doas grub-mkconfig -o /boot/grub/grub.cfg" +# alias regen_initramfs="doas mkinitcpio -P" + +# alias mpl="mplayer -fs" +# alias {mloop,mploop}="mplayer -fs -loop 0" +alias sd="sdir" +alias unu="upnup" + +source $HOME/.linodes/.ips +source $HOME/.k_hidden + +source $HOME/.n_hidden +alias "${scomm}"='cd "${secdir}" && mmpv * && home' +alias "${scomm2}"='mmpv ${secvid} && home' +alias "${scomm3}"='cd "${secdir2}" && mmpv * && home' + +# GENTOO +alias wlop="doas watch -cn 10 genlop -ci" +alias portage="cd /etc/portage && ls" +alias portq="qlist -I" +alias depends="equery g" +alias {usedit,useedit}="doas nvim /etc/portage/package.use/package.use" +alias unmask="doas nvim /etc/portage/package.accept_keywords/package.unmask" diff --git a/gentoo/dotfiles/.bash_login b/gentoo/dotfiles/.bash_login new file mode 100644 index 00000000..18acb96e --- /dev/null +++ b/gentoo/dotfiles/.bash_login @@ -0,0 +1,4 @@ +export XDG_CACHE_HOME="${HOME}/.cache" +export XDG_CONFIG_HOME="${HOME}/.config" +export XDG_DATA_HOME="${HOME}/.local/share" +export XDG_STATE_HOME="${HOME}/.local/state" diff --git a/gentoo/dotfiles/.bash_profile b/gentoo/dotfiles/.bash_profile new file mode 100644 index 00000000..a60b5328 --- /dev/null +++ b/gentoo/dotfiles/.bash_profile @@ -0,0 +1,30 @@ +# /etc/skel/.bash_profile + +# This file is sourced by bash for login shells. The following line +# runs your .bashrc and is recommended by the bash info pages. +if [[ -f ~/.bashrc ]] ; then + . ~/.bashrc +fi + +# if test -z "${XDG_RUNTIME_DIR}"; then +# export XDG_RUNTIME_DIR=/tmp/xdg/"${UID}" -xdg-runtime-dir +# if ! test -d "${XDG_RUNTIME_DIR}"; then +# mkdir -p "${XDG_RUNTIME_DIR}" +# chmod 0700 "${XDG_RUNTIME_DIR}" +# fi +# fi + +if test -z "${XDG_RUNTIME_DIR}"; then + export XDG_RUNTIME_DIR=/run/user/${UID} +fi + +if test -d "${XDG_RUNTIME_DIR}"; then + perms="$(stat -c '%a %u' "${XDG_RUNTIME_DIR}")" + if [[ "${perms}" != "700 ${UID}" ]]; then + export -n XDG_RUNTIME_DIR + echo "WARNING! XDG_RUNTIME_DIR has incorrect permissions" + fi +else + mkdir -p "${XDG_RUNTIME_DIR}" + chmod 0700 "${XDG_RUNTIME_DIR}" +fi diff --git a/gentoo/dotfiles/.bashrc b/gentoo/dotfiles/.bashrc new file mode 100644 index 00000000..aab119f1 --- /dev/null +++ b/gentoo/dotfiles/.bashrc @@ -0,0 +1,235 @@ +#!/bin/bash + +# Changing over to ZSH for now, bashrc is kept here as emergency shell/posterity +# +# to change default shell, use chsh -s $(which bash) +# ~/.bashrc +# +# history -c && history -w && hash -r +# create custom env variables: +# export cproj="$HOME/Documents/Code/web_tutorials/advanced_programming_in_the_UNIX_environment" +export cproj="$HOME/Documents/Code/bash/bgit" +# custom BROWSER env for ddgr: +export BROWSER=links +export EDITOR=nvim # enable vi keybindings in terminal and terminal applications + +set -o vi +# set -o noclobber + +export PF_INFO="ascii os kernel pkgs shell wm editor" + +# but keep ctrl l as the clear screen command bind -m vi-command 'Control-l: clear-screen' +bind -m vi-insert 'Control-l: clear-screen' + +# Colorizes man pages +export GROFF_NO_SGR=1 +export LESS_TERMCAP_mb=$'\e[1;34m' +export LESS_TERMCAP_md=$'\e[1;34m' +export LESS_TERMCAP_me=$'\e[0m' +export LESS_TERMCAP_se=$'\e[0m' +export LESS_TERMCAP_so=$'\e[01;33m' +export LESS_TERMCAP_ue=$'\e[0m' +export LESS_TERMCAP_us=$'\e[1;4;33m' + +# clears the history completely upon loading bash +cat /dev/null >~/.bash_history && history -c && hash -r + +[[ $- != *i* ]] && return +colors() { + local fgc bgc vals seq0 + + printf "Color escapes are %s\n" '\e[${value};...;${value}m' + printf "Values 30..37 are \e[33mforeground colors\e[m\n" + printf "Values 40..47 are \e[43mbackground colors\e[m\n" + printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n" + + # foreground colors + for fgc in {30..37}; do + # background colors + for bgc in {40..47}; do + fgc=${fgc#37} # white + bgc=${bgc#40} # black + + vals="${fgc:+$fgc;}${bgc}" + vals=${vals%%;} + + seq0="${vals:+\e[${vals}m}" + printf " %-9s" "${seq0:-(default)}" + printf " ${seq0}TEXT\e[m" + printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m" + done + echo + echo + done +} + +[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion + +# Change the window title of X terminals +case ${TERM} in + xterm* | rxvt* | Eterm* | aterm | kterm | gnome* | interix | konsole*) + PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007" ' + + ;; + screen*) + PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\" ' + ;; +esac + +use_color=true + +# Set colorful PS1 only on colorful terminals. +# dircolors --print-database uses its own built-in database +# instead of using /etc/DIR_COLORS. Try to use the external file +# first to take advantage of user additions. Use internal bash +# globbing instead of external grep binary. +safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM +match_lhs="" +[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" +[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(/dev/null && + match_lhs=$(dircolors --print-database) +[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true + +if ${use_color}; then + # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 + if type -P dircolors >/dev/null; then + if [[ -f ~/.dir_colors ]]; then + eval $(dircolors -b ~/.dir_colors) + elif [[ -f /etc/DIR_COLORS ]]; then + eval $(dircolors -b /etc/DIR_COLORS) + fi + fi + + if [[ ${EUID} == 0 ]]; then + PS2='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] ' + else + PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] ' + fi + + alias ls='ls --color=auto' + alias grep='grep --colour=auto' + alias egrep='egrep --colour=auto' + alias fgrep='fgrep --colour=auto' +else + if [[ ${EUID} == 0 ]]; then + # show root@ when we don't have colors + PS1='\u@\h \W \$ ' + else + PS1='\u@\h \w \$ ' + fi +fi + +unset use_color safe_term match_lhs sh + +alias cp="cp -i" # confirm before overwriting something +alias df='df -h' # human-readable sizes +alias free='free -m' # show sizes in MB +alias np='nano -w PKGBUILD' +alias more=less + +xhost +local:root >/dev/null 2>&1 + +complete -cf sudo + +# Bash won't get SIGWINCH if another process is in the foreground. +# Enable checkwinsize so that bash will check the terminal size when +# it regains control. #65623 +# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) +shopt -s checkwinsize + +# No need to type cd when changing directories. +shopt -s autocd +# No need to have capitalization correct +shopt -s cdspell + +shopt -s expand_aliases + +# export QT_SELECT=4 + +# Enable history appending instead of overwriting. #139609 +shopt -s histappend + +# +# # ex - archive extractor +# # usage: ex +ex() { + if [ -f $1 ]; then + case $1 in + *.tar.bz2) tar xjf $1 ;; + *.tar.gz) tar xzf $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; + *.tar) tar xf $1 ;; + *.tbz2) tar xjf $1 ;; + *.tgz) tar xzf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1 ;; + *.7z) 7z x $1 ;; + *) echo "'$1' cannot be extracted via ex()" ;; + esac + else + echo "'$1' is not a valid file" + fi +} + +# Formats history command with dates/times +HISTTIMEFORMAT="%d/%m/%y %T " + +# Displays current git branch if there is any and also styles bash prompt +# export PS1='\[\033[01;34m\][\u@\h\[\033[01;37m\] \W\[\033[01;34m\]]\$\033[01;34m\] $(git branch 2>/dev/null | grep '^*' | colrm 1 2)\n\033[01;34m└─>\033[37m ' +export PS1='\[\033[01;34m\][\[\033[01;37m\] \W\[\033[01;34m\]]\$\033[01;34m\] $(git branch 2>/dev/null | grep '^*' | colrm 1 2)\n\033[01;34m└─>\033[37m ' +# Configure thefuck +eval "$(thefuck --alias)" +export PATH="$PATH:/home/brian/scripts:/home/brian/.local/bin:/home/brian/.local/share/nvim/lsp_servers:/home/brian/.cargo/bin:/home/brian/go/bin" +export GREP_COLORS='ms=01;34' + +# icons-in-terminal +# source ~/.local/share/icons-in-terminal/icons_bash.sh + +# BEGIN_KITTY_SHELL_INTEGRATION +if test -n "$KITTY_INSTALLATION_DIR" -a -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; then source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; fi +# END_KITTY_SHELL_INTEGRATION + +alias home="xclear && cd /home/brian && clear && history -c && hash -r" + +# Various source files (do not place at end of zshrc/bashrc) +source ~/.aliases +source ~/.gh_pat +source ~/.ssid_passwd +source /home/brian/.bash_completions/typer.sh +# Use bash-completion, if available +[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && + source /usr/share/bash-completion/bash_completion + +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + +# Sets Up Node Version Manager +export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm + +# Set up TTY colors +# pulled form https://github.com/lewisacidic/nord-tty +if [ "$TERM" = "linux" ]; then + echo -en \\e]P02E3440 + echo -en \\e]P1BF616A + echo -en \\e]P2A3BE8C + echo -en \\e]P3EBCB8B + echo -en \\e]P481A1C1 + echo -en \\e]P5B48EAD + echo -en \\e]P688C0D0 + echo -en \\e]P7E5E9F0 + echo -en \\e]P84C566A + echo -en \\e]P9BF616A + echo -en \\e]PAA3BE8C + echo -en \\e]PBEBCB8B + echo -en \\e]PCB48EAD + echo -en \\e]PD8FBCBB + echo -en \\e]PEECEFF4 + clear +fi +[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && source /opt/miniconda3/etc/profile.d/conda.sh +export CUDA_HOME=/opt/miniconda3/condabin/conda diff --git a/gentoo/dotfiles/.xinitrc b/gentoo/dotfiles/.xinitrc new file mode 100644 index 00000000..89775da6 --- /dev/null +++ b/gentoo/dotfiles/.xinitrc @@ -0,0 +1,92 @@ +#!/bin/sh + +# This is an ~/.xinitrc example file + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +# merge in defaults and keymaps +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f "$userresources" ]; then + xrdb -merge "$userresources" +fi + +if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" +fi + +# start some nice programs +if [ -d /etc/X11/xinit/xinitrc.d ]; then + for f in /etc/X11/xinit/xinitrc.d/?*.sh; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +# force XDG_SESSION_TYPE to be x11 +export XDG_SESSION_TYPE=x11 +export QT_QPA_PLATFORMTHEME=qt5ct + +# export XDG_DATA_DIRS= +# Start compositor +# picom blah blah ... + +#Desktop +xrandr --output HDMI-0 --brightness 1.1 & #--set TearFree on & +#Laptop +# brillo -S 70 + +# start redshift +# redshift -O 5000 & + +picom --config /home/brian/.config/picom/picom.conf & # --experimental-backends & + +# GTK relies on this for icon themes +# export GTK_ICON_THEME=Papirus-Dark + +# Start applets, daemons, etc. +# diskie +# nm-applet +dunst & +xbanish & +xsetroot -cursor_name left_ptr & +# espanso start --unmanaged & +# pulseaudio --start & + +# enables AppArmor's aa-notify by default (supposed to be a runit script...) +# aa-notify --user $USER -p -s 1 -w 60 -f /var/log/audit/audit.log + +# Notification for Laptop Battery +# echo 'export DBUS_SESSION_BUS_ADDRESS='$DBUS_SESSION_BUS_ADDRESS > /tmp/dsba & +# chmod +x /tmp/dsba & +# /tmp/dsba & +# /home/brian/scripts/batnotify & +# +if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then + eval "$(dbus-launch --sh-syntax --exit-with-session)" +fi + +# Start pipewire +# /usr/bin/pipewire & +# /usr/bin/pipewire-pulse & +# /usr/bin/wireplumber & + +# Start i3wm +# exec i3 + +# redshift -O 5000 & +#feh --bg-fill /home/brian/Pictures/leaves.jpg & + +# Start bspwm +pgrep -x sxhkd >/dev/null || sxhkd -c /home/brian/.config/sxhkd/sxhkdrc & +# exec bspwm -c /home/brian/.config/bspwm/bspwmrc +exec dbus-launch --sh-syntax --exit-with-session bspwm -c /home/brian/.config/bspwm/bspwmrc diff --git a/gentoo/dotfiles/.zprofile b/gentoo/dotfiles/.zprofile new file mode 100644 index 00000000..415f785c --- /dev/null +++ b/gentoo/dotfiles/.zprofile @@ -0,0 +1,14 @@ +# Ensure XDG_RUNTIME_DIR points to the correct location +if [ -z "$XDG_RUNTIME_DIR" ]; then + export XDG_RUNTIME_DIR="/run/user/$(id -u)" + # create if it doesn't exist + [ ! -d "$XDG_RUNTIME_DIR" ] && mkdir -p "$XDG_RUNTIME_DIR" && chmod 0700 "$XDG_RUNTIME_DIR" +fi + +# Start dbus session if it's not already running +if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then + eval "$(dbus-launch --sh-syntax --exit-with-session)" +fi + + +[[ -z $DISPLAY && $(tty) = /dev/tty1 ]] && exec startx diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/bug-report.md b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 00000000..5c646468 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,48 @@ +--- +name: Bug report +about: Always include a minimal, reproducible test case. If I cannot reproduce it, then I cannot fix it! +title: '' +labels: type::bug report +assignees: '' + +--- + + +## Environment + +```zsh +% typeset -p1 VENDOR OSTYPE ZSH_PATCHLEVEL _autocomplete__funcfiletrace + +% git -C ~autocomplete log --oneline -n1 + +``` + +* Operating system: +* Terminal emulator: + + +## Steps to reproduce + +```zsh +% cd $(mktemp -d) +% git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git + +% > .zshrc < + +``` + +
+Contents of ~autocomplete-log/YYYY-MM-DD.log (click to expand) +
+
+
+
diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/config.yml b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/feature_request.md b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..edeaf1eb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,32 @@ +--- +name: Feature request +about: If this template doesn't suit your needs, then please open a Discussion instead. +title: '' +labels: type::feature request +assignees: '' + +--- + +## What do you want? + + +## Why do you want this? + + +## Who else would benefit from this? + + +## How should it work? + + +Given the following situation: +* +* + +When I perform the following steps: +1. +1. + +Then I expect the following to happen: +* +* diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/workflows/lock.yml b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/workflows/lock.yml new file mode 100644 index 00000000..73acd9bf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/workflows/lock.yml @@ -0,0 +1,20 @@ +name: 'Lock Threads' + +on: + schedule: + - cron: '30 5,17 * * *' + +permissions: + issues: write + pull-requests: write + +concurrency: + group: lock + +jobs: + action: + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v2 + with: + issue-lock-inactive-days: '90' diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/workflows/test.yml b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/workflows/test.yml new file mode 100644 index 00000000..1262befa --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/.github/workflows/test.yml @@ -0,0 +1,25 @@ +name: test + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + test-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: 'true' + - run: ./run-tests.zsh + shell: zsh {0} + test-ubuntu: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: 'true' + - run: sudo apt install zsh + - run: ./run-tests.zsh + shell: zsh {0} diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.gitmodules b/gentoo/dotfiles/.zsh/zsh-autocomplete/.gitmodules new file mode 100644 index 00000000..c08245d9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/.gitmodules @@ -0,0 +1,3 @@ +[submodule "clitest"] + path = clitest + url = https://github.com/aureliojargas/clitest.git diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.img/alias-expansion.png b/gentoo/dotfiles/.zsh/zsh-autocomplete/.img/alias-expansion.png new file mode 100644 index 0000000000000000000000000000000000000000..368c44ee2827644538a517bd69c8dadc033f2acb GIT binary patch literal 72230 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≺oo3~D;Y}|#tDdZz;D!>pw!2HQe0f$X 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±66Vk7V3+i-+z>-fGHpXvj#s#b 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

?)*H8j+S@>Y)m#Bex2wMQja4xoyH>sp53LWul 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%0DEp5ip*m>jLk4NUt#v1U=mp}qCc2$ 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 z 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 Ud4NCjK5^o%fvJAwEtjYN1@F+bjsO4v literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.img/history-menu.png b/gentoo/dotfiles/.zsh/zsh-autocomplete/.img/history-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9eb2201befeb79ff6cfe7e80007dc2d411d136 GIT binary patch literal 188881 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�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 z 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%0DfiskgMe98pKhkj*yBNJuPs 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/jY57;@M8%8!&F*Usd%j^n3 z_dbG;P}=q%E&;G&99^^wYyT!poZomth5#^;c5#$i-C`1>5B3BtSA{iQ?2t}#Op{qu zv)|Ndh?jfgBoakTTY(*Z3#MZeU>0&dDXO-mp$c{aVHI^@4vJqp@$YdM?S+Y-gDo-U zuB!(?DuPQ<_(HGEYEhzMv226F0oY=fK^8Js$4}1-9MeWGQjF=fMrO|Na1j?6_Er2O zz$u?q&Z-6FXYNPuE-_slFj!-ZYhP8iq;Q#2ylU_CE7pm(B0P3$L06^3d1#_Na`)X1 z`Dz5CWe{x(wWwcw#!~293k2NIz7l+lY~Oj=k{(wOyLvQjxj^V3HMfsLt=2Oj70nkP zEk!8GvXqi-qMVxtO+vuMCThbw=!zyOH&t@qs~) z?91NEy3H<77+~g3zgz2%?#^twwnaYP;ml$CQ&24B^sFB61Dv4(-6DcIkEHWSWJXa} z9c82Y;#L}T-Yb>=SY*oGt|VQIk^t`zUX^OjK1O#6$SLr?b;;Loy|CGBGU^?|JHz`k=T~8s{nOD*s-j zSeIWmPFiVsIwyIf=n3nni}ePW;R~vlha2-ni&Zna9}0|QkiLyR?{d!ZmNMVD5%k0lWYoxl|&50Mlpd|D8Wj`ZM}q0-Hfql zT9{}NJ$yz_&joi=a*It)@7kS-juuMol6v_JRjccmYrvKEu9yq4B)H+bArKuSbdtdS z>BI9PqTbpgdgk~U4g@%*Qk_t54g6g(ze4p3i)Rec=xJyhq)6sz1L0tA>*37JmY|g( z*&$b^VhXl*8?;LZb=4}l|9Z8$@?~wi5bb;M_u%juRqb=cSBhWYnZ|8=y==Ze>=OIL zbk@Y5oQ;i+I$4KQNj*6BeFD@u_Q@p~~h zV}Mv3Fwd1S`@W|K1&a#!40f>ezDy^6ZFVg)L%JfNsR7X}u_TLRS;@I#4`f*MTOPBB5DJ!T1EBIoSNC$EJBNLi5u? z3(9^qZU#HNZs&a&TJkZp^g%mrO>)B1?JOR;c;>Lm$6-}^Vbwf$k?YmA=CrImvi*|< zd(=C=+C+7K9!uQmR$V~bWOlyHhY$da`QMW_FdHekuFv|M1H{7>2u#%ZWbb+JI)gQ6 z->!S#OWO@-X_C1*T!{68!<*iQ|FQNO#y4Sgxax!yecp9@aJ##(y(toZuiHNzK@dnC zeEzShq>_~Bqzp6}aaW4DL_))q=I9dXzvjAx2|lzUn*p?OcVNAZtWi(PeuNnHegWv? zU|-EWy-fxcBlfEwJl8AfO*^((fPXtvh?W`S9V8{n^Znk*n4!Lww8P}C=cM^2?=OTX zrO_wElsPmCdsAb1W^5OJ{py4Ucnlj|ui2-P8AQS?;5=jSIBG=tsmyfNOQwe`uyojjQ6(9* zmA3->{&WH@34{Li9%xEek|$#JcE*oAicxPWB*8%`I$uSbb`Kz{9z$zlL(#Eat3DC; zfK)K7w+@A`WvqC@v{QwQf77a-mkJLbU09PASI-{wmHfAK>~t}rvQJ^WAqW15g$glA zRAx_Say(f#%yUW{)sw1&pHh0x85SYk^{H-}X!@awJG^b_`$Ub6-O%~%sOV9yl&3_Z zyuKYym?-j#!z;Jeqq!(2$B}pY-&K2i#Lk~@{v=9i^;t{>k{@sp*CCTm9`XN)x_-@T z(i|185d8f}sR;3Sn5inLk14&|ezv9?|LzTv-epTCh&7skzlSx3MDCUq1;v9YF)Kii zvjgM>qZ!$rUoSK0_`9NaP^1MR`=|g{U=rPffw!vRJPF`oC7_x&ILc|t$Ba10K8LB$It5N~;5+PYq;pG0oN(o{4UEO{SJq4vd6! z#Lj3kr|C{Hycfvx9P1Eudog1o zMYf~hsCD}8&c5pRg2uE>RU2E9ZURj1!p|%y-7R5)@PAB8p5yCTX95+P(E%@VYONqa zh>1ll$U$Lz*z|*iClmW}+(BkNZ(Dpl+PlHk*arF&D>i04B8qs%6U~aJSqU$o%y#p1 zEzRVo52x$BJ2sf4JliRl{475T2ekm9^bUe+K^RP!_^yxFfyxCicKa|HtqjK72jq={jpz{T%g z5)cXlHBB0r{^F=rKJ}gSX&r+u(VfVY?KrBP{hof-6J0?PmhMUKxL>cGC-|4kKnU0# z`G@#4m#MKuOK*FZIUq7-6N11S#G#$>$*ah_UPLgQ!-fQToBINM@eZOn4n1L&?EGYD zR#xUH9KLBdMO!*SA|z0=qxIagk!PL*V#X3M%E1MkdDphQlizVt5_j~$SF})nH}R5}KRY#L!0klwqr>YQ$4p9IAh+hgu_FHm zQ8}7HURCjW1B=l_zGoAL{NHN9e(-W}gkdu0@1u6REm*J~Il)ij5FLUJHRGR%B*r-9 zCNI9~QVL)!!FdfcPw07J!qrH@VJ42ipLib5JvPH)6@5db0N6;AfruG0YQ2x|i;~BX zHx?L7nML6t&ZtfG@&R95Us6S553~+xfOPymgwn5;Kbdm)L2Rk3|J`>b+yai(gzQ~T zRLgq&S~@t*PofA8Jt2&&d1KPN-oj=}M1E|pr>fA2<2^~l3jinO9p^No%^Kx|TB6u) zzZ?8i$idoV4haAZrgXpA-;vZRN zw;v7<;!!T5%9cc3Yuz3Aaza2c8PX>bM%0isD&TB5YD6BGL@r# zGpe)99v_=b(sHr7^8_r-9hG*`Xlzq*Hpx>74yO7HwYIfz6}}Qps*hDZ2@C5_LyQ#O z{Xl&6e8pUvKvqG+Mr78du3&|tj?U}e9qXI_1rgMbF;{S`;T2qekUuWy92HnWPPgxC zwmLwmPRHG!-vHEN518C^=UJ%Y__~J>&<}v;jMgDn#$_a2phSXYga+cJ-|kQFz(5iu zoAtWO?UR_sy=7^_&2mbw7LLKEjtY+LX0MzVR3C-fZX+8@ma;zmF)!EJ@)G>kMK81fF`pFYA+C;XC=3!-^u9nGCZ?j}arI1(DI~j+fzskoD zoeO+D#_$rNYMa`!%{)o|rb9aGnK>He$RYOp7+o z{|5I0KX`i!bnoIl?ul{ru)^gV*kdrzz>DZLi2B`c6&Mhr$`f;)K$LaB_*17`?(!Oh zf3?N_Q<~rT;yS17{y^}l?EI60C6W4V>A z=9_B9!F{S1chAceTe4MmJ{i9Jwcg(Ry(y;PlZ~Em2E9#SbJpOw;e+h0*WTWpF9$EY zU-Z8xQ}hY(7}!C?%fIb^{p3?~i3T%ob7$Ei{-gPyA!zlk5x5ERf(&5^M{EI5?2hyCAdoXkn`XqVVm_j_ShEJR3E-$mx8yKqcX|( zu8ER&O@D5bMWuz6M)v)z+o~zaXmrym(Q;`f8|9MkD4=gM@y}Fuf$2qPF?M9Mi`Cpo zlzC5E- zU=-yFkRe$hu~;aUh*}5ld*Es|AFczKO?bScW=7O2O5n~ng&HJd4D-pbXY4Q?c8sg~ z6caWx4i8C>*pAi= z6R#XO=J#-uv-GbMJpakp^o7vly_v1(aCL{ZKg#sb85rG+v9ZOeaxVGRM&r&d4WuZP zJhF_*!p8YSk7y|aIF}x#QRz6TQ{|BNC&>eyZ#nV65bk6SHzhoz;n1)$?#dUN!X^TB z%*RnvNYzDV>dDr?V-^Z+3OuH$i8AE#j9w3eTviWx$E}lf z@QlZjVb>G7?CQCNH?0{=$4(8*GLD|6Kt)FCmxqj?gE1f2W9h;PYF+Rka)=d)SmFhl zVmgzft~Iv1Z9Ll)gjO>-;xIlS7XMK-hw&Ma(Ys0dzBt&RVSsKL91pv&G(f5OH^EeH z1JlUa`G=BmBr!sTgiFXc701|W27+}}HCR3&j+pdE(}mKNC$n&5=o7F?PE!`!{O;vs zSlc0I<0kZm2)hFp*EI01_2NuORO9Bz%nU@`Y8-MCt#-!v4{0uIjmg}q+>Vs>n(7cM z`Y-zI7|yCiNz!hqmIX6#7m3gA#2&=t5Mf4AW_8PP5$&>k-Py^;I@3Ty~r(&UR)-T)eoMn^o|Mx&#D< zFjc#{218R|rn(pC=wg`7-~J&%vw5tnVx)C`<8#M}I!xaZjOB&lezN&P)QGd}eT=HC zsQzP?BIS4dc{ksX3CCb;l(-RVw&kgiY5<$dCkJ& z%&Y_8PXpk|Z%l7yS4pKQ3yWj>FjtG`tcv)zVu%s0sE>a55!+H@eWX=u0*)4TQ>k_0 z6BI}*5L~f`q@=?={!%^WgQu!S{@JW&RCHoLW39d>Yufl=mw3<`R^8@)sO|KC0=}S` zE9irZoECQc0IPhn(P&hi^v*RmAQ`DPYnRDB=~v3JUC6KX&n4T8=Ce3382Oxe_sMt2 z{^N6%v(ps&TNM^FPA>&_;|LvMGw&Sp^SXx&w08Nb7Fe%^!kHB0xq-gHwA){D zC)2HKC}F&9E16Q0m!PZ>@ZUp)^}Nz*SElW7gu(XXZSF_Oi-hDX$6rT(xX80Rx26e& zUZftsKQ7EQSzE`9@-FMJ6A*%eJ~wf*e$8~3e)lqz!MPQ0?yVwexTemHl*d+P))$K> z7mY#$rfJ(2>qs4z9LI^mWQJ*c%)xS*j1Htxah~SGb-K-#u|QIxCEthC=L=| zQc&HQBo6&0+TC+h32o@HINwfgjXUoV_%Uv0}9qG+bEQ2FrexUgsB~hBg(gV>- zPk;dPbQ&w7O4Xif%!RISfl?>)E%xIFm2@_J3n1Z*1FkGO=whsGG1e0R_>XDBwIIyKcrLvwHh&sfKti?5N-bA$_E4Mv9Q z`otavC?2?)qXq+P`ESr<=a?arxt>p_V`pms`#4kr|DXQezBC~g<*4j1MxI9i7* zwx?Z=o+b6Wt5%1*A-9Jm_ZVZOZHmVnA-k;@7j-E$I?5e^BSs}akCXIm1=(FY!t+}3 zyX&Qh2V<6z$Gb$}`+SqaxlisibfaV~l|&~Vpx&;c&eK-x5G7xJ{7;)TdFZADy#9Cc zFzNFOMJSUW`4y@i@+F2?9>0S6$q=od)~wJr}KIv)h_EpvrnZb-e1g`h5N%o zm^E_X(b4A}RY0h-#hvm(38w@PLvGUZy3K%TF9AJgul1Iw z!#Ymp1#fj|{c@hnXSd;pI$By~74rsf2prFp+q%D{GIytCZOsf+vnJ@fS6Kwoshs(5 zxr7_M1`wJ(Rpv<`wtxh@^=Q`+8`iuY%g6MMhs@%fnqLRuGZ_3#Z44y_^3&ASqI;EO zWP{E$=?!>8HQESVc~gc}xa}{wo>eP&yfvQ&8^SNiTSibn^;^*CXjVUjX={Ie7);{BG9U0|cA^q@wm@Fh{1s%68#qDm^F~f5=pcQ$)t;p- zB@*#6L`_3$S34AwZR={ffkWm;P6J6p-=V)SyfXH)(am>sqB1vA`J_5Je}**$$Q`z$ zr&joY1EtB|HS2yOA@O26<+QyNmQ=o}+qc(s4xeg~A57bfp+e$Jz%W81R!T@nUA-m= zq}MRTOZ)oUjzNhMWS!fyH6sT$EU`axOgi@VX5i^OMNuZxXxi4#FSOIQ1n1iuPbM(f zjwV&8@t-nEZLZ$H^<#H8ThE&Tfak2?0T=SD;awAJQ?qLuTK4PJ=c6_rjA zJHI)MRidT&?lzHxNWbab3{Y*8(eK_99?oD$We+nxdgZN9&BNq>+N(_y6FpJtiwj)m zxySgMF-x&ivJ*;e*YXI+jepYHQixbdTG}IXj_2X$O1xp!)48xA~VF(8&pR6`;QZ$g7fDN82 z5Th7b3Li#Bo%A6&G*pQ~16DL^2{=LR8u0R6UG7YRhmLACRaks2LWd5FM!vGia##lk ziLY(2C?q3O1Amf5Z3$!)u1CO+2yW{h9#(*n1C5##NvlhiLPeIsFEm z(4uH;RVXLIT!NNkmg@CriWJF>6hNYz-i zO&Px3exfjIP8oO>ob0~cj)0H4BFG)-_3c4Q zaA_pRiV6%-)6!&^gl924Bu^v1y;kb>WiqIwxBNi(urdOnS1`nyU;fJSP z)X!g}r&n5#!8@-<3KIF5Cd<3XZ`tPvU# zke^~VkY7=r%Uvar8eE z*0?M5Ou)GgDuHlneAh(r8d%HJG(p-7<%TjYIe2REyAsg&HBLpSGTIKFY#$TCfx~r8 z`6j7O56j%BN)Ts@1F4{XS&b+kKK81#u4|Us#YsoM4YmE#X6`7KpJ!+ca=MNLb*7hA zFGjkj9Gl=ds-hsSwWBvD#v@B0NrK+qkf4~)47rgs)_AWDWT#gZTgFl)gs~3|r@I^W zIS=wIt|NLbBBtn0Bv;(GsN>h)BXRdBn?e*|ltH1bH;0eks}l=yKi{nooA zyEf?MiMbza(UBTBFXg9^q&!4siCBvV495_`b*R^&bV4EuZ;hPLCWVZ~F+!0^?*T9Z zL-_eu4j9M_mj0X}P?;)0;Ynj-N$DqT*w%}NV{KU{yG3C8Psv^95(7vIMbOVWGevHl*#=E!+n5@IvPvz0YarH8 zQ)C?o%5)YMlc1xfb9X+(u+w;p#bBer@R1wLL@p>JR9I|`dPTBnWV%+OOuC0jt;Hd` zL(!uGVA^2X?URq`$#hIKmmGqp zgQypicy1a>I;4Erk5(T7baak0f@uRZvh)`D2R=<+aadrI zWWBsHBDwYy%_VfsVOLPCG~f3c22UQfqh&=qcK{?eP@tl?3>j1+f>0gZ*u+!>_5Jfo zbaq^45WHQ|s_j<%n668r^+^wG&7#OB9gF@BGcD1*R>rS|sHGnO)5$;9V&IEiu3^++ zlSgTcv&2+VTwG%fF&3{W7c}s6mhn5trgKwPQzLLa)xK)QYynU*`6P^PtFVXHn3IWH z9o$744CbP>z7 zN+|^!wF11gs(-E3I(s%+19Rz+o~8HA>15-(pKJv(|@I(F%HXU zDz3^92B~s`at^}!QE2n>P9sXm7A3WKv&XefAkaiLAe2Z~%={gbb~wY7^Krwo(piIJ z17(Qhz{xlOQmE3jrxoL}UF>_=R@5KBSdm|EV2~4jrG^yF^{TocAZa&-A?Vxaps$x=*UgA7R7L-T zrh=f7ao}C4I6e-pG@0mtuS>DQu=~-mmZN`&(~CaoR9kQdqfcfG&$C;?9$zj>@LsHS zja&(C6j_sR!;4Jh`PO=RUe;+yk5X{Du@R6Rf$&y(Lia*Iz}XLkBP8gxmkvS~`p(fg z(37?}G>Yy9I~0ZE^G$AkdRPEB#IRrbDQjZIpdjht5abd0GkAXKQW%A75b!#S_(%Mq zbJmOQ;i7qgY&hx@$H|h#{O0sLt`a$P5CREroE)@HIlDVzO=KHNQ;Y6(k$6i&kyhKAis8hP`F@$qSSmNbiz zIn7|Ew@ZXC;}0A2ta6a21IcdTsZ`=wVtg5@;ur+<(nl^hax1yyQyDO#vC*X*Gt@d< zRjEny=)2M6mP6x7y%`LQ@-y1k9UoX4P}-6nh_yirLGrVN!NxduQ2yl#mevH`QVBVF z3CD8`qA>cPcNl8SJ~earhQn5)IOfUh0Sn~&(<@Op#m1t$oKmE`Dm!vXf-f?2a)xu6 z+P@doE}Np)!34>UtOK?zVX#t8Q{-?omS{!c7hM=`+G&_((1!MLSaS%5DDZE#^W>s) z&b$@RJTpUj;f1;=>w^^x&zRk50y_T*JBAsQ7a0LB8*|}R$=gqj&l_&h>$p^5!Cv6-#(ocV@+8zLXT!%bj64w9zXGY`;vtNbJ+;f+bdz;3 zRI^PM9Qn>7qHB__#Rk;n{|FoBRu0xPg<5mm(wq-M8YDaBv$9nyfABD~Ps-8SHP2xM zasPt|4xgL}m8vnI!CM*q4wQ|%FRudGR0%vO>fFLuFvW1!FVrcjMu$GN$JYZfA-yJD zXbh_0Uzuovtzr#Gb?h#GhmOvuPh2q==`GttnN5*++|4_jkqIbUEhpG8JRqbSae2b) z-8&uBKZ>r$U>Z>VV}js>7U}O+Az!cQLALFSq-HyPg5XQ~Eq;l7k>J9#kd$j=v^PK=;@i^ZNv0C`Hf=aQ_R8NpSE1ppW=_r=(y}b@ z721BnHj@~ME-l^yRw4q=u9DT_4r;R|Byg6&v_Wp)El_!ZKgG7l==Gij1D81LB(ATa z6v?FJsSm%0-@8B#ve7cZlC5DjN@BZ@7#-5Z8_@yS!o^osTw5b$VN*z{HMKi< zl7*0klgwll7a8k&03v~M&^UfKQh&0O)O6v&}IhK;pp_C>=TrtY{|251vE9f(4o`hwg_ z;#7@MNWz?IP2Y-!lzQDkC$qH)&&;#R?pm0`1|Yby;d)So5Ut47j>(%e0uKzVxJ)ua z62;IdSAqLNLAq=4b7^>{TT!VH{aCX&Mt#oi5lfDl= zF>OtCmp9+nC8;gM_>BfG8W)B%)J{=>4s~>ba}h=L883oX#a<9jw4}Z}THjbcp$)HW zMi%~LqpH9XuL0VU{f>(K?HZF0`pDY_TJTR3I!DZP<0ZSn1AWg=hn=@5WHO66Xhv+e z-}S**!7%<0%ToM6{{3Zmby7T-Q5iEyrky9?f`cwZlzLl*Secn=mKj_fRCwaLNFbA6u&T-Peyur@*u0j9 zCkMrXrTm!8_Y+kZ_ugSewo8^8a8?JeHUvr7NX2^JvGpn4K*QWf#pgxcNGS(b4SoSv z%`Qhdj4-&rp>qPQI9pR?29K&f&TIW)zVFE2embC17NO3Dn3Y)tB#nAr&82(U+|{3` z_$eYqtQ&zG<<$l^BKKGIU}JzY@_Wr4r`?C*$%SWL%nDNT9?R595QRt-ZO7V*Zicm} z`Yn?LEaz@0Zi?wRyi!aEZTwRxfTT^ZqH&C~XJ%vQODAo}5i@eG30P&7@#8vE^1AT0 zh3Ho@EUtH$nugMB&TZ8$ISXe+HmHaw!`pLVAFn>~nfhdTF4-$JRmV>C zT{~h6*=ye+mA@-ZV=K{>H{BjL-7qoZ#|Pk5A(PhA7H?~@5+~DvA`?6E-l|G`JYD6< zE(_$Dm8}$)R`caI*2(F>&FR|8>G{anicW8d%bnTEUBJy-(aGD$%G=q>qm7k1(aFEi zv8v$By~EA@sZ;QtRbU^N55g^k$j(pD$#UE(M8PXU*Db>4E5O|@BE~Bw?=GVBDgK>R z%#2sUu3J)~Q>gI4kc|t-*2!noUD3QwtZ_u<6Hc??UHc`BLdOeBQQGyLab~lm{ODEQ zX1imMyoM_4l)x!wpYOa8A^>|4iJ z{27-X#1y^uWX-;dkU0|Irt%RE%zLjyW-!<+jBXt6yT@pqVT;bJkN5-9X)cktw)tz(SEQe!;(MgeJ zbLscjBB8MV4i1iA{OX3zVJ6IE`>oxr>CtrmU9~T}-HRW0t-DPkci8#UlI+xeBfMIn zzM==vgVw9@d!@Ov%@BNJ0K4RI{L}#|*lX)2c`bkfH;lotO7p~q9X{7r-$lIHCnjsL zzjTzBvd(|;&)$QSC3mLJ4${*l6&kNA+kC7xbuFIv7M33iRJV2KY%3xtfX>D`G$K(z z_M|EBTB+(@+@}_^F6eL17B+BTnE0KN29AmzD+9qqP^if_Y5VMNVIm_m8i#!QJ3)m! zbSS%2s`&VJRv^XU>27|$ui}qULM6FXh*!*rzh7!bUv~%@z8v!=3C@-5i^b%L)l}MP zen6idTkq$Z@66h_cVROP&3GL0o(x4)Rm;>$gw9-)t$`X9$T?w66s4jycJH_b7xKvz zg?6YZ`ogU6*}%^qB=AQ7*?3&+T{+(jI@x{ECLqnbS6ktCtmSRUp(zZ;+k;=SPdqre z)`p-RtNV!7ZPLr!`%+KKi*i^3{Ez(poMHFgNaR!iyF8!L$DutaRBE8tl1vyIU54Wk zS}2yCX%uZyHv&nitz^PqXJDF&aORnWCq2RS8Wkw3J3{T$xhxoJjr@MLVM!9qX1ljB zwZ+>|o=%R)a*P{S5|71JM)=EtsQRs5SAo|}iTGL_TPenp+Sy>er(431L5lO~S!Hfi z0!gM>PjCLLV>&@*GAA{Zf?n;%YG%ToF>~xHSiXgwVKaG^3+tY3Sz2Nes)(_Ze-~DY z-{4IQ^DdIbIOamYM{RGzGn<)f>VKbtHq^RCs4>D6~#LNHfhP| zs4C}wqFN*rk})}QozTrn10`YwFk7dJiUI-bEFL@})Ta=*b>D)JM9zjYxy2cFGfg?` zzei{+wrhMoN=Au!at>~N0Opp9NmTt5P(`DU$D;kEd8}5M_KJnhmEUG~*iW*MJP|)1 zAyspMk%teY3>GHw$kI_PPbQ7cn&pfbgmi;&+)%g$Pb|NXY=f~B`TL9jy)^D3v3>#o zYHQvqw<||Ic6~mQDQb6uF(~^_B+C?Lr5%oGoVuHnTpAq0KGFi+)0wU^}*i z9kKkANMzaXFQbx80sFbbdOR0)@5QU>2vJ@cMBBsN5 zZDm1isx+fo;Rn#Oxur!jtD>6tR$zGTg(1+Xnu24~uztrgw2##HuMQ2`Nzwz;ICZNb zVOx%;%%HCd|M;^j@;js`CV`A5n!3CRnA=&61&4#wyo>!4so*nut@@;9`HiuHO|T6nCfLXZ``2K0(!zSzbUp2 zDdtw!?AFl)cN|8S=xbM-E}dJ6wL+Bnt_(R-UQSVU$x>mOi=oZlv?f|FpD4Hqe~bh( zFv`cM{Jril&u~t9C+}%W@@}ei75x3w0Tb-54Uag>VuDzyD{(?Nt!iP@im0biiIMEE zh)-?C8Y6;Sx`tnq9qG3S>mz62|JrO(3!ZIdwe(9`SDD!C^sya0gA}PzVTd?pa74GPweb1t>;UF-CG><}rQ$(itc9ai3A^sHNSb+*UdOKRRcCn!ILjC2XS!5N!yyIFw$#YxlUGOFeeIdn&zuqwDRx@;w6 zK9;(;0JJyIQCNkAZgNft{&5K8EX~Hk^{pCwN6lAc980q3D9)P`3D6F zwpgte3on&9X9qxzRFEPM`<6K&sAvl<=%I|ex`3KxYQZ~#(*01@ z$7yRjUW5Q62T|Y+Wz6Yhole$rInf}HoKCQ4dK3stqDCYhN?3S|2ZG67DUeBBEyv-&7;q19?OBhfV4})$cGAUIkIcv1X)O%fiW1KND*vuPT8lfi&*mS zhDH<#u0h7$tu(c}vW^RcC$Gl})SdSclm}Md+pI-J9YyKK-fKm_v{>Hyw{A2**&H6?3%T&cP&8JyOj0pUahNl2Tkmd zj<+cn+|_#yAnb!4qC47i{Oi0YV)kFEJ^OC+6g_-z0CNPMC9aeW{wlr)$^YE@&wCsK zK7JblV7vw)nHmE@zxVgou_@gJZoR?e!lXBwdSvaH6&H226?fg>Vq*o#hcFOMXKBTBtU|MzI+Zq#G-PRg%ajCr$bqebdxfhLm2?HA zVH#ouXQEYVpv1*FIAZ0v^*Xa3ZJOXqWt!^FV;U?Eoiyy=kg*d%K2>4I`7YE?2({O$ zfc>sWR&9`u2oxU@WK#I)2VOk_G#=ZrH~{?{xz?<-#a7U7fx3Tvxa%>i(%y0rhD7?W zUKgCRSOiZPh!CHc?IoObC}0%oUTc0twSdU|&ShjHDNNE|YKYRP3uTvYG2i_-A+dJL zG@ovF;F&rahhEhVxN1lC6#<}hx(HR=&L+0%O_4cp!Y^nE20h9r;W@IaCChgS^)d16fR1$mx_TFrq!;&vA!|tkL047Gb#FY6PCp$U{dCDRC9B!QIX?K}gK zx2AxVNcdi;!S@FX#V(4tPp5?EX^vC9IJy)Ms@1tha2=@^0eG|`yT$oRNC^oj*cZr} z$D<^I0sUKy7O%*E}HkIRDlXJcarY8+^E^Ex+3fGPnQgaLMpfGol6R0US z*K}&!dzyIRS4hiI`U6+naLQOiF55yYO)@YkzvKiiBQ@72W`7e$Dr!gKvVd+2Qlbv_ zA`$w^O=kF(P(fI2*+B>w5lps6LHrB2nPV61_UJMfT-wk?jwu1VRKX6QDH&TRV-?nu zCDAQ5mVg?DMImMi8pjA)EZ>J(KD2Kihmh;IcXSFXzPYQrHu~@5C@>%>z8fuJyIBk~ z6p!3lLU__s{vEACm_)up4J4^cpA^xv3U!i<`AnAjjYiFe!*V~AwKR~j;T^zBYe~A4 z4m?Z@lFD2PLT&emqu>lsECQ!E36q!9kqxooxQG$=h*eV0bj8N&N{|t8(IQl* zhT}`)7Li%&C{v#nm6cTNSQq@w04RX2mYkI?==);)9g^fhmS|ASQ>8N#HJjz+x?BPV zJz$krwu=)_7o4M7$EG9m<&9F`BWWL_#2;Q}V^i)uBQ4k1E$7J`w(N^F!A9(%46tH# zFH=H%gzS&X!c#Mkc7g3`%&}V4=86z>p>v2r&%Bp`{JoWv^-|uhnfMBiqqYLp^Wve_ z?D74gA*d7bZrjkbxzSe3j1+;FG^p`5DKnl9AC4c?xDonoAkzw+pAm+x)VP=zJWAqZ z8W{e_S1E&eyrQJ{F2FOEXk;!ix(?1G;${C9;XMLn96>4)D9s7z4CdE%R5o@}#lHcA z=imnyTjwZxCyu)eD%K5g4#vbT?$nfUr^0gIV^<_Ff))U((OgC<*El+(cXpM)7&dm| zV^!Iu@=}KdeyG6sEO(A?`>u=z;S~Y8e`9|Z$z_XctN&sItQL*v>9jaSgvNB?16XW# zc;k$GhxAw+C)(s-%P|H4RVgqUPKlL9eUM*FFB#MR_Z|r4E^Y{nMpp{g!Ga<$dDb%1 z)Us~u6$`B*I2Z8JI(o*rCgl&`9}PVnIN%_X70-6sCRrB_&hi<0vJ1dLPQQXh7nHm! zdT+mhi+y& zcBe8lrb}X{t7@lfW~b|JryCGwQrtmPE%GyMb~8KaiCqLU1+)4-y)y%dvqKECBY(8v zEQ~C^05bBE)3dXcVN(igvr7zf$%tb!0(0C+`e|2o(T$z6Ign>^;7nZK1>X9n_#KjUuJ3z}9VOhu$Q}< zFv=!oc;6-L*pBt)9_f>>=^<5;zM%!p#g{R1pKj-x{Y`at?-8Aq-H0-jox@CD;-#(%Yk#X^dyDP} zF`1{)Z2l#WU>*b$LvDe;4~QuL5V7}t7Ui%Fv)1x<)~;Xtqwr@dnzR&;w}!+7#|zt6t-g+Gsv3u7162293%h)bstXoBbb>rcdK@qI;mx5C$QHk ztk9b(Osof)%W^bvn?Boa>Z-s@3}{0};M8DZ^H|J0D?hh2#f8DL8jORx50+-IOTQmV z;A+|iO3yl@UeIAhDIcrXxp9BP^HYge()jxQGzlr9e+voEN`EafEH}(%`}aG#oIl#P zot8q{^MvhW^?gd0!E>Z@>&S;WejBD4o>r?ZZpy9ml)O{p7lEXQeGjz@k@mc49jS;7 zqYD@)Z>v3pX`TR;ApO6~Juyi>`35c3j}*efz8DaI}2=%2aBP?kSl{GUTc3{ayZ2>TBP85ok~|<; z`FbE=+uM*zD%v4{)=5Kew8NvlNm_6|aL4;QQa7D`7N_EXoMAN@Sv9zBH6ekPz6l$i z@Q+|f&CNMg1$A0X3N6+=O&MvAk8UTEfnJINKjAa#pG}h@>Ub2o3J1}2Tb~Wk+-@MQ zIbanHTT4Gd&V4dMKZDC@3Ou#z!4eAR)KG9j`tYrqN(>c&4@tD-&VepsG`_?6W>&b*+OsYx8dPbXA|OUt*r4&BJS^bwO( zIQ~^BifCNDm`nJbkms&AbXly+9bE%w;!9bHf<|`i+VKcHFK>v5!L%;I;(y&x&e8h#H z2SRKS1@n#8xV5v4$D`Q3>RnKDhKSIWmNZdcue@1$(xm7b>l6YB*Yf80I_Q zyAe+%_!sx_Apo?@$blIatRNdO0Gn#~gE@3;vlDdBWmUn9dzyU`PI23v_EUT4boYQ^ z2rr)!{Limc5?@w?&}d4DNB*M$UNhEXB9{itqapH2Z)y({n>muHQ|d^5?CmLrwN+Bq z#kjBLioR1j?6ILnd_q2%P}+7Us5s+*;T^>GZ3k;wV(f3~M}MvXw3IDib2 z@*j5Fndk~bF{KV)t(KjJ|G3j-jWstMR)v!a;J$C@C?bZFV$&)q?I*EyGNIP|3x`dI z|EU)Cb}Aen5PR>UaNTZGNMviUV}39CP5t9*1t>-c$q!tUsuj1aR=uDX&X1eKB0UP( z#5|_c{CT_x4hS>Fk|}u90q@{uliOnE3iZ#k>dH!&B#+n>vC%tGa0pZqMB&HVishH!76Q*Rb`i6J!O?ml;ZrV;Hv{T5&~TBA|8ViykR zK{!acBb;!S;LBOOmakya!kR)`M<9MnvN_;*{h?l8MI`Jtg3LjL_}bJ2&XfX*hn$9a zBLn@VUB*{q5TX8L9m?6b7((abBDTIm|5GBIm0#W-S|Kh#RF(b9ZGd+A(HQwNRPZy} z2t2vDnyF5|3;>09#OFjK$ARXN#H-y(_>UW@S00%Vw!%!xK)Q1t-v1IGOxBg(Jc(wU0DQ7CB*GX%>=sQoxG>l1-);erHVU7PDImTF-D66BCn>kO zDWaCC)voR+OlK6LZZ!x>4_Bdp0mFxHrNWV@ceII9gk{tBTWV6-pT>VowoueCWmzlz z>v>Jt6>IXO<(~Q7Lu)nEtTu1@;KjECuj9n`F{`yOP@o`%AC#*j$lV-xF*svK3nar- z)^m^MB6?qH2Ov+-*U%Jp6y^qo3Ge;(7<^)qlIN@&^F>^K_Qx^q-d8IY z3vT!6bQT<-rEYDS7FI25CO+1}w43hMik#5fWYkfuO`Yz3=7X$}$|SO7?f1_21rOSE zP&U=w9`8ndMu~%Kopas)!F@=j&$j1_@TWwEkJ>={VM2t7QqPSg7o6uP;ep;vno*gKA|SXi#fn4pPSqv@hfkB64ubTa=L&G(@te@AYQVYCpFcyjE}ATtw?y z2)ONe8_TX(|IW(!m#D4tVeAEkIWDoZQ-8pwk5~Wg2o_>8fgja;p^dnH9Z5Q}(X#Jh zcpovhd_5*jN~klwW*sZBheF|MKyxuw@rod=XaC#9ojeG(7Wto47&KMm2`6ygn+Zs@ zSfX69j@+t*x(rKnKh{nLYdBj8@DkGEvI1v3sKvwztUGEsoe`}a4}H}V+@40z*QSe_ zMUWq3NgET*eYksch_aOR`4bStu&5(HHk)TArTn&*3oK|nseXg&pWaoMpYCQ@q@CJR zln5KpTsWQIUBA^ALjiP|+xgY%KIB4MCqg@oeD^@q?YA>>U@+R{T(v$QPir&u^8@`a$w@8w8Ub zCbM7tpsyyuLt2QSM;ig*%{7QOtf;2st`=;$WN>L8C2ws3I8#0 z3Y{(eKKD7UKdUg^U0YbdIa->#IVmuj)}~j6Yxlz8om&oL?if{V8vbk!B?xvQjAsYi zG@zBH2J-a@j26Q;RAY-^>-TGpOlh;?NrB4QCe!kN;yD*Z(Nk#wYMc zL)tW4cpHL{Q;WY)@vG))=F1ceuNm3bea9GJ^nS*fj7kIL&MBVC`I(Nknf3C$5NNX= zO2Nj9*-pseoBq?o#7bA3>m2a#FPA(HCBnQKf!h`2<&w17gNx1uetd!x1vIlggwQ>D zah7WiZX^hHffUI)m0eg`d$aVKx7fy2s>fkHX@!3(Eww7&z=yGNC9AeoVyzVnK0n!) z571F-(?0k4Ay z1N~Q*?zZ3|$6^zGljSIv4YeWAlY@<)6@I-gxYHy1hErg~Q!6sou_AVUE9xAxIgJcL z_w*r`9+P3+5YHI%fB;2EC?~Uq`A*IcHxa^I665Xfh~{8J-HYfNt(D48!%2YGtrEs7 z2rjdW19i^Yv#$7T4>>WbP^y_fT)hqsFeOCx`L8mQU5fy)uDTRG56eNA@~&bUR!*S# zYd28OZ(G%Yjk9{5eZ2wRG5AFC_0mw`C09xM&!3-4;s~b$R~hUH?11N%_{vsPa?Jd2 z>xYnd(SSEJfdgjOyhLcmy`U@n`G+rlB3@TZdFGiJLUSWJ-|smpXmYmqIqAA+5t^ZH zP|~QJ8v+9?bvmfmq{>$^0!cy56?6%~(+G=Nwq9c*QT+;c=CnR@@*(sawsbi+w(Oxm z+S+MQ!t|)G-W&?=1if>&i!x^@fKFSZM3>AL8}5%KIX(JLbP`VpGj06zF ze8gQG*86HQ!5r^VL$R=V{{XZ8uVi>e60&~-FhdgRzi_1Oe4kGlhM|{yDF7waJt7-@ z|F922>Rf^E(jw$IjRSMdV9o_}zb@mANwX0?ZQa1Pg{R&fZel~w2If!yYgV*wE|Vw9 zH&mU%RdQI(U#vK{U_XR&@u4*<0S=t$fLqj4=}2IGGkRB!AB^?~SRS+BZaMADvKV;A zxZmSuKJta>tS?QaHyn&Jz#IwP9hu>pu|=C}E=M+@bjl~Q1^RE}wa2OZ$IHsl z3$LJGeIE>`%ZqIvtH!Sud@^j;qH4HCXp;IzL8XvydVdQ{*X&4^Qw34cv|kh8N?m_g zk4@k1CdIp=#@w0yYy=(xiJNyBM+6T{NamH`Incp5BU>7a6D~@8C=^??-VkfZ6lk%3 z!p3?8-XX!dOR)D${R%V-PFza)I!TkNxCl%W)eJ|lR+vALg*Yf~Nv(!u^0AXRF9XNt z+_o<8QVSGfMot{315RdlL@>v$K?rXK3WR77ji~;S@?sAs=zR1$xL{)D@d3l%u#=Zu zzhrMg{Bv^9H9IdvQkBXkNF8k9#;LTeF^3}Nn>hytb><%EUcEL!xmmW2ap72UD;#4- zzrV#vU1N5hm0wgWvX^_EJ4q;vOaZsHRGyGukzR({-au)?I(QiSGhurQ+PRTG@{e1e zf{h_EK+J3nmHbDR;?Ccp`mbx1QlKsx&VrfZ!}U=V_I=II03TV6y+sJZkf@+iwb982 zz@Wm;Kc6o}Eh(Z1j+Y@dq+6q+&W_XwGt_d^={PTal!<1_U??+&JOOKK+2JJp+mRgG zkVBvp9Ul7B^fMY&~_!`6XaZ^-@@3Y=lbeu>G+A_Ch` z43G3x4CM2!;JDCVkn=4sPB#tr{lP|X!sn>-`@puzo;Ds3 z3^f#fL$@wC{q++h9Z!bv`L*`F*CW6@HsWt4F<^ zZSbB7&(lWy_8_rt`mpk^LV@!nNChX}Z8L6pAm*0eVS6xQ$a3 z2yW=h0|83ktFziAxgtHHa1!awVxU>yO&bciyNJom);#4>sYu74;KEQs@CGoK*kfs^ zRDVtQ!z2mw#;Pd=`H!}|&0>&!9sN%;NR$tj$oQ*5doM+>H$xXlk#l^DhxTd6=*_(P zO+{yx;-=-8`k}NFyAr&L&N@Ye0UJtan&?)LH<*yh>s~C`-V`CFY5&}C`__^yXWva< zvrHRI;E@=L)AfoGCdS;fXJ)K)7Oa?%q(>mft{JWP@keZFk^=I_FDQwN;Z#1tL}=+m zF(D6+Us`X}$8t8xkg|&>ccC3-&JvSYiUS;|P&~>J2j)O2F>w9+f8r_dqvEdxISqk| zLMwL-iOqAvIS^rr4GvndV{nC98WucRg3~z(R!Ry=3z{=x(qaE}E|gjvm0;zus-|Gc zwo7mfltTGDJuLHx2qa`MMc~yz_smTv_=Un}2J9Xz1DB&7%tO~w_%;?1B4_<4;IDY! zdLlHHu&i<6csVpGHMx0L6-k6TIoV}BX6Phm&kmW$R0mC$VZg;2eW)ot$ zW9sIMw#W0QZk7m~F=9byXbn`W?@-~Hk&P_5L)SVR&uv!r{8&do+Kxuam zjQjg|He>jz>0qbbxeNWatK;X#iZCaM;NL6Wq2D()I(%mKr)$vkh@haQfEX|! zHf;H3IrioKOI!SYqwUkCGJvUJ`1?k)|IgHUfmu>Ip;bwJkKbY^!CZ&m%$L&q|Fz`* z)OK?%=Cfbg^S{1;(bt?V%<2D6evaPigMk4^KOmtn0RNjZjRQ~zrw0STf&l+F$}|&) zk#NaG!v9H`p2=V_oz9hMDWA*XaZScxVF6EqB~I`z{#<%3RINMtDWaVs^h-RW>TnbzO~T&sl`aXFrd4G=S-PbLz{<^H2gn-5ts+wRYHwOlL|nuEhCe4b}hY0K6a%yqkOf`yjJ ze_nOB-|ckjLkll*clk0mM9t%QJ|>eiY&J1B8n!) zD5G5f5LM%iINGS=j+yWViwH9YDI{7v3SeZBL=CCrk_F}Hqmw$Cl)!FCR%zvxSZ1l^ zmRmCErA<@*;L{90g*j%9WR}U(M`pHpz?*Q!Dd(JY)_J4_cIK()o_zL6<(GiMB*B|7 z>|iJk7w}d99dxKd16G9|ny8;V9&}?BiBJh;l2mc|qyss6@rIhGx#{Vto2E(xB43CZ z=&LP7|ByrpTb;njql|>Ggdw`hO6wrD4vOla2zk?4=>AbL*${H8@UgYN6TlrKGQ}JsN<@k zEuFm*QH0nqgifvpB6y-hzcR>9yO~-X((aTn4DETmAOl?OR<;8X0tH`09r?Ol_s}a9 zB_tu0EupjE`1Ki4A-CHfv@in>TEs9d$y;!5#nM)4Fly1_I*_jfB#0nA={%|;zwnKm zjg=jAG_XhuZ}5Tbz&8UQ`0EJ?-x*i+(#o!Q}v#J3VNDg563)@>a130#DrXmJ9a?5iLvre{d5(4yC0(F^vliIz&?2A|QjPvCuCK z2%_n;vGSv*~l3>iFD&Z+`7eBu^Bc!5Eh zYmVjW#0dxKgFWPokHAz&t8g#~4}kBJ56FNF1Gq#*6!VyxvXVez05>l5${?r2Q`PtY ziB{gp0!L_t81j$K1p3QhS~Opvc-jrh2{J@%?hYpW=mi)eCq|@8 zXp9rcE6j2gF)(Tac%zd?LD$2`F|eFSaKzUzwuB#`0tsu#;0cDxKk{kCZZY*IB+BTB zLP?9K2T(-~U4Q|?wTq3AD^)}X@q#%J?V@0PAGTD5t%sngmle$#S+7M&wT^YIY&BI< z-&#f9yfv(0mFp1mK?GDYCtM*JSGZ>Dn}zjfVi(KU#ya+~kd3TlCrjDNTK2L? z5}C@-hgrpT_OqZ3t!PI}+R~c#w5W|MURO&TzIMv9u#K&3qdD8!|JwGpbz*INoJ3f| zrglfY{jG4>s@wGNRyJ-OZUX)#ytexGn?P-@a&ar$=#Hki=J_L@#-}DiaLWiZTfx|v z3))T%Qc;52>nT!j!^66F44ZZDUgb;M(Gs(+^vy4pB$`s}ipN)+W9ipuRmcQfFbQ^` zqFyhXOGqKJpEjbYoKy+0D<;>KXp%04d4%B()Ahp?Uc^*EOyUfmb$ti$?|6__03zH% zz!(!mA(42RL6`ty_2ttNfR^Jrc~oHCq(KyUaJ~x&!iP^l1y-r_SHVVAp*qk*rf#+g zohE9d923?CDW}~ivce3L?1D!>0fx2`Qwe7lEGLWxQ+W{?|5)jrmLcG&UbBYk6 zDmZv&HHa?*hX~eotBlA<3M|TDhO;D2AvzU|07wl#eH#RU)srI0=R+cxq{-k zTLr`mImMfN$VS5(JiJN4YfVn?$Z?X(ShA!k4bC(n=FYqf1XU_=*FXB@Zg=1un^i^Z zwof8h>q9Wz2>u3WNbOC$Efc{7%O=qd42+#@JiFzjM}QO0mPN0k8P@8rd*--h;~DrGg(Xp}qJp z6WwLUFFw}`Kfv2deesQ-IPp;|`R`Dkq4>3X|L1t#W5mksZG^b6)F0uyyBq5R0T+2T z6V^M4vtq0R2RsaKsRf~`i>49Pd$Kc3tmjR5Bz*m2daAP<$QL}Or*3KEd{Z)1XOd^9 z27iRt1@}czYY<4)QZA{KeGm11akLxVH+jeg0&0gSEf7v>vqY;RLUW}h{$ggiP&-s& zZnr=-t``Kr@+&hVV}#}_h4WA3(@&VDOy;x*P_s7PlPfdzE@psbJk)U-z$%b;Vkoo& z_Xj;n@B+1_e96anFL;IP23Qe=V+BZdoP#K5qZP$tY+S{47Bna(m3LRzhCX+K*?|?M z0Aw6M0B*xFbhcfH(1Xv#B?+ZnHBt+K|CoR9Bvl8aEG)BXyGKN>0AY5;0Zj!h2yjn@ zQe-x83Wul(QOAiyhBuNpe{+H{iGVOwfMXS~MuAvGE!JG7SOggWeh{#V34=z5HGHmU zYF2PcZ?HN>_5#l$cG*+`jD{krY{x7I~2vnUNZ~ksR5P9{G_V8ImG7l8FL+3r3PCnUeZg zk9;^?F8Pu$8Iv+OlQdbAqXiKS|Cy6Esgpa|lRo*AKpB)5b`&Khlty`!NSTyMIa)}7 z13YFikPww@&`*sJl`$h&f)XdA(~IBuDI=zmE8{T^sSpUcm6T!#nV5|#S&I+}mTvi$ za2c0!IhS;~k6UGi5nyhzP&Sy7HhVb)7#MjgVJcK15Lq~A8m5wh#(?){fcr>T3CWMc zmV>@jmx<|^G{usoky-9m3-0!9$u*TiCPcbHGv4Gfq7rkxcmtPdS^AVY?WH9qS$^|_ zZFb^A&V?!hSey7G2cao}1hbe+Ih@2pJ%gDXYdHM@ChrF1QH~RV)hEM7Ml}h zjX+w9m*;TC76cf_YhbW>BIKGXmk*Ps?{E!bxMlNffv#JY$*&G9+W3z*S5XEN~ZdlSwG;gI_CS3%im$F^~ic zC8%7`jPS%m)W?DQ|73eL2R&0MNt%FgLx6Oad8wG1shYZ}oa&&}Q)kg~m=WrQNR|~& zCpeJEny_Ul$AVA0sHQuBb>wH48Pq`Xlor#cMBwCuZ>L6fpr<9cZ3?GXXT~VI=!3gx ztS$C5Hkw0=YD`U-WdRhayF@S-Aa7Cn8LNbBhNNu(<59x$2He;YDiL8fTCKq5dNfsV zdGZB=ia#FUJ*twXuGT7HGOGuQZ&Rl}Re(TtN-lWntH27YOt(s^RDmVLNb0JAh6e}G z!%9B!urF6f^6IU|d9fHOufa2R!OCHO#X#EQnQ?;w$CE!kwK#3ptHYNtDa(%P#GAt+ zuB&6A8Q6HDq;3u{PM$EWq=%#;nvWSfwq$FQd#APhNh>#0g&YB$ee|4VYShk`&x-N+Z*7_zVdM-ovCNJSvvl%f0D3vf*BzT)l<7y@HRw}Q% z1-n~6@~SZ(V}4FnU%K17K6)w_)3ZG$yLwV+&6%y*3X&({R%Y3eulkUGN(F2IOSJhY ztJ|sI{|hkC8yZ|sB~A02U*F4%d~0lb?`jJ)CqKI(h{R zB~5Er9E=g80y|Bmwf;7T@7VxLpew90B@MAkO=4cVd5-`169hC_eldwh^e$)Gkn`v) z^2!$;w#K1*E(3VRl-pkU_gHWGRY{x?!ApX(S1q)n#|6uwX<#oFU=SR!FA`OQsX_p% z{}wGGV+E;+D|zt6iFgLa8z%}tFPczfXoGi0f(96RjGCyBVr((=LNi^o1}y_WC$q_& z?24>A6wWfrvk=KLLx};`qlM^Z74TwXlESbNFf5or<8-=;+GV7cU%!9S}-F>hbq_rCJF-4Xhtq6UFI;*2|7t+U zqHiZn()vhKi?k*~XMF;>0q+t>GkT$_`kaKUj~fuS`}ly>{KjMa!seG}@_H{++qK=} zZ^@)C@)In_b5OCD76~276)auOips1Bo`d(sLF;&UiE>UjxzseFb|}?auVVt%xU@1DC4g7@3bb+Ge`d1S`yYn%r2Im$&-Ybo#HnYCHmae2{m= zaui1VWK3ctMpn>)KO8`A2;7IquW)3h#Eq`g1IKQS?`=S5kOP9#-tD4EJ4g%Bws5%s3LtiJ#QrxD4F|?H zM*EXH&nV&sRHVv=;%e|rOe)<44MTe_)8u5VNHv;x?SsL#(Nld=RaX$a=u%gc&s+87 znlqr$*mVdRddC_(;&y~e4ev?{7YYW_pyfyWowxJBG>|2Za|=J2mnHwO?7Xz)37fr7vsCw?4EaKPcihe%E= zdetBR#ETglYQ)HqqZE)KMUEs{(&R~$DOIjy+0x}pm@!KVgi%5V2u(B|Q29hCP6`o; zARJT_VoVYu6+(PbV<sPQ5h%5{#)@;~?0t}{QJ9b1D z3kZht@Z#w#TD*C!j^%5yug<+~{|5e)V}`&7cl9dPswQq+L`v*FUMx89Wr0){0bX0# zvnMx0Cd;+VxwK!(s6X2vO^d6}41-2T9*r4n|BMuab)V*Kd-ZSN!G#YeUflR`w0W@N z?CkfcbGmRfb1eaziC#wDBVK(dIz(TPK` zC4lf*LKV; z!Z}&-z_0i=G32!qW6)?29T3^VG$#{P|8!AC8+G(iNF$YWQc5dr@haw8`$3gV{c9vs z9F5chF48=UVJS0A(9i-w+7m003pGe{yiy;eLj)L4fa}&+t*`(D^p?VD4q@paG^$ga z;>0ZueB2;L7JZ90J_c&y!;=+c*x?aFa0IOc7(x@2lt*L;O|&0Ubt4CE`H~@*Ja)6n zO+{{cV=PX-c#eiEfr7Edkw^mp*Fj2<@rAk~VB{zw2vsG`%tA=v+-QT#^VtozefEPi zkTnX!g*3oV&9OG|AwLa#RV@M|4CX5cmla7>kRWgTS7B6_>Mg#$9Ff&pOmkgTSpYY* zLgWxPu@pI`n|AtXsEb1*Q;1|u{|t)F-bh)k0zO!TW5yO6V@++@O6V}Ff~qaKeF1Zs z2yYhwBac?FRRo8MZcuL2uk>aMhC3@}g9HK!SAcM=3=b1EAMH*=0|_9;bpbOW7sTZ_ zKw<#|^%Q)yTN!Hwi*BTpiWf1t6N8M7wZq!N>ImNac1G5;_;WNdFsIt}Iuu_K@x$w2 zBQ5|(gIz?oz)tIIw23$cbJ-*Doeesu0f2eaFW)i$uTCv^mY%sWV7&O!#YA%-fU z5fftk*N|h$O>1_;TkPKO|C84|p&*E%OOvPqiZMJvg<22+e>5NLmm%;6}!9FM$Bzh^lLt3>iX|8nh5L3gOwNyw`vOzG(^vN*xJ& z*pZ2>@Mk()AqiN6o3(TzQ{CdCV^Ft;yVS&FH`+lG79mE?y&wmofEOB*_{ApnjCE*Q zL7d2#LawlpC^qrJ4krMFFwzhy9vE0p4DyN;Hd2Iq*6F>bW|q${npk7PNJkm>J<*SCs1q~mWzGHwiXrMmh@p%%~a?QD%LDP;NQZ2c-tD1KnIvf8Yh3Vw5sVh#)NL$yUl7ZK*)< z5_TB2*3S)1|7nXVT3Tv48u!W7G&S8r-4MGp(1upDqa|%=DRl%Nd~6`O(Bx8?h_!_- z!WJ;J=V$1q11Wv4V6r8X19muvmEEQU=y55|I-9zb!C^DzYNy@eV7Xw)2YnZq0U{3;?!QT3hlY>jtP?I zbGc+g1Y}DOlGNp4vpdAbRMef$TZ$48=urSFD6{OM&}r_d*%1^*Vod6(h;lMZiyqjB zfOUm}S78R*eJerG)mFAhw|6Z0=lnf-2hNTpGgz`X8p->0xX$_~?j}_+DWi^cO$2v~qg>r&mQz1e*<6$ZV z7;peVRN0zBYBC%6;Kn!P;1FmK5IO6r*W_%V2#Yw~vv%BrGJD82goc=vt{jK@rb*FT zrf3cB3~1rRIW=c6gDd$}=i5B`qg)VAK}Y8$O`mbhS+M~DZq^7WSAhz61xpvqe4sCM z2bxwE^a!uyh&7QA*o_cnv5kFfWW$7{-n1#Lot?|mUG_R<$tAPVDdKCRx!P1|c3!Rh zpn&aDXUXhHn=wGvZaW*@9m)2#-Tm&3d^^hNp7*=ujp=%Gd)d!Uce4HcZ-5^=!P=GJ z|GQw?XQC021c2hkK{m{*{&ld2UF=>TyLOX)_E5$p=R5Cv=X>A%{&&8kUGVy2)7_GJ3Pn`FBAVkwh4#7UtjHW9TL+P9Ac18Y&w?V#`9+1_~(_$0r$Fm;8!BM>G7iE;38)Z>2ba4jr>S(zPaUuD2#e)|Nrp8 z5B(y80Eq~0(9ueQ3p~cR8K&H%d=|`H@0Xl30Rg}56ZAGI!{m3w+fH}2UZl}^zj*7X z?^r$DTka56%XR53a(&OTv?c=X^(WQA>?onivD0azLUT^|>%IWAKLRYkZDTdhfhi(5 zl@;L2xX%mcxym6c$FGCga!M(yjT%_d!AjZjEvJ95Ii{)EI9ZvH4kJW zax=e;$iDYGKT|U%0-TacYNUcOjL6`wazcehLbMLsuLj{fl`BKC;lm4ir`EEOJ5rAx@WK?M zsFuCk`)Ib53S_9l#6&nyl=F_Q`3L__EIG)lBUo4rP@1ic3sSa>l zB5ItRJZP63V3+_RmSAfI6HtKIix{Tz0;-v*C*r4ZIXQ{3Gq3@%gz*+gqX~|Ao&M9e z!>A2rBgQ?zrIS>iLnxOPAcQ?ZLs+Shvm&Go$w=!{FpEe6MWRI@13`A#n<7LFt7ITG z`mQrz4h9H0b3BY^nuVZR!N$=#ZTva8xUCha%5dD5AaD~miG>oe7r)p-5|WvtxFBa5 zpt8A2f~x{(5ivWWl^r|_8ML7AdoL{fkUx8zy@?a1IEpI4p-<4ja&m}00KkRoA5zP; zT+_-OP)##99W*G%?AF_)<^v>PFyS>Ps`kpNlnD+4%$|1=DXTH=Jl`X_-ILuKkF z=0T=V>5M6nDA#e#C3wv|t4{1>2tSz&`MJX6!KDT$l=sma@A%0pbIqo*f)Gg;u>y@? zs+y2%D7!eDb-~Wo^tdTJ6(2i~&nW;0Y)9}sk1!z2Y@ExQ!-(9>OGT5Nbm>6NFe4QZ zOlagU4%8^W@fIxVK%w+Dwb;0BGN%W6EN%mdpwuUUAhar|EAH`3AOlU&+`k36HoRFz z{UEL^aSscSl7c~>qiC+B>KgQTkqDrtNZ`%YnZZCBh~unGH+(_(oFeaR(5$S*BTZ7O zFcun(O%cIThYC;NM1l`xAC16J)OnL2g)~;6Q9B3){~hQRb4d#diV#9$B0DgYb;>?2 z#SRAY89AXnr|^&GR4(HSgOCAK8c{m~rMa+JrKErzez`2I2}l|ME5XdH4H7Khn$56e z)O=gb#PR@E%Zm>M#V_D0k&{2n>tg88a^l z(pIaCBM~VNA2>7j+^qN{LfzV#&=kMRWXm^;(#a^vgP@uoghHuv1AuHQCt}5>6bb@! zuxx??$KU}i{I}s-Q(|No&U#19A~1sk1rvB1|DP11yl_BD3d{C!gsRd@I{e8bn6*!_ zj&lpv%~;XBY|&VK(NfvU(|ox|#Y2d7QP*;-EGq@wWHBoWwpV~y5nIaf;33u!fUX&- z@HEC|l?{r$mw2Q`I4~NQp;l{Ux$F|pH)_=Ss~3`5m@v^))!YJ5We?O!N@wXubTBrpQ-bTcG4yaP@Q!Gs7sxE%f_33f8!8QTY@fK+4PA#RAil|H~zR3c7|?}N7t z2sUU-51;X10rcOJ+hQ`#;>VDP{~Nwip^>VRJDT34$1y%*Iu61!u415rMHJk|ft!ia zGl24Ax+qcF67IY|He{E}I@3GkLS~vkAz|C=(iYU$My}*Zwmm$~WKFg}OQvK`zT~Ib zWKkYvQZD5M&cQlPWmR6~i!fzZe&w?RWvf$(Pp;*O>swnUL0H~pUbdh0fIG2x2?WGTs6C%-FfqfyYj)p#- zWw1D$*8Y>WMggo5xi4hRt54D2oh<7$eSq6VuSS&-RLT~$TI;}WprBOjj{b10 zm}OuW4GQFxB9AT`|6B;(gNaw=`X7dpKM{246rI<|TZyV}?!Lop=+~uI1=%@V@mPwY>n@DVIM~#nPmkIbiO#?WGGS z?dw$`%=fxa~D*9xzQ!T}r*@JFFA@3zyCm^FYF#5F&H41*V!Mp&r8T_Oul&3%;7rXTInCa-K_FZM<$bYw5O z{F7J3E~b?Q1Wqu*BE-~@Ah*K* zsE;+_Ky%r4+MTp@XAsP7?d^jxq+Dkzo@zn=_lHP!f#+jA2Ih)m31ZP?HiV}3_MNa4Mb7zWy<+k9MSo!J}V#rf+(iA9}&F3WNtj zk?$m`cY2l2daZwQsE>LGNas#|c{<$j1h{yWdg8M$a*W@2DHHdt&op%Pz<_;w5A6D+ zgI5x*p!U8)E1Rsi*!%S3c~mwzFU~g^n=z%Y%gfw0xJ~-RZ@-(kNP*T4oh3JreSEA3 zBRb!^(GL5}|9sGAW$);hHQ^j8cyZE{7^*RS)bDo%cjMxf7b10h+^#LkV)30nztUJc z|AwMC@3ISO!!F&2y8?CmSJ~q4Gx*ccUL;K*90Ypk2RFMnIyzMdJNloC>V(TVK@qj% zG$;%LQO?My5+lKB+T)Lm$S_-)vGy=l#>ag(e+0awKGTTiiTQ6X5i<;l&UFC@9dl?1 z2ymf=h$0sZN@>_|LIYKUBppGNicLXAIby6KNbtp`PjMDf*)T^3qBb6>KmtpbFn8`GWG6*S3kN@iR6|6Np-+x*2#mPnmc&6A(M&u+#m2!H1%OsqnCK~n zO-pL>go(6(*9SFaSeaon!bG75=F+We_b%SNdiV0}>ld%Xz=8)8E^PQP;>3y<|1)mv z_%UI+al(wj5n&AoFGaCR@Pr0LN1>TF2T+V4D%oOsetxq;5qc@PB8+wnJ1Tww=qKSkl08j_b(qfd0HW3$7&y6 z%CE-2J@>(corw(g9Ja%p4T&IFU?9GfS~R$($O#$*0p1{UfWR7DxfoKD6(SuX6&H$h zhKhq^&G!c$QUVr2ZIJ;Ez%k*h@{7XCl(#T19Av5wZccXeX`mQ&T(iR zcJS?B8IEb>aMN_sDY+z*O*;7`lu=4KC6!fLc_o%vYPqG81&F}oN2!%y{~~l{G$)jd zV?tCNl}q?Q0YM;G=t+-k%Ew^`G|4>3nr5cl$)Kze& z6@wYUpSCI&Br6ez+^NJM*0$_$odI+E!I9WTU zj66Yvv$U(gLk2TPwE4{k7Z&iQr2m}U@6<{91(_R=8nE$dRCNncv-tS>O~zq6NY)0) z$@R=&zkv{O*Pbn4(WgwTHXDMl{ov{G=S3nS=c%_Y_WA3-|3Clz`~N=x11P`&60m>< zJRt78z@dhas8?u%9C#e~mnZ1QP!DX_hG^8Pv~Vqc-f~W0_M$qcwF?CzXxh&{=N62# z0uiGM-|l*+gg3<~I|kX4s}7(Ao#F0UhT0(IkVh#u%?5KQnv*N8H6fWW;6jv=TjE|p zCXaBSIjVyg3^y^pvF%`Gp#c{bDF*~jscTP|(u;>|(wzpd1u3QL8yw>($2romj&{5w z9``o2i3kcoN?@8-j$pQ|IgcoSWF3^aU;?5jK~-k7#Ugq~7a3>)KLYDs` z@RJh6D5--RsKSC>3KHIgmZuxgqLYM3)t(Z-Joeuma|lF>1|3TSYj9L$UR+JWnu#4BjKOw1uD}hTzU7 zzywV;sREUT+XT7bCC_=%v!3?6CqDD}97w>x3_R!+EHU<1|`63ED}HDRR9Wdd1%T|3O%Skib?$}W0=rF z5}b^LJk%Ole{_NYM1TSXoLm-?_(0T_oS_a?|2>o&{FO(2Qi*VOy(?bxnpbw=t#HsJ z;R+3xH^4$Lab4iTo%#~kD-qU?i+$^+3M-xAv8l0$yq;h)>)6CeHcF2*C1~d=T082s zw5B~RY72def_3=#aO)?tL$O z>vh@n(zm`_iZ9{pJ74|s7rprXuU)y@m&OcNz|UC|ACzg5{

    BNS4%a3^lpWmR*MPN z&1`PmejngwKHC{!cIpF9ZQYu&P^ZLB?lqEhz2C_gwk*V!DzXiyiRdv5k*h1USx&8L z`6Xc4p0jLnODUcD$>rA-xm)y%|K@C1_;^aqPM-0!$Lw;;f!ub%^p<*-Vorg&SY>h4lxZ0)8^9 zBFEwRw8_#typ&_PEXuH<|1|9T26h;HtH|=(Lt#%%=gl;ZiH$ujd?v};Y zh^D#rn9r`ma5h?O4zQxbil%V3X_BlKO7W(JOH?P_c%|$_gU@+fJzFljp>o?%mwD8f zOx-M#lrJ&E_O)Qt4fKOcLbD_DoU#-N6lf((J9!)PR8kl)%l2oDscAREdr6 zd7KPLQU%h?YD~tU41%CE1Q)~#04hqc#RuV)0I@WU$<4sdpoFUdM&*GQNmyH`^@~vO zlK)jstm%cHX$=ZF|5|Q=(*;$`s@=v6)tW!WMrmJ z3Y|F5a4?@}w1h<1;6jLnu`~n_6<Q5|pxL=^}GTva1Vz`oQ_fFRThYz_z5ki*!)r<--UeOTIF+R=R*p8Y6NMS*w zp1hH+&;e0k%Ic{M_XNn+bj{a%+$oTcQsGi@xDdZ(&f0W>P{^T1Fj6!E3b=W}n502x z?ZvnGOb*HoLmuOZ6yg2z4FMkI*Uv_Jt&Cf8lnWlAPy zX-F^a{{#Xe2PIyc_>d$Qr~xuQUl@@AC-%zyEQHsM&v2lE_&H1VRS7HB#ZD#~EF$CG zpdV5GC5}iDoou7aK~Pi5WTmLW^O#wk6-T%s%m8M~K*Xdj-b60V8(3D?4B&$8v7nnd zCmMVa!d1>$ih(Ur$KteJIfekM!47h?n*&6WpY(~8G}UPo%3Vr_dZHZOj8fW|igBvu zk-UZ%$&4|+UjALp*2x@ZLdOZfqQkk?*^u62J|}uOQVs0JGQ~l!Y$)q-i@k+tGF2QB zCI`fLC}_N6C8DMnh5?UMB{_}GzN8V-#la&yr>i^}d##sQm>bZ2fyB zhs?{MBCyWH<7Ad4K zX`K@J==x~caOy>h;Llg2qRHeAlAsHNvH%}Jsn*S@uRWT^NE0~~9Og(%$b8}NQ0lR^ zW9vD9RO(>0-kw2h$IC4pn%WlNsg0QJ46>2wbfpprc%`{soX0UnK_o#(*xIpO|0#39 z+We4$lLneULIS(O(Xfc4Tdfpt{?l1O+ZvYDTdj_am1i?v+;p~St3~WxIP6qql(emz zU1%V}j?TqW>{MlJf9}n^`dcani^$%E_o0B0DQpkcfXPM<%GO${ogTX>o5g-?%F1iU zqH9<_>}RSX9AT;FsUod8*bFM+s0r=JQkkV8ZF3!M(i#@LL2WhCn4Zn4)Y@6ler2k4 zEnobao%yVH)z^-pN^dsFnNc2$a}zzAo&>uI$e4>rw~p-fo0p1@7)H@Aj_m{x0waukap59r&&* z6b^wk1S`3Xpn%Pus%*9^Dr1>99Zd;$)D!4aJZ)ZhpkH6fl!SRQmE z9P|jiy#WI$ZXgqH6D#lZf->uh!D3Xz{cgzpbmVu|9;|7F6#3x{N$

    RK=!KETMP0S& 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

    ficf5kHRM?;5J?Pg5dUS+vC+x3N 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 literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__command b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__command new file mode 100644 index 00000000..14a84afa --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__command @@ -0,0 +1,6 @@ +#compdef -command- + +local -P ret=1 +_autocd "$@" && + ret=0 +return ret diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__compadd_opts_len b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__compadd_opts_len new file mode 100644 index 00000000..a29c6508 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__compadd_opts_len @@ -0,0 +1,10 @@ +#autoload + +local -Pi len=$(( ${@[(i)(-|--)]} - 1 )) +(( len < $# )) && + return len + +len=${@[(I)-*]} +[[ $@[len] == -*[PSpsiIdJVXxrRWFMOAD] ]] && + (( len++ )) +return len diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__history_lines b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__history_lines new file mode 100644 index 00000000..c0378829 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__history_lines @@ -0,0 +1,156 @@ +#autoload + +_autocomplete__history_lines() { + # Don't run more than once. + (( _matcher_num > 1 )) && + return 1 + + local -P lbuffer='' rbuffer='' + + (( CURRENT > 1 )) && + lbuffer="${(j.[[:blank:]]##.)${(@b)words[1,CURRENT-1]}}[[:blank:]]##" + (( CURRENT < $#words[@] )) && + rbuffer="[[:blank:]]##${(j.[[:blank:]]##.)${(@b)words[CURRENT+1,-1]}}" + lbuffer="$lbuffer${(b)QIPREFIX}" + rbuffer="${(b)QISUFFIX}$rbuffer" + + local -P query='' + if [[ -n $words[CURRENT] ]]; then + local -Pa includes=( "${(@s..b)^words[CURRENT]}" ) + local -Pa excludes=( "(|[^${(@s..b)^words[CURRENT]}\n;]#)" ) + local -Pa tokens=( ${(@)excludes:^includes} ) + query="((#l)$tokens[2]${(j..)tokens[3,-1]})" + + local -P no_delim='[^\n;]#' pre='' post='' + if [[ -z $lbuffer ]]; then + pre='*' + else + pre=$no_delim + fi + if [[ -z $rbuffer ]]; then + post='*' + else + post=$no_delim + fi + query="(|$pre)$query$post" + else + query='()*' + fi + + [[ $curcontext == *-incremental-* ]] + local -Pi is_incremental=$(( ! ? )) + + # Non-incremental search potentially adds a lot of completions, which can be quite slow. + (( is_incremental )) || + zle -R 'Loading...' + + # Using fc is way faster than using $history. + local -P output="$( fc -lrm "$lbuffer$query$rbuffer" -1 1 2> /dev/null )" + + # No results + [[ -z $output ]] && + return 1 + + local -aU displays=( "${(f)output}" ) + local -P numpat='[[:blank:]]#(<->)[*[:blank:]][[:blank:]]' + + local -P groups="${(l:$(( 2 * $#words[CURRENT] ))::=0:):-}" + _comp_colors=( + "=(#b)${numpat}${lbuffer}(${query})${rbuffer}${rbuffer:+[[:blank:]]#}=2=2=0=0=30;103$groups" + "=(#b)${numpat}${lbuffer}(${query})*=2=2=0=30;103$groups" + "=(#b)${numpat}${lbuffer}(*)=2=2=0" + "=(#b)${numpat}*=0=2" + ${(M)_comp_colors:#ma=*} + ) + + local -Pi excess= index= max= list_lines= + if (( is_incremental )); then + .autocomplete:async:list-choices:max-lines + (( list_lines = _autocomplete__max_lines )) + (( max = 16 * list_lines )) # Buffer for bubbling up more relevant results. + else + zstyle -s ":autocomplete:${curcontext}:" list-lines list_lines || + (( list_lines = $LINES / 2 )) + (( max = $list_lines )) + fi + + + if [[ -o histfindnodups ]]; then + local -PaU uniques=() + local -Pa lines=() + local -Pi size=0 + for index in {$#displays[@]..1}; do + uniques+=( ${displays[index]##$~numpat} ) + (( $#uniques[@] > size )) && + lines+=( "$displays[index]" ) + (( size = $#uniques )) + (( size < max )) || + break + done + displays=( "${(aO)lines[@]}" ) + else + (( excess = $#displays[@] - max )) + (( excess > 0 )) && + shift $excess displays + fi + + local -P pop= + if (( is_incremental )); then + pop=-p + + if [[ -z $words[CURRENT] ]]; then + displays=( ${(@aO)displays} ) + + else + local -a match=() mbegin=() mend=() + local -Pi num=0 + + # Fuzzy sort + for index in {1..$#displays[@]}; do + num=${(SM)${(M)displays[index]##$~numpat}##<->} + displays[index]=${history[$num]:/(#b)$~lbuffer($~query)$~rbuffer/$(( + HISTNO - num + 64 * $#match[3] + 16 * mbegin[3] + 4 * $#match[1] + ))}$'\0'$displays[index] + done + displays=( ${${(@n)displays}[@]##<->$'\0'} ) + fi + fi + + (( excess = $#displays[@] - list_lines )) + (( excess > 0 )) && + shift $pop $excess displays + + # To avoid wrapping, each completion should be one char less than terminal width. + displays=( ${(@r:COLUMNS-1:)displays} ) + + local -Pa matches=() + for index in "${(MS)displays[@]##<->}"; do + matches+=( "${${history[$index]##$~lbuffer}%%$~rbuffer}" ) + done + + if [[ -z $matches ]]; then + return 1 + fi + + local -Pa suf=( -S '' ) + if [[ $WIDGETSTYLE == *-select* && $#matches[@] > 1 ]]; then + # Enable multi-select. + suf=( -S ';' -R _autocomplete__history_lines_suffix ) + fi + + local tag=history-lines + _comp_tags=" $tag" + local _comp_no_ignore=1 + local -a expl=() + _description -2V $tag expl '' + builtin compadd "$suf[@]" -QU -ld displays "$expl[@]" -a matches +} + +_autocomplete__history_lines_suffix() { + if [[ SUFFIX_ACTIVE -ne 0 && $WIDGET != history-search-backward ]]; then + LBUFFER="$LBUFFER[1,SUFFIX_START]" + RBUFFER="$RBUFFER[SUFFIX_END,-1]" + fi +} + +_autocomplete__history_lines "$@" diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__recent_paths b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__recent_paths new file mode 100644 index 00000000..ea5b7c9e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__recent_paths @@ -0,0 +1,35 @@ +#autoload +zmodload -Fa zsh/parameter p:functions + +# Don't run more than once. +(( _matcher_num > 1 )) && + return 1 + +local -aU files +local -a expl displ +local -iP ret i +local -P singular plural tag + +ret=1 + +.autocomplete:async:list-choices:max-lines + +for singular plural in directory directories file files; do + if [[ -v functions[+autocomplete:recent-$plural] ]] && + +autocomplete:recent-$plural "$PREFIX$SUFFIX"; then + files=( "$reply[@]" ) + + tag=recent-$plural + _comp_tags+=" $tag" + _description -V "$tag" expl "recent $singular" + + for (( i = 1 ; i <= $#files && compstate[list_lines] < _autocomplete__max_lines ; i++ )); do + displ=( "$files[i]" ) + compadd -U "$expl[@]" -d displ -P "${${displ[1]:h}%/}/" -fW "${${files[i]:h}%/}/" \ + -- "$files[i]:t" && + ret=0 + done + fi +done + +return ret diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__should_insert_unambiguous b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__should_insert_unambiguous new file mode 100644 index 00000000..cd3c4478 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__should_insert_unambiguous @@ -0,0 +1,9 @@ +#autoload + +local -a match=() mbegin=() mend=() # `zstyle` for some reason assigns these. + +[[ -n $_autocomplete__unambiguous ]] && + { + builtin zstyle -t ":autocomplete:$curcontext" insert-unambiguous || + [[ $WIDGET == *insert-unambiguous* ]] + } diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__unambiguous b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__unambiguous new file mode 100644 index 00000000..a1491661 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Completions/_autocomplete__unambiguous @@ -0,0 +1,45 @@ +#autoload + +[[ $_comp_tags == *\ (history-lines|recent-)* ]] && + return 1 + +# Is not going to be correct. +[[ -v _autocomplete__partial_list ]] && + return 1 + +# No need to update. +[[ $compstate[old_list] == keep ]] && + return 1 + +# Doesn't make sense to show. +(( compstate[nmatches] < 2 )) && + return 1 + +# Nothing to insert. +[[ -z $compstate[unambiguous] ]] && + return 1 + +# Substring is already present. +local -P word=$IPREFIX$PREFIX$SUFFIX$ISUFFIX +[[ -n $word && $word == *$compstate[unambiguous]* ]] && + return 1 + +local -P tag=unambiguous +_tags $tag +_tags || + return +_requested $tag || + return + +typeset -g _autocomplete__unambiguous="$compstate[unambiguous]" + +# Retrieve highlight value. +local format +zstyle -s ":completion:${curcontext}:unambiguous" format format || + format=$'%{\e[0;2m%}%Bcommon substring:%b %0F%11K%d%f%k' + +zformat -F format "$format" "d:$compstate[unambiguous]" + +builtin compadd -J "$tag" -x "$format" + +false diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__async b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__async new file mode 100644 index 00000000..0bf560af --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__async @@ -0,0 +1,679 @@ +#!/bin/zsh +zmodload -F zsh/zpty b:zpty +zmodload -F zsh/parameter p:funcstack p:functions p:parameters +zmodload -F zsh/system b:sysopen p:sysparams +zmodload -F zsh/zselect b:zselect +zmodload -F zsh/terminfo b:echoti p:terminfo +zmodload -F zsh/zutil b:zparseopts +builtin autoload -RUz \ + add-zle-hook-widget \ + is-at-least + +typeset -g ZSH_AUTOSUGGEST_USE_ASYNC=yes +typeset -g _autocomplete__overhead=0 + +${0}:precmd() { + [[ -v ZSH_AUTOSUGGEST_IGNORE_WIDGETS ]] && + ZSH_AUTOSUGGEST_IGNORE_WIDGETS+=( + history-incremental-search-backward + recent-paths + .autocomplete:async:complete:fd-widget + ) + + # Start names with `.` to avoid getting wrapped by syntax highlighting. + builtin zle -N .autocomplete:async:pty:zle-widget + builtin zle -C .autocomplete:async:pty:completion-widget list-choices .autocomplete:async:pty:completion-widget + + builtin zle -N .autocomplete:async:complete:fd-widget + builtin zle -N .autocomplete:async:wait:fd-widget + + builtin zle -C ._list_choices list-choices .autocomplete:async:list-choices:completion-widget + + builtin zle -N history-incremental-search-backward .autocomplete:async:toggle-context + builtin zle -N recent-paths .autocomplete:async:toggle-context + + add-zle-hook-widget line-init .autocomplete:async:reset-context + add-zle-hook-widget line-pre-redraw .autocomplete:async:complete + add-zle-hook-widget line-finish .autocomplete:async:clear + + add-zle-hook-widget isearch-update .autocomplete:async:isearch-update + add-zle-hook-widget isearch-exit .autocomplete:async:isearch-exit +} + +.autocomplete:async:toggle-context() { + if [[ $curcontext == $WIDGET* ]]; then + unset curcontext + else + typeset -g curcontext=${WIDGET}::: + fi + zle .autocomplete:async:complete -w +} + +.autocomplete:async:reset-context() { + .autocomplete:async:reset-state + + typeset -g curcontext= + builtin zstyle -s :autocomplete: default-context curcontext + + .autocomplete:async:complete + return 0 +} + +.autocomplete:async:isearch-update() { + typeset -gi _autocomplete__isearch=1 +} + +.autocomplete:async:isearch-exit() { + unset _autocomplete__isearch +} + +.autocomplete:async:save-state() { + typeset -g \ + _autocomplete__curcontext=$curcontext \ + _autocomplete__lbuffer="$LBUFFER" \ + _autocomplete__rbuffer="$RBUFFER" +} + +.autocomplete:async:same-state() { + [[ -v _autocomplete__curcontext && $_autocomplete__curcontext == $curcontext && + -v _autocomplete__lbuffer && $_autocomplete__lbuffer == $LBUFFER && + -v _autocomplete__rbuffer && $_autocomplete__rbuffer == $RBUFFER ]] +} + +.autocomplete:async:reset-state() { + unset \ + _autocomplete__curcontext \ + _autocomplete__lbuffer \ + _autocomplete__rbuffer +} + +# function -T +.autocomplete:async:complete() { + if [[ -v _autocomplete__inserted ]]; then + unset _autocomplete__inserted + typeset -g curcontext= + builtin zstyle -s :autocomplete: default-context curcontext + fi + .autocomplete:async:save-state + + .autocomplete__zle-flags || + return 0 + + (( KEYS_QUEUED_COUNT || PENDING )) && + return + + [[ -v ZSH_AUTOSUGGEST_IGNORE_WIDGETS ]] && (( ZSH_AUTOSUGGEST_IGNORE_WIDGETS[(I)$LASTWIDGET] )) && + unset POSTDISPLAY + + # Don't get activated by asynchronous widgets. + [[ $LASTWIDGET == (autosuggest-suggest|.autocomplete:async:*:fd-widget) ]] && + return 0 + + { + if (( REGION_ACTIVE )) || + [[ -v _autocomplete__isearch && $LASTWIDGET == *(incremental|isearch)* ]]; then + builtin zle -Rc + return 0 + fi + + builtin zstyle -t ":autocomplete:${LASTWIDGET}:" ignore && + return 0 + + local -Pa ignored=( + '_complete_help' + '(copy|insert)-*-word' + 'describe-key-briefly' + '(|reverse-)menu-complete' + 'what-cursor-position' + 'where-is' + ) + [[ ${LASTWIDGET##.} == (${(~j:|:)~ignored}) ]] && + return 0 + + [[ $KEYS == ([\ -+*]|$'\e\t') ]] && + builtin zle -Rc + + # WORKAROUND: #549 Bug in zdharma/fast-syntax-highlighting. + [[ -v _FAST_MAIN_CACHE ]] && + _zsh_highlight + + typeset -ga _autocomplete__region_highlight=( "$region_highlight[@]" ) + + if [[ -v ZSH_AUTOSUGGEST_IGNORE_WIDGETS ]] && + (( ZSH_AUTOSUGGEST_IGNORE_WIDGETS[(I)$LASTWIDGET] )); then + unset POSTDISPLAY + fi + + .autocomplete:async:wait + } + + return 0 +} + +.autocomplete:async:clear() { + unset curcontext _autocomplete__isearch + .autocomplete:async:reset-context + builtin zle -Rc + return 0 +} + +# function -t +.autocomplete:async:wait() { + local fd= + + sysopen -r -o cloexec -u fd <( + local -F seconds= + builtin zstyle -s :autocomplete: delay seconds || + builtin zstyle -s :autocomplete: min-delay seconds || + (( seconds = 0.05 )) + + (( seconds_delay = max( 0, seconds_delay - _autocomplete__overhead ) )) + + # Convert to 100ths of a second for `zselect -t`. + # WORKAROUND: #441 Directly using $(( [#10] … max( … ) )) leads to 0 in Zsh 5.9, as the result + # of max() gets converted to an integer _before_ being multiplied. + local -i timeout=$(( 100 * seconds )) + + zselect -t $timeout + + print + ) + builtin zle -Fw "$fd" .autocomplete:async:wait:fd-widget + + return 0 +} + +# function -T +.autocomplete:async:wait:fd-widget() { + { + local -i fd=$1 + builtin zle -F $fd # Unhook ourselves immediately, so we don't get called more than once. + exec {fd}<&- + + if [[ -n $_autocomplete__zle_flags ]]; then + builtin zle -f $_autocomplete__zle_flags + + [[ $_autocomplete__zle_flags == yank* ]] && + return 0 + fi + + (( KEYS_QUEUED_COUNT || PENDING )) && + return + + { + .autocomplete:async:same-state && + .autocomplete:async:start + } + } + return 0 +} + +# function -T +.autocomplete:async:start() { + local fd= + sysopen -r -o cloexec -u fd <( + local +h PS4=$_autocomplete__ps4 + .autocomplete:async:start:inner 2>>| $_autocomplete__log + ) + builtin zle -Fw "$fd" .autocomplete:async:complete:fd-widget + + # WORKAROUND: https://github.com/zsh-users/zsh-autosuggestions/issues/364 + # There's a weird bug in Zsh < 5.8, where ^C stops working unless we force a fork. + command true +} + +# function -T +.autocomplete:async:start:inner() { + { + typeset -F SECONDS=0 + + local -P hooks=( chpwd periodic precmd preexec zshaddhistory zshexit ) + builtin unset ${^hooks}_functions &> /dev/null + $hooks[@] () { : } + + local -P hook= + for hook in \ + zle-{isearch-{exit,update},line-{pre-redraw,init,finish},history-line-set,keymap-select} + do + builtin zle -N $hook .autocomplete:async:pty:no-op + done + { + local REPLY= + zpty AUTOCOMPLETE .autocomplete:async:pty + local -Pi fd=$REPLY + + zpty -w AUTOCOMPLETE $'\C-@' + + local header= + zpty -r AUTOCOMPLETE header $'*\C-A' + + local -a reply=() + local text= + + local -F seconds=0.0 + builtin zstyle -s ":autocomplete:${curcontext}" timeout seconds || + (( seconds = 1.0 )) + + (( seconds = max( 0, seconds - SECONDS ) )) + + # Convert to 100ths of a second for `zselect -t`. + # WORKAROUND: #441 Directly using $(( [#10] … max( … ) )) leads to 0 in Zsh 5.9, as the result + # of max() gets converted to an integer _before_ being multiplied. + local -i timeout=$(( 100 * seconds )) + + if zselect -rt $timeout "$fd"; then + zpty -r AUTOCOMPLETE text $'*\C-B' + else + # Press ^C twice: Once to abort completion, then once to abort the command line. + # Then exit the shell with ^D. + zpty -wn AUTOCOMPLETE $'\C-C\C-C\C-D' + fi + } always { + zpty -d AUTOCOMPLETE + } + } always { + # Always produce output, so we always reach the callback, so we can close + # the fd. + print -rNC1 -- "${text%$'\C-B'}" + } +} + +# function -T +.autocomplete:async:pty() { + local +h PS4=$_autocomplete__ps4 + + # Make sure this shell dies after it times out. + local -F seconds= + builtin zstyle -s ":autocomplete:${curcontext}" timeout seconds || + seconds=0.5 + TMOUT=$(( [#10] 1 + seconds )) + + # WORKAROUND: #654 Inside the PTY, formatting can lead to incorrect list trimming. + eval ${${${"$( zstyle -L '*' format )"}//zstyle /zstyle -d }// -e / } + + builtin bindkey $'\C-@' .autocomplete:async:pty:zle-widget + local __tmp__= + builtin vared __tmp__ +} 2>>| $_autocomplete__log + +.autocomplete:async:pty:no-op() { + : +} + +# function -T +.autocomplete:async:pty:zle-widget() { + local +h PS4=$_autocomplete__ps4 + + setopt localoptions NO_banghist + + local -a _autocomplete__comp_mesg=() + local -i _autocomplete__list_lines=0 + local _autocomplete__mesg= + { + # The completion widget sometimes returns without calling its function. So, we need to print all + # our control characters here, to ensure we don't end up waiting endlessly to read them. + print -n -- '\C-A' + LBUFFER=$_autocomplete__lbuffer + RBUFFER=$_autocomplete__rbuffer + + [[ -n $curcontext ]] && + setopt $_autocomplete__ctxt_opts[@] + + local +h PS4=$_autocomplete__ps4 + builtin zle .autocomplete:async:pty:completion-widget -w 2>>| $_autocomplete__log + } always { + print -rNC1 -- ${_autocomplete__list_lines:-0}$'\C-B' + builtin exit + } +} 2>>| $_autocomplete__log + +# function -T +.autocomplete:async:pty:completion-widget() { + local +h PS4=$_autocomplete__ps4 + + setopt localoptions banghist + { + if ! .autocomplete:async:sufficient-input; then + return + fi + { + unfunction compadd 2> /dev/null + unset 'compstate[vared]' + .autocomplete:async:list-choices:main-complete + } always { + _autocomplete__list_lines=$compstate[list_lines] + } + } 2>>| $_autocomplete__log +} + +# function -T +.autocomplete:async:complete:fd-widget() { + setopt localoptions NO_banghist + + { + local +h -F SECONDS=0.0 + local -i fd=$1 + { + builtin zle -F $fd # Unhook ourselves immediately, so we don't get called more than once. + + if [[ -n $_autocomplete__zle_flags ]]; then + builtin zle -f $_autocomplete__zle_flags + + [[ $_autocomplete__zle_flags == yank* ]] && + return 0 + fi + + (( KEYS_QUEUED_COUNT || PENDING )) && + return + + .autocomplete:async:same-state || + return 0 + + local -a reply=() + IFS=$'\0' read -rAu $fd + shift -p reply + (( SECONDS += reply[2] )) + + } always { + exec {fd}<&- + } + + [[ -n $curcontext ]] && + setopt $_autocomplete__ctxt_opts[@] + + # If a widget can't be called, zle always returns true. + # Thus, we return false on purpose, so we can check if our widget got called. + local +h PS4=$_autocomplete__ps4 + if ! builtin zle ._list_choices -w "$reply[1]" 2>>| $_autocomplete__log; then + + typeset -g _autocomplete__overhead=$SECONDS + + typeset -g region_highlight=( "$_autocomplete__region_highlight[@]" ) + + # Need to call this here, because on line-pre-redraw, $POSTDISPLAY is empty. + [[ -v functions[_zsh_autosuggest_highlight_apply] ]] && + _zsh_autosuggest_highlight_apply + + # Refresh if and only if our widget got called. Otherwise, Zsh will crash (eventually). + builtin zle -R + fi + .autocomplete:async:reset-state + + return 0 + } +} + +.autocomplete:async:sufficient-input() { + local min_input= + if ! builtin zstyle -s ":autocomplete:${curcontext}:" min-input min_input; then + if [[ -n $curcontext ]]; then + min_input=0 + else + min_input=1 + fi + fi + + local ignored= + builtin zstyle -s ":autocomplete:${curcontext}:" ignored-input ignored + + if (( ${#words[@]} == 1 && ${#words[CURRENT]} < min_input )) || + [[ -n $ignored && $words[CURRENT] == $~ignored ]]; then + compstate[list]= + false + else + true + fi +} + +.autocomplete:async:list-choices:completion-widget() { + local +h PS4=$_autocomplete__ps4 + + setopt localoptions banghist + + if [[ $1 != <1-> ]]; then + compstate[list]= + return + fi + + .autocomplete:async:sufficient-input || + return 2 + + compstate[insert]= + compstate[old_list]= + compstate[pattern_insert]= + .autocomplete:async:list-choices:main-complete + + # Workaround: In Zsh <= 5.9.0, comppostfuncs don't get called after completing subscripts. + unset MENUSELECT MENUMODE + compstate[insert]= + _lastcomp[insert]= + compstate[pattern_insert]= + _lastcomp[pattern_insert]= + if [[ -v _autocomplete__partial_list ]]; then + builtin compadd -J -last- -x '%F{0}%K{12}(MORE)%f%k' + _lastcomp[list_lines]=$compstate[list_lines] + fi + + return 2 # Don't return 1, to prevent beeping. +} + +.autocomplete:async:list-choices:max-lines() { + local -Pi max_lines + builtin zstyle -s ":autocomplete:${curcontext}:" list-lines max_lines || + max_lines=16 + _autocomplete__max_lines=$(( min( max_lines, LINES - BUFFERLINES - 1 ) )) +} + +.autocomplete:async:list-choices:main-complete() { + local -i _autocomplete__max_lines + + case $curcontext in + *history-* ) + setopt $_autocomplete__func_opts[@] + autocomplete:_main_complete:new - history-lines _autocomplete__history_lines + ;; + recent-paths:* ) + setopt $_autocomplete__func_opts[@] + autocomplete:_main_complete:new - recent-paths _autocomplete__recent_paths + ;; + * ) + { + () { + emulate -L zsh + setopt $_autocomplete__func_opts[@] + + local curcontext=list-choices::: + + .autocomplete:async:shadow compadd + + autoload -Uz +X _describe + .autocomplete:async:shadow _describe + + # functions -T compadd _describe _description + } "$@" + + .autocomplete:async:list-choices:max-lines + autocomplete:_main_complete:new "$@" + } always { + unfunction compadd comptags 2> /dev/null + .autocomplete:async:unshadow compadd + .autocomplete:async:unshadow _describe + } + ;; + esac +} + +.autocomplete:async:shadow() { + [[ -v functions[$1] ]] && + functions[autocomplete:async:${1}:old]="$functions[$1]" + functions[$1]="$functions[.autocomplete:async:$1]" +} + +.autocomplete:async:unshadow() { + if [[ -v functions[autocomplete:async:${1}:old] ]]; then + functions[$1]="$functions[autocomplete:async:${1}:old]" + unfunction autocomplete:async:${1}:old + fi +} + +.autocomplete:async:_describe() { + local -i _autocomplete__described_lines=1 # Assume we'll add a title. + autocomplete:async:_describe:old "$@" +} + +.autocomplete:async:compadd() { + local -A _opts_=() + local -a _xopts_=() _displ_=() _matches_=() + local -P _displ_name_= _matches_name_= + + zparseopts -A _opts_ -E -- D: E: O: X:=_xopts_ x:=_xopts_ + + local -Pi _unused_lines_=$(( _autocomplete__max_lines - compstate[list_lines] )) + + # If $_grp is not set, then _describe is adding completions in a normal way and we don't need to + # do all this. + if [[ -v _autocomplete__described_lines && -n $_grp ]]; then + + # We cannot interfere when _describe is actually adding the completions or we risk breaking the + # layout. + if [[ -z $_opts_[-D] ]]; then + builtin compadd "$@" + return + fi + + _displ_name_=$_opts_[-D] + _matches_name_=$_opts_[-O] + + # We already ran out of space. + if [[ -v _autocomplete__partial_list ]]; then + set -A $_displ_name_ + [[ -n $_matches_name_ ]] && + set -A $_matches_name_ + fi + + builtin compadd "$@" + local -Pi _ret_=$? + + local -i _ndisplay_=${(PA)#_displ_name_} + local -i _lines_left_for_describe_=$(( _unused_lines_ - _autocomplete__described_lines )) + + # The number of lines that would be added is equal to the number of unique display strings. + if (( ${#${(u)${(PA)_displ_name_}[@]#*:}} > _lines_left_for_describe_ )); then + local -Pi _matches_to_remove=$(( _ndisplay_ - max( 0, _lines_left_for_describe_ ) )) + if (( _matches_to_remove < _ndisplay_ )); then + shift -p $_matches_to_remove $_displ_name_ $_matches_name_ + else + set -A $_displ_name_ + [[ -n $_matches_name_ ]] && + set -A $_matches_name_ + fi + _ndisplay_=${(PA)#_displ_name_} + .autocomplete:async:compadd:disable + fi + (( _autocomplete__described_lines += _ndisplay_ )) + + return _ret_ + fi + + # We already ran out of space. + if [[ -v _autocomplete__partial_list ]]; then + [[ -n $_opts_[-D] ]] && + set -A $_opts_[-D] + [[ -n $_opts_[-O] ]] && + set -A $_opts_[-O] + return 1 + fi + + # If + if [[ -n $_opts_[-D]$_opts_[-O] ]]; then + builtin compadd "$@" + return + fi + + local -i _old_total_lines=$compstate[list_lines] + + # Need to remove prompt escape codes or compadd might crash. + local -Pi _total_new_lines_="$( + zparseopts -a _xopts_ -D -E -- X: x: + builtin compadd "$@" + print -nr -- $(( $compstate[list_lines] - _old_total_lines )) + )" + + local -Pi _new_completion_lines_="$( + zparseopts -a _xopts_ -D -E -- X: x: + builtin compadd "$@" + print -nr -- $(( $compstate[list_lines] - _old_total_lines )) + )" + + local -Pi _new_heading_lines_=$(( _total_new_lines_ - _new_completion_lines_ )) + + # Everything fits. + if (( _total_new_lines_ + $compstate[list_lines] <= _autocomplete__max_lines )); then + builtin compadd "$@" + return + fi + + # We're apparently trying to add a message that spans more than one line, but not any completions. + if (( _new_heading_lines_ > 1 && _new_completion_lines_ < 1 )); then + .autocomplete:async:compadd:disable + return 1 + fi + + local -a _dopt_=() + zparseopts -a _dopt_ -D -E -- d: ld: + + _displ_name_=$_dopt_[2] + + # Collect all matching completions and their display strings (if any). + local -a _Dopt_=() + [[ -n $_displ_name_ ]] && + _Dopt_=( -D $_displ_name_ ) + builtin compadd -O _matches_ $_Dopt_ "$@" + + # If we don't have an array with display strings, then create one. + if [[ -z $_displ_name_ ]]; then + _displ_name_=_displ_ + _displ_=( "$_matches_[@]" ) + _dopt_=( -d $_displ_name_ ) + fi + + local -Pi _nmatches_per_line_=$(( 1.0 * $#_matches_ / _new_completion_lines_ )) + + # If we need more than one line per match, then make each match fit exactly one line. + if (( _nmatches_per_line_ < 1 )); then + # WORKAROUND: Zsh mistakenly treats display strings that are exactly $COLUMNS wide as not + # fitting on one line. + set -A $_displ_name_ ${(@r:COLUMNS-1:)${(PA)_displ_name_}[@]//$'\n'/\n} + + _dopt_=( -ld $_displ_name_ ) + (( _nmatches_per_line_ = 1 )) + fi + + # Need to round this down _before_ subtracting it or it will effectively be rounded up. + local -Pi _nmatches_that_fit_=$(( + ( _unused_lines_ - _new_heading_lines_ ) * _nmatches_per_line_ + )) + + local -Pi _nmatches_to_remove_=$(( $#_matches_ - max( 0, _nmatches_that_fit_ ) )) + + if (( _nmatches_to_remove_ > 0 )); then + # If we're going to remove anything, then we need to make room for the `(MORE)` prompt. + (( _nmatches_to_remove_++ )) + + if (( _nmatches_to_remove_ < $#_matches_ )); then + shift -p $_nmatches_to_remove_ _matches_ $_displ_name_ + else + set -A _matches_ + set -A $_displ_name_ + fi + .autocomplete:async:compadd:disable + fi + + _autocomplete__compadd_opts_len "$@" + builtin compadd "$_dopt_[@]" -a "$@[1,?]" _matches_ +} + +.autocomplete:async:compadd:disable() { + typeset -g _autocomplete__partial_list=$curtag + comptags() { false } # Stop completion from trying more tags. +} diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__compinit b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__compinit new file mode 100644 index 00000000..359e3dd2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__compinit @@ -0,0 +1,181 @@ +#!/bin/zsh +zmodload -Fa zsh/files b:zf_rm +zmodload -F zsh/parameter p:funcstack p:functions +builtin autoload -Uz is-at-least + +typeset -ga _autocomplete__compdef=() +compdef() { + typeset -ga _autocomplete__compdef=( $_autocomplete__compdef[@] "${(j: :)${(@q+)@}}" ) +} + +[[ -v functions[_bash_complete] ]] || + _bash_complete compgen complete () { + unfunction _bash_complete compgen complete + builtin autoload +X -Uz bashcompinit + bashcompinit + bashcompinit() { : } + ${(%):-%N} "$@" + } + +${0}:precmd() { + emulate -L zsh + setopt $_autocomplete__func_opts[@] + + [[ -v CDPATH && -z $CDPATH ]] && + unset CDPATH cdpath + + # Decrease Oh My Zsh start-up time. See below. + local -Pa omzdump=() + [[ -v ZSH_COMPDUMP && -r $ZSH_COMPDUMP ]] && + omzdump=( ${(f)"$( < $ZSH_COMPDUMP )"} ) + + typeset -g \ + _comp_dumpfile=${_comp_dumpfile:-${ZSH_COMPDUMP:-${XDG_CACHE_HOME:-$HOME/.cache}/zsh/compdump}} + + if [[ -v _comps[-command-] && $_comps[-command-] != _autocomplete__command ]]; then + zf_rm -f $_comp_dumpfile + else + + # Check if our most recently modified completion function is newer than the comp dump file. + local -Pa newest=( ~autocomplete/Completions/_*~*.zwc(N-.omY1) ) + if [[ $newest[1] -nt $_comp_dumpfile ]]; then + zf_rm -f $_comp_dumpfile + fi + fi + + if [[ ! -v _comp_setup ]] || [[ ! -r $_comp_dumpfile ]]; then + unfunction compdef compinit 2> /dev/null + bindkey() { : } + { + builtin autoload +X -Uz compinit + local -a compargs=() + zstyle -a ':autocomplete::compinit' arguments compargs + compinit -d "$_comp_dumpfile" "$compargs[@]" + } always { + unfunction bindkey + } + bindkey '^Xh' _complete_help + + # Prevent Oh My Zsh from deleting comp dump file. + (( ${#omzdump[@]} > 0 )) && + tee -a "$ZSH_COMPDUMP" &> /dev/null < /dev/null + _autocomplete__unambiguous + compstate[list_max]=0 + MENUSCROLL=0 + } + + .autocomplete__patch _complete + _complete() { + local -i nmatches=$compstate[nmatches] + + PREFIX=$PREFIX$SUFFIX + SUFFIX= + autocomplete:_complete:old "$@" + + # WORKAROUND: Some completion functions mistakenly don't return 0 when they have succeeded. + (( compstate[nmatches] > nmatches )) + } + + + ## + # WORKAROUND: _approximate won't do corrections if there already is a function called 'compadd'. + # + + .autocomplete__patch _approximate + _approximate() { + { + [[ -v functions[compadd] ]] && + functions[autocomplete:compadd:old]="$functions[compadd]" + functions[compadd]="$functions[autocomplete:approximate:compadd]" + + autocomplete:_approximate:old + } always { + unfunction compadd 2> /dev/null + if [[ -v functions[autocomplete:compadd:old] ]]; then + functions[compadd]="$functions[autocomplete:compadd:old]" + unfunction autocomplete:compadd:old + fi + } + } + + autocomplete:approximate:compadd() { + local ppre="$argv[(I)-p]" + + [[ ${argv[(I)-[a-zA-Z]#U[a-zA-Z]#]} -eq 0 && + "${#:-$PREFIX$SUFFIX}" -le _comp_correct ]] && return + + if [[ "$PREFIX" = \~* && ( ppre -eq 0 || "$argv[ppre+1]" != \~* ) ]]; then + PREFIX="~(#a${_comp_correct})${PREFIX[2,-1]}" + else + PREFIX="(#a${_comp_correct})$PREFIX" + fi + + if [[ -v functions[autocomplete:compadd:old] ]]; then + autocomplete:compadd:old "$@" + else + builtin compadd "$@" + fi + } +} diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__config b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__config new file mode 100644 index 00000000..d1d53b97 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__config @@ -0,0 +1,159 @@ +#!/bin/zsh +zmodload -Fa zsh/zutil b:zstyle + +typeset -g ZLE_REMOVE_SUFFIX_CHARS=$' /;\n\r\t' +typeset -g ZLE_SPACE_SUFFIX_CHARS='|&<>-+' + +builtin zstyle ':completion:*' use-cache yes +builtin zstyle -e ':completion:*' cache-path autocomplete:config:cache-path +autocomplete:config:cache-path() { + typeset -ga reply=( "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/compcache" ) +} + +builtin zstyle ':completion:*' completer \ + _expand _complete _complete:-fuzzy _correct _approximate _ignored + +builtin zstyle -e ':completion:*' max-errors autocomplete:config:max-errors +autocomplete:config:max-errors() { + typeset -ga reply=( $(( min( 2, ( $#PREFIX + $#SUFFIX ) / 3 ) )) ) +} + +# Order of matchers matters: m should come before r, which should come before l. +# Otherwise, the results are not as expected. +local lower_to_upper='m:{[:lower:]-}={[:upper:]_}' +local any_before_dot='r:|[.]=**' +local any_before_any='r:|?=**' +local nonseparators_after_any_before_separator='r:?||[-_ \]=*' +local any_before_word='l:|=*' +local separator_after_any='l:?|=[-_ \]' +builtin zstyle ':completion:*' matcher-list \ + "$lower_to_upper $any_before_dot" +builtin zstyle ':completion:*-fuzzy:*' matcher-list \ + "$lower_to_upper $any_before_dot $any_before_word" \ + "+$nonseparators_after_any_before_separator $separator_after_any" \ + "$lower_to_upper $any_before_any" + +local minus_at_beginning_to_plus='b:-=+' +builtin zstyle ':completion:*:options' matcher $minus_at_beginning_to_plus + +builtin zstyle ':completion:*' prefix-needed yes +builtin zstyle ':completion:*:functions' ignored-patterns '*.*' '*:*' '+*' +builtin zstyle ':completion:*:users' ignored-patterns '_*' +builtin zstyle ':completion:*:widgets' ignored-patterns '*.*' '*:*' +builtin zstyle ':completion:*' single-ignored '' + +builtin zstyle ':completion:*:expand-alias:*' complete yes + +builtin zstyle ':completion:*:expand:*' tag-order 'expansions all-expansions' - +builtin zstyle ':completion:*:expand:*' accept-exact continue +builtin zstyle ':completion:*:expand:*' add-space no +builtin zstyle ':completion:*:expand:*' glob yes +builtin zstyle ':completion:*:expand:*' keep-prefix no # Needed for file type highlighting +builtin zstyle ':completion:*:expand:*' substitute yes +builtin zstyle ':completion:*:expand:*' subst-globs-only yes + +builtin zstyle -e ':completion:*:-command-:*' tag-order autocomplete:config:tag-order:command +autocomplete:config:tag-order:command() { + if [[ $PREFIX == (|.|*/*) ]]; then + typeset -ga reply=( 'suffix-aliases (|*-)directories executables (|*-)files' - ) + else + typeset -ga reply=( 'aliases suffix-aliases functions reserved-words builtins' ) + if (( path[(I).] )); then + reply[1]+=' (|*-)directories executables (|*-)files commands' + else + reply[1]+=' commands (|*-)directories executables (|*-)files' + fi + fi +} +builtin zstyle ':completion:*:-tilde-:*' tag-order directory-stack named-directories + +builtin zstyle ':completion:*:(approximate|correct):*' tag-order '! original' - + +# Complete options rather than directory stack. You can get directory stack by typing `~-` (tilde plus dash). +builtin zstyle ':completion:*:cd:*' complete-options yes +builtin zstyle ':completion:*:cd:*' tag-order '! directory-stack' - + +# Don't show the giant list of history lines. +builtin zstyle ':completion:*:fc:*' tag-order options - + +builtin zstyle -e ':completion:*:git-*:*' tag-order 'autocomplete:config:tag-order:git "$@"' +autocomplete:config:tag-order:git() { + reply=() + (( compstate[nmatches] )) && + reply=( + '! heads(|-*) *-remote remote-* blob-*' + - + ) +} + +# Complete only the tail of a path. +builtin zstyle ':completion:*' ignore-parents 'parent pwd directory' +builtin zstyle ':completion:*:paths' expand suffix +builtin zstyle ':completion:*:paths' list-suffixes yes +builtin zstyle ':completion:*:paths' special-dirs no + +builtin zstyle ':completion:*' group-name '' +builtin zstyle ':completion:*:-command-:*' group-name commands +builtin zstyle ':completion:*:all-expansions' group-name 'expansion' + +builtin zstyle ':completion:*' group-order \ + expansions all-expansions options \ + aliases suffix-aliases functions reserved-words builtins commands \ + remotes hosts recent-branches commits \ + local-directories directories executables + +builtin zstyle ':completion:*' file-patterns '*(-/):directories:directory %p(#q^-/):globbed-files' +builtin zstyle -e ':completion:*:-command-:*' file-patterns autocomplete:config:file-patterns:command +autocomplete:config:file-patterns:command() { + [[ $PREFIX$SUFFIX != */* ]] && + typeset -ga reply=( '*(-/):directories:directory ./*(-*^/):executables:"executable file"' ) +} +builtin zstyle ':completion:*:(.|source):*' file-patterns \ + '%p(#q-/):directories:directory %p~*.zwc(-.^*):globbed-files' '%p~*.zwc(-^/):globbed-files' + +# Don't combine parameters with same values. +builtin zstyle ':completion:*:parameters' list-grouped no + +builtin zstyle -e ':completion:*:-command-:*' format autocomplete:config:format command +builtin zstyle -e ':completion:*:descriptions' format autocomplete:config:format %d +builtin zstyle -e ':completion:*:all-expansions' format autocomplete:config:format expansion +autocomplete:config:format() { + reply=( $'%{\e[0;1;2m%}'$1$'%{\e[0m%}' ) +} +builtin zstyle -e ':completion:*:all-expansions' format autocomplete:config:format expansion +builtin zstyle -e ':completion:*:expansions' format autocomplete:config:format '"globbed files"' + +builtin zstyle -e ':completion:*:warnings' format autocomplete:config:format:warnings +autocomplete:config:format:warnings() { + [[ $CURRENT == 1 && -z $PREFIX$SUFFIX ]] || + autocomplete:config:format 'no matching %d completions' +} + +builtin zstyle ':completion:*:messages' format '%F{9}%d%f' +builtin zstyle ':completion:*:history-lines' format '' + +builtin zstyle ':completion:*' auto-description '%d' +builtin zstyle ':completion:*:parameters' extra-verbose yes +builtin zstyle ':completion:*:default' select-prompt '%F{black}%K{12}line %l %p%f%k' + +builtin zstyle ':completion:*' insert-sections yes +builtin zstyle ':completion:*' separate-sections yes + +# Needed for _gnu_generic to prevent descriptions from getting cropped. +is-at-least 5.9 || + builtin zstyle ':completion:*' command '- COLUMNS=999' + +${0}:precmd() { + typeset -g _comp_setup="$_comp_setup"'; + [[ $_comp_caller_options[globdots] == yes ]] && setopt globdots' + + # Remove incompatible settings. + local -P key= setting= + for key in menu list-prompt; do + for setting in ${(f)"$( zstyle -L '*' $key )"}; do + eval "${setting/zstyle(| -e)/zstyle -d}" + done + done + builtin zstyle ':completion:*:*:*:*:default' menu no no-select + unset LISTPROMPT +} diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__key-bindings b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__key-bindings new file mode 100644 index 00000000..117801a3 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__key-bindings @@ -0,0 +1,64 @@ +#!/bin/zsh +zmodload zsh/complist +zmodload -F zsh/terminfo p:terminfo + +local -Pa prefix=( '\e'{\[,O} ) +local -Pa key_up=( ${^prefix}A ) +local -Pa key_down=( ${^prefix}B ) +local -Pa key_alt_up=( '\e'$^key_up '\e[1;3A' ) +local -Pa key_alt_down=( '\e'$^key_down '\e[1;3B' ) + +local -A main=() emacs=() vicmd=() menukeys=() + +${0}:bind() { + local -P key= widget=$1 menuwidget=$2 + + emacs[$3]=$widget + menukeys[$3]=$menuwidget + + vicmd[$4]=$widget + key="^[$4" + menukeys[$key]=$menuwidget + + shift 4 + for key; do + main[$key]=$widget + menukeys[$key]=$menuwidget + done +} + +${0}:bind up-line-or-search up-history '^P' 'k' $key_up[@] +${0}:bind down-line-or-select down-history '^N' 'j' $key_down[@] + +${0}:bind history-search-backward vi-backward-blank-word '\ep' '^P' $key_alt_up[@] +${0}:bind menu-select vi-forward-blank-word '\en' '^N' $key_alt_down[@] + +${0}:bind history-incremental-search-backward history-incremental-search-backward '^R' '/' +${0}:bind menu-search history-incremental-search-forward '^S' '?' + +#local backtab=$terminfo[kcbt] + +menukeys+=( + '\t' menu-complete +# "$backtab" reverse-menu-complete + '^@' accept-and-hold + '^[v' accept-and-hold + '^_' undo + '^[u' undo + "$terminfo[kpp]" backward-word + "$terminfo[knp]" forward-word +) +main+=( + '\t' complete-word +# "$backtab" expand-word +) +emacs+=( + '^X/' recent-paths +) + +bindkey -M main "${(kv@)main}" +bindkey -M emacs "${(kv@)emacs}" +bindkey -M vicmd "${(kv@)vicmd}" +bindkey -M menuselect "${(kv@)menukeys}" + +unfunction ${0}:bind diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__main b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__main new file mode 100644 index 00000000..3a97a4d6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__main @@ -0,0 +1,94 @@ +#!/bin/zsh +zmodload -Fa zsh/files b:zf_mkdir b:zf_rm +zmodload -F zsh/parameter p:functions +zmodload -F zsh/system p:sysparams +zmodload -F zsh/zleparameter p:widgets +zmodload -Fa zsh/zutil b:zstyle +builtin autoload +X -Uz add-zsh-hook zmathfunc +zmathfunc + +typeset -ga _autocomplete__ctxt_opts=( completealiases completeinword ) + +typeset -ga _autocomplete__mods=( compinit config widgets key-bindings recent-dirs async ) + +typeset -gU FPATH fpath=( ~autocomplete/Completions $fpath[@] ) + +local -P xdg_data_home=${XDG_DATA_HOME:-$HOME/.local/share} + +local -P zsh_data_dir=$xdg_data_home/zsh +[[ -d $zsh_data_dir ]] || + zf_mkdir -pm 0700 $zsh_data_dir + +local -P old_logdir=$xdg_data_home/zsh-autocomplete/log +[[ -d $old_logdir ]] && + zf_rm -fr -- $old_logdir + +local -P logdir=${XDG_STATE_HOME:-$HOME/.local/state}/zsh-autocomplete/log + +local -P bug= +for bug in ${logdir} ${logdir:h}; do + [[ -d $bug ]] || + zf_rm -f $bug +done + +zf_mkdir -p -- $logdir +hash -d autocomplete-log=$logdir + +local -Pa older_than_a_week=( $logdir/*(Nmd+7) ) +(( $#older_than_a_week[@] )) && + zf_rm -f -- $older_than_a_week[@] + +typeset -g _autocomplete__log=${logdir}/${(%):-%D{%F}}.log +typeset -g _autocomplete__ps4=$'%D{%T.%.} %e:%N:%I\t%? %(1_,%_ ,)' + +local -P zsh_cache_dir=${XDG_CACHE_HOME:-$HOME/.cache}/zsh +[[ -d $zsh_cache_dir ]] || + zf_mkdir -pm 0700 $zsh_cache_dir + +local -P mod= +for mod in $_autocomplete__mods; do + builtin zstyle -T ":autocomplete:$mod" enabled && + .autocomplete__$mod "$@" + unfunction .autocomplete__$mod +done + +add-zsh-hook precmd ${0}:precmd + +# Make sure we always run before Autosuggest, so we don't overwrite its default ignore list. +typeset -gaU precmd_functions=( ${0}:precmd $precmd_functions ) + +${0}:precmd() { + # WORKAROUND: For hook functions in Zsh 5.8, $0 can be something else than the function name. + 0=${(%):-%N} + + add-zsh-hook -d precmd $0 + unfunction $0 + + () { + emulate -L zsh + setopt $_autocomplete__func_opts[@] + + # Workaround for https://www.zsh.org/mla/workers/2021/msg01310.html + if builtin zstyle -L zle-hook types > /dev/null; then + local -P hook= + for hook in \ + zle-{isearch-{exit,update},line-{pre-redraw,init,finish},history-line-set,keymap-select} + do + [[ -v widgets[$hook] && + $widgets[$hook] == user:_zsh_highlight_widget_orig-s*-r<->-$hook ]] && + builtin zle -N $hook azhw:$hook + done + fi + } + + local -P mod= + for mod in $_autocomplete__mods; do + mod=.autocomplete__${mod}:precmd + if [[ -v functions[$mod] ]]; then + $mod + unfunction $mod + fi + done + + true +} diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__recent-dirs b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__recent-dirs new file mode 100644 index 00000000..07b12324 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__recent-dirs @@ -0,0 +1,40 @@ +#!/bin/zsh +zmodload -Fa zsh/files b:zf_mv b:zf_mkdir +zmodload -F zsh/parameter p:commands p:dirstack p:functions + +${0}:precmd() { + [[ -v functions[+autocomplete:recent-directories] ]] && + return + + setopt autopushd pushdignoredups # Set *global* shell options. + builtin autoload -RUz chpwd_recent_filehandler + + local __='' + builtin zstyle -s :chpwd: recent-dirs-file __ || + builtin zstyle ':chpwd:*' recent-dirs-file ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/chpwd-recent-dirs + builtin zstyle -s :chpwd: recent-dirs-max __ || + builtin zstyle ':chpwd:*' recent-dirs-max 0 + + if ! (( $#dirstack[@] )); then + local -aU reply=() + chpwd_recent_filehandler + dirstack=( ${^reply[@]:#$PWD}(N-/) ) + fi + + +autocomplete:recent-directories:save() { + chpwd_recent_filehandler $PWD $dirstack[@] + } + add-zsh-hook chpwd +autocomplete:recent-directories:save + + +autocomplete:recent-directories() { + typeset -ga reply + + # Don't complete /, ~, $PWD or its children, or nonexistent dirs. + reply=( ${^dirstack[@]:#([/~]|$PWD(|/[^/]#))}(N) ) + + [[ -n $1 ]] && + reply=( ${(M)reply:#(#l)*${(~j:*:)${(s::)1}}*} ) + + (( $#reply[@] )) + } +} diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__widgets b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__widgets new file mode 100644 index 00000000..dd75b253 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Init/.autocomplete__widgets @@ -0,0 +1,46 @@ +#!/bin/zsh +zmodload zsh/complist +typeset -ga _autocomplete__suggest_ignore_widgets=() +typeset -g ZSH_AUTOSUGGEST_MANUAL_REBIND=1 +typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=.autosuggest-orig- + +${0}:c() { + _autocomplete__suggest_ignore_widgets+=( $1 ) + builtin zle -C "$1" "$2" .autocomplete__${3}__completion-widget +} + +${0}:z() { + builtin zle -N "$1" .autocomplete__${2}__zle-widget +} + +${0}:z up-line-or-search{,} +${0}:z down-line-or-select{,} +${0}:z history-search{-backward,} + +${0}:precmd() { + emulate -L zsh + setopt $_autocomplete__func_opts[@] + + 0=${0%:*} + + # Create all completion widgets here, to avoid getting them wrapped by + # Autosuggest or Syntax Highlighting. + + local -P tab_style= + for tab_style in complete-word menu-complete menu-select; do + ${0}:c "$tab_style" "$tab_style" complete-word + done + ${0}:c {,}reverse-menu-complete complete-word + ${0}:c insert-unambiguous-or-complete {,}complete-word + ${0}:c menu-search menu-select complete-word + ${0}:c history-search-backward menu-select history-search + + # Autosuggestions otherwise makes $WIDGETSTYLE disappear + [[ -v ZSH_AUTOSUGGEST_IGNORE_WIDGETS ]] && + ZSH_AUTOSUGGEST_IGNORE_WIDGETS+=( + $_autocomplete__suggest_ignore_widgets + ) + + unset _autocomplete__suggest_ignore_widgets + unfunction ${0}:{c,z} +} diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Util/.autocomplete__patch b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Util/.autocomplete__patch new file mode 100644 index 00000000..e5874bac --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Util/.autocomplete__patch @@ -0,0 +1,8 @@ +#!/bin/zsh +zmodload -F zsh/parameter p:functions + +functions[autocomplete:${1}:old]="$( + unfunction $1 2> /dev/null + builtin autoload +X -Uz $1 + print -r -- "$functions[$1]" +)" diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Util/.autocomplete__zle-flags b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Util/.autocomplete__zle-flags new file mode 100644 index 00000000..41ef2f4d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Util/.autocomplete__zle-flags @@ -0,0 +1,27 @@ +#!/bin/zsh +emulate -L zsh +setopt $_autocomplete__func_opts[@] + +typeset -g _autocomplete__last_cutbuffer +typeset -g _autocomplete__zle_flags= +{ + if (( YANK_ACTIVE )); then + _autocomplete__zle_flags=yank + (( YANK_END <= CURSOR )) && + _autocomplete__zle_flags+=before + + return 1 # Tell caller to abort. + fi + + [[ $_autocomplete__last_cutbuffer != $CUTBUFFER ]] && + _autocomplete__zle_flags=kill + + return 0 + +} always { + [[ -n $_autocomplete__zle_flags ]] && + builtin zle -f $_autocomplete__zle_flags + typeset -g _autocomplete__last_cutbuffer=$CUTBUFFER +} + +return 0 diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__complete-word__completion-widget b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__complete-word__completion-widget new file mode 100644 index 00000000..a81c3bc4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__complete-word__completion-widget @@ -0,0 +1,25 @@ +#!/bin/zsh +setopt localoptions banghist +zmodload -F zsh/terminfo p:terminfo + +local context=${curcontext:-${WIDGET}:::} +unset curcontext +local +h curcontext=$context + +local +h -a comppostfuncs=( .autocomplete__complete-word__post "$comppostfuncs[@]" ) + +if [[ -z $compstate[old_list] && $curcontext == history-incremental-search* ]]; then + autocomplete:_main_complete:new - history-lines _autocomplete__history_lines +elif [[ -z $compstate[old_list] && $curcontext == recent-paths:* ]]; then + autocomplete:_main_complete:new - recent-paths _autocomplete__recent_paths +elif [[ -z $compstate[old_list] ]] || + [[ -v _autocomplete__partial_list && $WIDGETSTYLE == (|*-)(list|menu)(|-*) ]] || + _autocomplete__should_insert_unambiguous; then + compstate[old_list]= + autocomplete:_main_complete:new +else + compstate[old_list]=keep + autocomplete:_main_complete:new - +fi + +[[ $_lastcomp[nmatches] -gt 0 && -n $compstate[insert] ]] diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__complete-word__post b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__complete-word__post new file mode 100644 index 00000000..1557c97f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__complete-word__post @@ -0,0 +1,65 @@ +#autoload + +local -a match=() mbegin=() mend=() # `zstyle` for some reason assigns these. + +unset MENUMODE MENUSELECT + +if [[ $WIDGETSTYLE != (|*-)menu(|-*) ]]; then + compstate[list]= + zle -Rc +fi + +if [[ $_completer == _prefix ]]; then + compstate[to_end]= +else + compstate[to_end]='always' +fi + +{ + compstate[insert]= + + if _autocomplete__should_insert_unambiguous; then + if [[ $WIDGETSTYLE == (|*-)menu(|-*) ]]; then + compstate[insert]='automenu-' + fi + compstate[insert]+='unambiguous' + unset _autocomplete__unambiguous + + return + fi + + if [[ $WIDGETSTYLE == (|*-)menu(|-*) ]]; then + if [[ $WIDGETSTYLE == (|*-)select(|-*) ]]; then + typeset -gi MENUSELECT=0 + if [[ $WIDGET == (|*-)search(|-*) ]]; then + typeset -g MENUMODE=search-forward + fi + fi + compstate[insert]='menu:' + fi + if [[ $WIDGET == (|.)reverse-* || $WIDGETSTYLE == (|.)reverse-menu-complete ]]; then + compstate[insert]+='0' + else + compstate[insert]+='1' + fi + + local -Pa comptags=() + if [[ $compstate[old_list] == keep ]]; then + comptags=( $=_lastcomp[tags] ) + else + comptags=( $=_comp_tags ) + fi + + local -a spacetags=() + builtin zstyle -a ":autocomplete:$WIDGET:" add-space spacetags || + spacetags=( executables aliases functions builtins reserved-words commands ) + + [[ -n ${comptags:*spacetags} ]] && + compstate[insert]+=' ' + +} always { + unset _autocomplete__inserted + [[ -n $compstate[insert] ]] && + typeset -g _autocomplete__inserted + +} diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__down-line-or-select__zle-widget b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__down-line-or-select__zle-widget new file mode 100644 index 00000000..a0c603b3 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__down-line-or-select__zle-widget @@ -0,0 +1,7 @@ +#!/bin/zsh + +if [[ $RBUFFER == *$'\n'* ]]; then + builtin zle down-line +else + builtin zle menu-select -w +fi diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__history-search__completion-widget b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__history-search__completion-widget new file mode 100644 index 00000000..6924a0d4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__history-search__completion-widget @@ -0,0 +1,22 @@ +#!/bin/zsh +local 0=${(%):-%N} + +${0}() { + typeset -g curcontext=${WIDGET}::: + local +h -a comppostfuncs=( ${(%):-%N}:post "$comppostfuncs[@]" ) + compstate[old_list]= + autocomplete:_main_complete:new - history-lines _autocomplete__history_lines + + unset curcontext + (( _lastcomp[nmatches] )) +} + +${0}:post() { + typeset -gi MENUSELECT=0 + compstate[insert]='menu:0' + if (( compstate[nmatches] < 2 )); then + compstate[list]= + fi +} + +${0} "$@" diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__up-line-or-search__zle-widget b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__up-line-or-search__zle-widget new file mode 100644 index 00000000..a2b003b5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Functions/Widgets/.autocomplete__up-line-or-search__zle-widget @@ -0,0 +1,7 @@ +#!/bin/zsh + +if [[ $LBUFFER == *$'\n'* ]]; then + builtin zle up-line +else + builtin zle history-search-backward -w +fi diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/LICENSE b/gentoo/dotfiles/.zsh/zsh-autocomplete/LICENSE new file mode 100644 index 00000000..ac572f36 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2020-2025 Marlon Richert + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/README.md b/gentoo/dotfiles/.zsh/zsh-autocomplete/README.md new file mode 100644 index 00000000..91d38f55 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/README.md @@ -0,0 +1,347 @@ +# Autocomplete for Zsh +This plugin for Zsh adds real-time type-ahead autocompletion to your command line, similar to what +you find in desktop apps. While you type on the command line, available completions are listed +automatically; no need to press any keyboard shortcuts. Press Tab to insert the top +completion or to select a different one. + +Additional features: +* Out-of-the-box configuration of Zsh's completion system +* Multi-line history search +* Completion of recent directories +* Useful [keyboard shortcuts](#keyboard-shortcuts) +* Easy to [configure](#configuration) + +> Enjoy using this software? [Become a sponsor!](https://github.com/sponsors/marlonrichert) 💝 + +## Requirements +Recommended: +* Tested to work with [Zsh](http://zsh.sourceforge.net) 5.8 and newer. + +Minimum: +* Should theoretically work with Zsh 5.4, but I'm unable to test that. + +## Installation & setup +> Note: In this manual, `%` represents the command line prompt. If you see it in front of a command, +> it means you should run it on the command line, not put it in a script. + +First, install Autocomplete itself. Here are some way to do so: + * To use only releases (instead of the `main` branch), install `zsh-autocomplete` with a package + manager. As of this writing, this package is available through Homebrew, Nix, `pacman`, Plumage, + and (as `app-shells/zsh-autocomplete`) Portage. + * To always use the latest commit on the `main` branch, do one of the following: + * Use `pacman` to install `zsh-autocomplete-git`. + * Use a Zsh plugin manager to install `marlonrichert/zsh-autocomplete`. (If you don't have a + plugin manager yet, I recommend using [Znap](https://github.com/marlonrichert/zsh-snap).) + * Clone the repo directly: + ```sh + % git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git + ``` + +After installing, make the following modifications to your shell config: +* In your `.zshrc` file: + * Remove any calls to `compinit`. + * Add near the top, _before_ any calls to `compdef`: + ```sh + source /path/to/zsh-autocomplete/zsh-autocomplete.plugin.zsh + ``` +* When using **Ubuntu,** add to your `.zshenv` file: + ```sh + skip_global_compinit=1 + ``` +* When using **Nix,** add to your `home.nix` file: + ``` + programs.zsh.enableCompletion = false; + ``` + +Finally, restart your shell. Here's two ways to do so: +* Open a new tab or window in your terminal. +* Replace the current shell with a new one: + ```sh + % exec zsh + ``` + +### Updating +If you installed manually, run: +```sh +% git -C ~autocomplete pull +``` +Otherwise, simply use your package manager or plugin manager's update mechanisms. + +### Uninstalling + 1. Revert the actions you took to [install](#installation). + 1. Restart your shell. + +## Keyboard shortcuts +| `main` | `emacs` | `vicmd` | On the command line | In the menus +| ---: | ---: | ---: | :--- | :--- +| Enter
    Return | | | | Exit menu text search or exit menu +| Tab | | | Insert first listed menu item | Next completion +| ShiftTab | | | Expand the current word | Previous completion +| | CtrlN | J | Cursor down or enter completion menu | Change selection +| | CtrlP | K | Cursor up or enter [history menu](#history-menu) | Change selection +| Alt | AltN | CtrlN | Enter completion menu | Next section +| Alt | AltP | CtrlP | Enter history menu | Previous section +| PgDn | | | | Page down +| PgUp | | | | Page up +| | CtrlX / | | Toggle recent path search | +| | CtrlR | / | Toggle history search | Start menu text search or go to previous match +| | CtrlS | ? | Start menu text search | Start menu text search or go to next match +| | CtrlSpace | V | Toggle selection mode | Add another item +| | Ctrl-
    Ctrl/ | U | | Undo last item +| | CtrlG | | | Undo all added items + +### Caveats +* `main` is whichever keymap was aliased to `main` when Autocomplete was sourced. + * By default, this is `emacs`. + * If you run `bindkey -v` _before_ sourcing Autocomplete, then `main` will be `viins` when + Autocomplete installs keybindings. +* Plugins or other scripts that you load _after_ loading Autocomplete may override these bindings. + If you find that some shortcuts don't work as expected, then you can fix them by + * changing the order in which you source your plugins or by + * running [`bindkey` commands](#reassign-keys) in your dotfiles _after_ you source your plugins. +* Depending on your terminal, not all keybindings might be available to you. +* Instead of Alt, your terminal might require you to press Escape, + Option or Meta. +* In the menus, the bindings listed under `vicmd` require you to press Alt for each, + instead of just once. +* The bindings listed under `emacs` and `vicmd` are always both active in the menus, no matter which + keymap you actually use. This is a limitation of Zsh. +* What any other keys do while you're in a menu depends on the keymap from which you opened the + menu. See the Zsh manual section on [menu + selection](https://zsh.sourceforge.io/Doc/Release/Zsh-Modules.html#Menu-selection) for more info. + +## Configuration +The following are the most commonly requested ways to configure Autocomplete's behavior. To use any +of these, add the code shown to your `.zshrc` file and modify it there, then restart you shell. + +### Reassign keys +You can use [Zsh's `bindkey` +command](https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Zle-Builtins), _after_ loading +Autocomplete, to customize your keybindings. Below are some examples of what you can do with this. + +#### Make Tab and ShiftTab cycle completions on the command line +This makes Tab and ShiftTab, when pressed on the command line, +cycle through listed completions, without changing what's listed in the menu: +```sh +bindkey '^I' menu-complete +bindkey "$terminfo[kcbt]" reverse-menu-complete +``` + +#### Make Tab and ShiftTab go to the menu +This makes Tab and ShiftTab, when pressed on the command line, +enter the menu instead of inserting a completion: +```sh +bindkey '^I' menu-select +bindkey "$terminfo[kcbt]" menu-select +``` + +#### Make Tab and ShiftTab change the selection in the menu +This makes Tab and ShiftTab move the selection in the menu right +and left, respectively, instead of exiting the menu: +```sh +bindkey -M menuselect '^I' menu-complete +bindkey -M menuselect "$terminfo[kcbt]" reverse-menu-complete +``` + +#### Make and always move the cursor on the command line +This makes and always move the cursor on the command line, even when you +are in the menu: +```sh +bindkey -M menuselect '^[[D' .backward-char '^[OD' .backward-char +bindkey -M menuselect '^[[C' .forward-char '^[OC' .forward-char +``` + +#### Make Enter always submit the command line +This makes Enter always submit the command line, even when you are in the menu: +```sh +bindkey -M menuselect '^M' .accept-line +``` + +#### Restore Zsh-default history shortcuts +This restores the default Zsh keybindings for history control: +```sh +bindkey -M emacs \ + "^[p" .history-search-backward \ + "^[n" .history-search-forward \ + "^P" .up-line-or-history \ + "^[OA" .up-line-or-history \ + "^[[A" .up-line-or-history \ + "^N" .down-line-or-history \ + "^[OB" .down-line-or-history \ + "^[[B" .down-line-or-history \ + "^R" .history-incremental-search-backward \ + "^S" .history-incremental-search-forward \ + # +bindkey -a \ + "^P" .up-history \ + "^N" .down-history \ + "k" .up-line-or-history \ + "^[OA" .up-line-or-history \ + "^[[A" .up-line-or-history \ + "j" .down-line-or-history \ + "^[OB" .down-line-or-history \ + "^[[B" .down-line-or-history \ + "/" .vi-history-search-backward \ + "?" .vi-history-search-forward \ + # +``` + +### Pass arguments to `compinit` +If necessary, you can let Autocomplete pass arguments to `compinit` as follows: +```sh +zstyle '*:compinit' arguments -D -i -u -C -w +``` + +### First insert the common substring +You can make any completion widget first insert the longest sequence of characters +that will complete to all completions shown, if any, before inserting actual completions: +```zsh +# all Tab widgets +zstyle ':autocomplete:*complete*:*' insert-unambiguous yes + +# all history widgets +zstyle ':autocomplete:*history*:*' insert-unambiguous yes + +# ^S +zstyle ':autocomplete:menu-search:*' insert-unambiguous yes +``` + +#### Insert prefix instead of substring +When using the above, if you want each widget to first try to insert only the longest _prefix_ that +will complete to all completions shown, if any, then add the following: +```zsh +zstyle ':completion:*:*' matcher-list 'm:{[:lower:]-}={[:upper:]_}' '+r:|[.]=**' +``` +Note, though, that this will also slightly change what completions are listed initially. This is a +limitation of the underlying implementation in Zsh. + +### Customize common substring message +You can customize the way the common substring is presented. The following sets the presentation to +the default: +```zsh +builtin zstyle ':autocomplete:*:unambiguous' format \ + $'%{\e[0;2m%}%Bcommon substring:%b %0F%11K%d%f%k' +``` +`%d` will be replaced with the common substring. Additionally, the following [Zsh prompt escape +sequences](https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html#Visual-effects) are +supported for adding visual effects: +* `%B`: bold +* `%F`: foreground color +* `%K`: background color +* `%S`: `terminfo` "standout" +* `%U`: underline +* `%{...%}`: arbitrary [ANSI escape + sequence](https://en.wikipedia.org/wiki/ANSI_escape_code#Select_Graphic_Rendition_parameters) + +### Make Enter submit the command line straight from the menu +By default, pressing Enter in the menu search exits the search and +pressing it otherwise in the menu exits the menu. If you instead want to make +Enter _always_ submit the command line, use the following: +```zsh +bindkey -M menuselect '\r' .accept-line +``` + +### Add or don't add a space after certain completions +When inserting a completion, a space is added after certain types of +completions. The default list is as follows: +```zsh +zstyle ':autocomplete:*' add-space \ + executables aliases functions builtins reserved-words commands +``` +Modifying this list will change when a space is inserted. If you change the +list to `'*'`, a space is always inserted. If you put no elements in the list, +then a space is never inserted. + +### Start each command line in history search mode +This will make Autocomplete behave as if you pressed CtrlR at the start of +each new command line: +```zsh +zstyle ':autocomplete:*' default-context history-incremental-search-backward +``` + +### Wait with autocompletion until typing stops for a certain amount of seconds +Normally, Autocomplete fetches completions after you stop typing for about 0.05 seconds. You can +change this as follows: +```zsh +zstyle ':autocomplete:*' delay 0.1 # seconds (float) +``` + +### Wait longer before timing out autocompletion +Slow autocompletion can make the command line hang. Therefore, by default, Autocomplete waits at +most 1 second for completion to finish. You can change this value as follows: +```zsh +zstyle ':autocomplete:*' timeout 2.0 # seconds (float) +``` +Note, though, that increasing this value can make your command line feel less responsive. + +### Wait for a minimum amount of input +To suppress autocompletion until a minimum number of characters have been typed: +```zsh +zstyle ':autocomplete:*' min-input 3 +``` + +### Don't show completions if the current word matches a pattern +For example, this will stop completions from showing whenever the current word consists of two or +more dots: +```zsh +zstyle ':autocomplete:*' ignored-input '..##' +``` + +## Change the max number of lines shown +By default, Autocomplete lets the history menu fill half of the screen, and limits all real-time +listings to a maximum of 16 lines. You can change these limits as follows: + +```zsh +# Note: -e lets you specify a dynamically generated value. + +# Override default for all listings +# $LINES is the number of lines that fit on screen. +zstyle -e ':autocomplete:*:*' list-lines 'reply=( $(( LINES / 3 )) )' + +# Override for recent path search only +zstyle ':autocomplete:recent-paths:*' list-lines 10 + +# Override for history search only +zstyle ':autocomplete:history-incremental-search-backward:*' list-lines 8 + +# Override for history menu only +zstyle ':autocomplete:history-search-backward:*' list-lines 2000 +``` + +Note that for all real-time listings, the maximum number of lines is additionally capped to the +number of lines that fit on screen. However, there is no such limit for the history menu. If that +generates more lines than fit on screen, you can simply use PgUp and PgDn to +scroll through the excess lines. (Note: On some terminals, you have to additionally hold +Shift or, otherwise, it will scroll the terminal buffer instead.) + +### Use a custom backend for recent directories +Autocomplete comes with its own backend for keeping track of and listing recent directories (which +uses part of +[`cdr`](https://zsh.sourceforge.io/Doc/Release/User-Contributions.html#Recent-Directories) under the +hood). However, you can override this and supply Autocomplete with recent directories from any +source that you like. To do so, define a function like this: + +```sh ++autocomplete:recent-directories() { + + typeset -ga reply=( ) +} +``` + +#### Add a backend for recent files +Out of the box, Autocomplete doesn't track or offer recent files. However, it will do so if you add +a backend for it: + +```sh ++autocomplete:recent-files() { + + typeset -ga reply=( ) +} +``` + +## Troubleshooting +Try the steps in the +[bug report template](.github/ISSUE_TEMPLATE/bug-report.md). + +## Author & License +See the [LICENSE](LICENSE) file for details. diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Tests/__init__.zsh b/gentoo/dotfiles/.zsh/zsh-autocomplete/Tests/__init__.zsh new file mode 100644 index 00000000..50c73b00 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Tests/__init__.zsh @@ -0,0 +1,4 @@ +setopt localoptions extendedglob clobber NO_aliases localloops pipefail NO_shortloops NO_unset +zmodload zsh/param/private +autoload -Uz zmathfunc && zmathfunc +builtin autoload -UWz $PWD/{Completions,Functions}/**/[_.]autocomplete(__|:)*~*.zwc(DN-.:P) diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/Tests/complete-word.post.md b/gentoo/dotfiles/.zsh/zsh-autocomplete/Tests/complete-word.post.md new file mode 100644 index 00000000..ead426e4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/Tests/complete-word.post.md @@ -0,0 +1,106 @@ +Setup: +```zsh +% source Tests/__init__.zsh +% typeset -gA compstate=() _lastcomp=() +% typeset -ga comptags=() +% typeset -g curcontext= +% zstyle ':autocomplete:*' add-space 'FOO' 'BAR' +% zstyle ':autocomplete:*' insert-unambiguous yes +% +``` + +If there is a common substring, insert it (if enabled). +```zsh +% compstate[old_list]=keep _lastcomp[tags]= +% compstate[nmatches]=0 _lastcomp[nmatches]=1 +% WIDGETSTYLE= WIDGET= +% _autocomplete__unambiguous=FOO +% .autocomplete__complete-word__post +% print -r -- ${(q+)compstate[insert]} $+MENUSELECT $MENUMODE +unambiguous 0 +% +``` + +When using a menu widget, add automenu. +```zsh +% compstate[old_list]=keep _lastcomp[tags]= +% compstate[nmatches]=0 _lastcomp[nmatches]=1 +% WIDGETSTYLE=menu-select WIDGET= +% _autocomplete__unambiguous=FOO +% .autocomplete__complete-word__post +% print -r -- ${(q+)compstate[insert]} $+MENUSELECT $MENUMODE +automenu-unambiguous 0 +% +``` + +Default inserts first match. +```zsh +% compstate[old_list]=keep _lastcomp[tags]= +% compstate[nmatches]=0 _lastcomp[nmatches]=2 +% WIDGETSTYLE= WIDGET= +% _autocomplete__unambiguous= +% .autocomplete__complete-word__post +% print -r -- ${(q+)compstate[insert]} +1 +% +``` + +Add a space for certain tags. +```zsh +% compstate[old_list]=keep _lastcomp[tags]='BAR BAZ' +% compstate[nmatches]=0 _lastcomp[nmatches]=1 +% WIDGETSTYLE= WIDGET= +% _autocomplete__unambiguous= +% comptags=( BAR ) .autocomplete__complete-word__post +% print -r -- ${(q+)compstate[insert]} +'1 ' +% +``` + +`menu-` widgets insert `menu:`. +```zsh +% compstate[old_list]=keep _lastcomp[tags]='BAR BAZ' +% compstate[nmatches]=0 _lastcomp[nmatches]=2 +% WIDGETSTYLE=menu-complete WIDGET= +% _autocomplete__unambiguous= +% .autocomplete__complete-word__post +% print -r -- ${(q+)compstate[insert]} $+MENUSELECT $MENUMODE +'menu:1 ' 0 +% +``` + +`menu-select` widgets add `MENUSELECT` +```zsh +% compstate[old_list]=keep _lastcomp[tags]='BAR BAZ' +% compstate[nmatches]=0 _lastcomp[nmatches]=2 +% WIDGETSTYLE=menu-select WIDGET= +% _autocomplete__unambiguous= +% .autocomplete__complete-word__post +% print -r -- ${(q+)compstate[insert]} $+MENUSELECT $MENUMODE +'menu:1 ' 1 +% +``` + +`menu-select` widgets with `search` in name add `MENUMODE=search-forward`. +```zsh +% compstate[old_list]=keep _lastcomp[tags]='BAR BAZ' +% compstate[nmatches]=0 _lastcomp[nmatches]=2 +% WIDGETSTYLE=menu-select WIDGET=incremental-history-search-forward +% _autocomplete__unambiguous= +% .autocomplete__complete-word__post +% print -r -- ${(q+)compstate[insert]} $+MENUSELECT $MENUMODE +'menu:1 ' 1 search-forward +% +``` + +Reverse inserts the last match. +```zsh +% compstate[old_list]=keep _lastcomp[tags]='BAR BAZ' +% compstate[nmatches]=0 _lastcomp[nmatches]=2 +% WIDGETSTYLE=reverse-menu-complete WIDGET= +% _autocomplete__unambiguous= +% .autocomplete__complete-word__post +% print -r -- ${(q+)compstate[insert]} +'menu:0 ' +% +``` diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/run-tests.zsh b/gentoo/dotfiles/.zsh/zsh-autocomplete/run-tests.zsh new file mode 100755 index 00000000..d0eea537 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/run-tests.zsh @@ -0,0 +1,10 @@ +#!/bin/zsh -f +cd $( git rev-parse --show-toplevel ) + +git --version +print =zsh +typeset -p1 VENDOR OSTYPE ZSH_VERSION ZSH_PATCHLEVEL + +env -i HOME=$( mktemp -d ) PATH=$PATH FPATH=$FPATH zsh -f -- \ + clitest/clitest --list-run --progress dot --prompt '%' --color always \ + -- $PWD/Tests/*.md diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/zsh-autocomplete.plugin.zsh b/gentoo/dotfiles/.zsh/zsh-autocomplete/zsh-autocomplete.plugin.zsh new file mode 100644 index 00000000..e185aae5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autocomplete/zsh-autocomplete.plugin.zsh @@ -0,0 +1,21 @@ +#!/bin/zsh +unsetopt listbeep + +() { + zmodload -F zsh/parameter p:funcfiletrace + zmodload zsh/param/private + + typeset -ga _autocomplete__func_opts=( + localoptions extendedglob clobber + NO_aliases localloops pipefail NO_shortloops NO_unset warncreateglobal + ) + setopt $_autocomplete__func_opts[@] + + typeset -ga _autocomplete__funcfiletrace=( $funcfiletrace ) + + local basedir=${${(%):-%x}:P:h} + hash -d autocomplete=$basedir zsh-autocomplete=$basedir + + builtin autoload +X -Uz ~autocomplete/Functions/**/.autocomplete__*~*.zwc(D-:) + .autocomplete__main "$@" +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/.editorconfig b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.editorconfig new file mode 100644 index 00000000..ddabb17b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.editorconfig @@ -0,0 +1,18 @@ +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = tab +indent_size = 4 + +[*.md] +indent_style = space + +[*.rb] +indent_style = space +indent_size = 2 + +[*.yml] +indent_style = space +indent_size = 2 diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/ISSUE_TEMPLATE/bug-report.md b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 00000000..7663df69 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,36 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +### Describe the bug + + +### To Reproduce +Steps to reproduce the behavior: + + + +```sh +% zsh -df +% source path/to/zsh-autosuggestions.zsh +% ... # what do you do to reproduce? +``` + +### Expected behavior + + +### Screenshots + + +### Desktop + - OS + distribution: + - Zsh version: + - Plugin version: + +### Additional context + diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/ISSUE_TEMPLATE/feature_request.md b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..58746253 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +### Is your feature request related to a problem? Please describe. + + +### Describe the solution you'd like + + +### Describe alternatives you've considered + + +### Additional context + diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/workflows/integration.yml b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/workflows/integration.yml new file mode 100644 index 00000000..ec7bc750 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.github/workflows/integration.yml @@ -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 diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/.rspec b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.rspec new file mode 100644 index 00000000..43ae2036 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.rspec @@ -0,0 +1,3 @@ +--color +--require spec_helper +--format documentation diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/.rubocop.yml b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.rubocop.yml new file mode 100644 index 00000000..97facac8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.rubocop.yml @@ -0,0 +1,30 @@ +# Rails: +# Enabled: true + +AllCops: + TargetRubyVersion: 2.3 + Include: + - '**/Rakefile' + - '**/config.ru' + - '**/Gemfile' + +Metrics/LineLength: + Max: 120 + +Style/Documentation: + Enabled: false + +Style/DotPosition: + EnforcedStyle: trailing + +Style/FrozenStringLiteralComment: + Enabled: false + +Style/Lambda: + Enabled: false + +Style/MultilineMethodCallIndentation: + EnforcedStyle: indented + +Style/TrailingUnderscoreVariable: + Enabled: false diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/.ruby-version b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.ruby-version new file mode 100644 index 00000000..aedc15bb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/.ruby-version @@ -0,0 +1 @@ +2.5.3 diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/CHANGELOG.md b/gentoo/dotfiles/.zsh/zsh-autosuggestions/CHANGELOG.md new file mode 100644 index 00000000..30c77356 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/CHANGELOG.md @@ -0,0 +1,124 @@ +# 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) +- Fix a bug wrapping widgets that modify the buffer (#541) + + +## v0.6.4 +- Fix `vi-forward-char` triggering a bell when using it to accept a suggestion (#488) +- New configuration option to skip completion suggestions when buffer matches a pattern (#487) +- New configuration option to ignore history entries matching a pattern (#456) + +## v0.6.3 +- Fixed bug moving cursor to end of buffer after accepting suggestion (#453) + +## v0.6.2 +- Fixed bug deleting the last character in the buffer in vi mode (#450) +- Degrade gracefully when user doesn't have `zsh/system` module installed (#447) + +## v0.6.1 +- Fixed bug occurring when `_complete` had been aliased (#443) + +## v0.6.0 +- Added `completion` suggestion strategy powered by completion system (#111) +- Allow setting `ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE` to an empty string (#422) +- Don't fetch suggestions after copy-earlier-word (#439) +- Allow users to unignore zle-\* widgets (e.g. zle-line-init) (#432) + + +## v0.5.2 +- Allow disabling automatic widget re-binding for better performance (#418) +- Fix async suggestions when `SH_WORD_SPLIT` is set +- Refactor async mode to use process substitution instead of zpty (#417) + +## v0.5.1 +- Speed up widget rebinding (#413) +- Clean up global variable creations (#403) +- Respect user's set options when running original widget (#402) + +## v0.5.0 +- Don't overwrite config with default values (#335) +- Support fallback strategies by supplying array to suggestion config var +- Rename "default" suggestion strategy to "history" to name it based on what it actually does +- Reset opts in some functions affected by `GLOB_SUBST` (#334) +- Support widgets starting with dashes (ex: `-a-widget`) (#337) +- Skip async tests in zsh versions less than 5.0.8 because of reliability issues +- Fix handling of newline + carriage return in async pty (#333) + + +## v0.4.3 +- Avoid bell when accepting suggestions with `autosuggest-accept` (#228) +- Don't fetch suggestions after [up,down]-line-or-beginning-search (#227, #241) +- We are now running CI against new 5.5.1 version +- Fix partial-accept in vi mode (#188) +- Fix suggestion disappearing on fast movement after switching to `vicmd` mode (#290) +- Fix issue rotating through kill ring with `yank-pop` (#301) +- Fix issue creating new pty for async mode when previous pty is not properly cleaned up (#249) + +## v0.4.2 +- Fix bug in zsh versions older than 5.0.8 (#296) +- Officially support back to zsh v4.3.11 + +## v0.4.1 +- Switch to [[ and (( conditionals instead of [ (#257) +- Avoid warnnestedvar warnings with `typeset -g` (#275) +- Replace tabs with spaces in yaml (#268) +- Clean up and fix escaping of special characters (#267) +- Add `emacs-forward-word` to default list of partial accept widgets (#246) + +## v0.4.0 +- High-level integration tests using RSpec and tmux +- Add continuous integration with Circle CI +- Experimental support for asynchronous suggestions (#170) +- Fix problems with multi-line suggestions (#225) +- Optimize case where manually typing in suggestion +- Avoid wrapping any zle-\* widgets (#206) +- Remove support for deprecated options from v0.0.x +- Handle history entries that begin with dashes +- Gracefully handle being sourced multiple times (#126) +- Add enable/disable/toggle widgets to disable/enable suggestions (#219) + + +## v0.3.3 +- Switch from $history array to fc builtin for better performance with large HISTFILEs (#164) +- Fix tilde handling when extended_glob is set (#168) +- Add config option for maximum buffer length to fetch suggestions for (#178) +- Add config option for list of widgets to ignore (#184) +- Don't fetch a new suggestion unless a modification widget actually modifies the buffer (#183) + +## v0.3.2 +- Test runner now supports running specific tests and choosing zsh binary +- Return code from original widget is now correctly passed through (#135) +- Add `vi-add-eol` to list of accept widgets (#143) +- Escapes widget names within evals to fix problems with irregular widget names (#152) +- Plugin now clears suggestion while within a completion menu (#149) +- .plugin file no longer relies on symbolic link support, fixing issues on Windows (#156) + +## v0.3.1 + +- Fixes issue with `vi-next-char` not accepting suggestion (#137). +- Fixes global variable warning when WARN_CREATE_GLOBAL option enabled (#133). +- Split out a separate test file for each widget. + +## v0.3.0 + +- Adds `autosuggest-execute` widget (PR #124). +- Adds concept of suggestion "strategies" for different ways of fetching suggestions. +- Adds "match_prev_cmd" strategy (PR #131). +- Uses git submodules for testing dependencies. +- Lots of test cleanup. +- Various bug fixes for zsh 5.0.x and `sh_word_split` option. + + +## v0.2.17 + +Start of changelog. diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/DESCRIPTION b/gentoo/dotfiles/.zsh/zsh-autosuggestions/DESCRIPTION new file mode 100644 index 00000000..b69200fc --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/DESCRIPTION @@ -0,0 +1 @@ +Fish-like fast/unobtrusive autosuggestions for zsh. diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/Dockerfile b/gentoo/dotfiles/.zsh/zsh-autosuggestions/Dockerfile new file mode 100644 index 00000000..f5dd3c48 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/Dockerfile @@ -0,0 +1,21 @@ +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 libtool +RUN apk add --no-cache libcap-dev +RUN apk add --no-cache pcre-dev +RUN apk add --no-cache curl +RUN apk add --no-cache build-base +RUN apk add --no-cache ncurses-dev +RUN apk add --no-cache tmux + +WORKDIR /zsh-autosuggestions + +ADD install_test_zsh.sh ./ +RUN ./install_test_zsh.sh + +ADD Gemfile Gemfile.lock ./ +RUN bundle install diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/Gemfile b/gentoo/dotfiles/.zsh/zsh-autosuggestions/Gemfile new file mode 100644 index 00000000..8b5deecf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/Gemfile @@ -0,0 +1,5 @@ +source 'https://rubygems.org' + +gem 'rspec' +gem 'rspec-wait' +gem 'pry-byebug' diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/Gemfile.lock b/gentoo/dotfiles/.zsh/zsh-autosuggestions/Gemfile.lock new file mode 100644 index 00000000..63ee778a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/Gemfile.lock @@ -0,0 +1,41 @@ +GEM + remote: https://rubygems.org/ + specs: + byebug (9.0.5) + coderay (1.1.1) + diff-lcs (1.3) + method_source (0.8.2) + pry (0.10.4) + coderay (~> 1.1.0) + method_source (~> 0.8.1) + slop (~> 3.4) + pry-byebug (3.4.0) + byebug (~> 9.0) + pry (~> 0.10) + rspec (3.5.0) + rspec-core (~> 3.5.0) + rspec-expectations (~> 3.5.0) + rspec-mocks (~> 3.5.0) + rspec-core (3.5.4) + rspec-support (~> 3.5.0) + rspec-expectations (3.5.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.5.0) + rspec-mocks (3.5.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.5.0) + rspec-support (3.5.0) + rspec-wait (0.0.9) + rspec (>= 3, < 4) + slop (3.6.0) + +PLATFORMS + ruby + +DEPENDENCIES + pry-byebug + rspec + rspec-wait + +BUNDLED WITH + 1.13.6 diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/INSTALL.md b/gentoo/dotfiles/.zsh/zsh-autosuggestions/INSTALL.md new file mode 100644 index 00000000..7f0a3958 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/INSTALL.md @@ -0,0 +1,82 @@ +# Installation + +* [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/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://formulae.brew.sh/formula/zsh-autosuggestions) | +| NetBSD | [pkgsrc](http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/shells/zsh-autosuggestions/README.html) | +| FreeBSD | [pkg](https://cgit.freebsd.org/ports/tree/shells/zsh-autosuggestions) | + +## Antigen + +1. Add the following to your `.zshrc`: + + ```sh + antigen bundle zsh-users/zsh-autosuggestions + ``` + +2. Start a new terminal session. + +## Oh My Zsh + +1. Clone this repository into `$ZSH_CUSTOM/plugins` (by default `~/.oh-my-zsh/custom/plugins`) + + ```sh + git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions + ``` + +2. Add the plugin to the list of plugins for Oh My Zsh to load (inside `~/.zshrc`): + + ```sh + plugins=( + # other plugins... + zsh-autosuggestions + ) + ``` + +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`. + + ```sh + git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions + ``` + +2. Add the following to your `.zshrc`: + + ```sh + source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh + ``` + +3. Start a new terminal session. diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/LICENSE b/gentoo/dotfiles/.zsh/zsh-autosuggestions/LICENSE new file mode 100644 index 00000000..7ea78cc6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2013 Thiago de Arruda +Copyright (c) 2016-2021 Eric Freese + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/Makefile b/gentoo/dotfiles/.zsh/zsh-autosuggestions/Makefile new file mode 100644 index 00000000..6f5431e7 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/Makefile @@ -0,0 +1,35 @@ +SRC_DIR := ./src + +SRC_FILES := \ + $(SRC_DIR)/config.zsh \ + $(SRC_DIR)/util.zsh \ + $(SRC_DIR)/bind.zsh \ + $(SRC_DIR)/highlight.zsh \ + $(SRC_DIR)/widgets.zsh \ + $(SRC_DIR)/strategies/*.zsh \ + $(SRC_DIR)/fetch.zsh \ + $(SRC_DIR)/async.zsh \ + $(SRC_DIR)/start.zsh + +HEADER_FILES := \ + DESCRIPTION \ + URL \ + VERSION \ + LICENSE + +PLUGIN_TARGET := zsh-autosuggestions.zsh + +all: $(PLUGIN_TARGET) + +$(PLUGIN_TARGET): $(HEADER_FILES) $(SRC_FILES) + cat $(HEADER_FILES) | sed -e 's/^/# /g' > $@ + cat $(SRC_FILES) >> $@ + +.PHONY: clean +clean: + rm $(PLUGIN_TARGET) + +.PHONY: test +test: all + @test -n "$$TEST_ZSH_BIN" && echo "Testing zsh binary: $(TEST_ZSH_BIN)" || true + bundle exec rspec $(TESTS) diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/README.md b/gentoo/dotfiles/.zsh/zsh-autosuggestions/README.md new file mode 100644 index 00000000..a8c1b6cc --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/README.md @@ -0,0 +1,188 @@ +# zsh-autosuggestions + +_[Fish](http://fishshell.com/)-like fast/unobtrusive autosuggestions for zsh._ + +It suggests commands as you type based on history and completions. + +Requirements: Zsh v4.3.11 or later + +[![Chat on Gitter](https://img.shields.io/gitter/room/zsh-users/zsh-autosuggestions.svg)](https://gitter.im/zsh-users/zsh-autosuggestions) + +
    + + +## Installation + +See [INSTALL.md](INSTALL.md). + + +## Usage + +As you type commands, you will see a completion offered after the cursor in a muted gray color. This color can be changed by setting the `ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE` variable. See [configuration](#configuration). + +If you press the key (`forward-char` widget) or End (`end-of-line` widget) with the cursor at the end of the buffer, it will accept the suggestion, replacing the contents of the command line buffer with the suggestion. + +If you invoke the `forward-word` widget, it will partially accept the suggestion up to the point that the cursor moves to. + + +## Configuration + +You may want to override the default global config variables. Default values of these variables can be found [here](src/config.zsh). + +**Note:** If you are using Oh My Zsh, you can put this configuration in a file in the `$ZSH_CUSTOM` directory. See their comments on [overriding internals](https://github.com/robbyrussell/oh-my-zsh/wiki/Customization#overriding-internals). + + +### Suggestion Highlight Style + +Set `ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE` to configure the style that the suggestion is shown with. The default is `fg=8`, which will set the foreground color to color 8 from the [256-color palette](https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg). If your terminal only supports 8 colors, you will need to use a number between 0 and 7. + +Background color can also be set, and the suggestion can be styled bold, underlined, or standout. For example, this would show suggestions with bold, underlined, pink text on a cyan background: + +```sh +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ff00ff,bg=cyan,bold,underline" +``` + +For more info, read the Character Highlighting section of the zsh manual: `man zshzle` or [online](http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting). + +**Note:** Some iTerm2 users have reported [not being able to see the suggestions](https://github.com/zsh-users/zsh-autosuggestions/issues/416#issuecomment-486516333). If this affects you, the problem is likely caused by incorrect color settings. In order to correct this, go into iTerm2's setting, navigate to profile > colors and make sure that the colors for Basic Colors > Background and ANSI Colors > Bright Black are **different**. + + +### Suggestion Strategy + +`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, 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. + + +### Widget Mapping + +This plugin works by triggering custom behavior when certain [zle widgets](http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Widgets) are invoked. You can add and remove widgets from these arrays to change the behavior of this plugin: + +- `ZSH_AUTOSUGGEST_CLEAR_WIDGETS`: Widgets in this array will clear the suggestion when invoked. +- `ZSH_AUTOSUGGEST_ACCEPT_WIDGETS`: Widgets in this array will accept the suggestion when invoked. +- `ZSH_AUTOSUGGEST_EXECUTE_WIDGETS`: Widgets in this array will execute the suggestion when invoked. +- `ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS`: Widgets in this array will partially accept the suggestion when invoked. +- `ZSH_AUTOSUGGEST_IGNORE_WIDGETS`: Widgets in this array will not trigger any custom behavior. + +Widgets that modify the buffer and are not found in any of these arrays will fetch a new suggestion after they are invoked. + +**Note:** A widget shouldn't belong to more than one of the above arrays. + + +### Disabling suggestion for large buffers + +Set `ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE` to an integer value to disable autosuggestion for large buffers. The default is unset, which means that autosuggestion will be tried for any buffer size. Recommended value is 20. +This can be useful when pasting large amount of text in the terminal, to avoid triggering autosuggestion for strings that are too long. + +### Asynchronous Mode + +Suggestions are fetched asynchronously by default in zsh versions 5.0.8 and greater. To disable asynchronous suggestions and fetch them synchronously instead, `unset ZSH_AUTOSUGGEST_USE_ASYNC` after sourcing the plugin. + +Alternatively, if you are using a version of zsh older than 5.0.8 and want to enable asynchronous mode, set the `ZSH_AUTOSUGGEST_USE_ASYNC` variable after sourcing the plugin (it can be set to anything). Note that there is [a bug](https://github.com/zsh-users/zsh-autosuggestions/issues/364#issuecomment-481423232) in versions of zsh older than 5.0.8 where ctrl + c will fail to reset the prompt immediately after fetching a suggestion asynchronously. + +### Disabling automatic widget re-binding + +Set `ZSH_AUTOSUGGEST_MANUAL_REBIND` (it can be set to anything) to disable automatic widget re-binding on each precmd. This can be a big boost to performance, but you'll need to handle re-binding yourself if any of the widget lists change or if you or another plugin wrap any of the autosuggest widgets. To re-bind widgets, run `_zsh_autosuggest_bind_widgets`. + +### Ignoring history suggestions that match a pattern + +Set `ZSH_AUTOSUGGEST_HISTORY_IGNORE` to a [glob pattern](http://zsh.sourceforge.net/Doc/Release/Expansion.html#Glob-Operators) to prevent offering suggestions for history entries that match the pattern. For example, set it to `"cd *"` to never suggest any `cd` commands from history. Or set to `"?(#c50,)"` to never suggest anything 50 characters or longer. + +**Note:** This only affects the `history` and `match_prev_cmd` suggestion strategies. + +### Skipping completion suggestions for certain cases + +Set `ZSH_AUTOSUGGEST_COMPLETION_IGNORE` to a [glob pattern](http://zsh.sourceforge.net/Doc/Release/Expansion.html#Glob-Operators) to prevent offering completion suggestions when the buffer matches that pattern. For example, set it to `"git *"` to disable completion suggestions for git subcommands. + +**Note:** This only affects the `completion` suggestion strategy. + + +### Key Bindings + +This plugin provides a few widgets that you can use with `bindkey`: + +1. `autosuggest-accept`: Accepts the current suggestion. +2. `autosuggest-execute`: Accepts and executes the current suggestion. +3. `autosuggest-clear`: Clears the current suggestion. +4. `autosuggest-fetch`: Fetches a suggestion (works even when suggestions are disabled). +5. `autosuggest-disable`: Disables suggestions. +6. `autosuggest-enable`: Re-enables suggestions. +7. `autosuggest-toggle`: Toggles between enabled/disabled suggestions. + +For example, this would bind ctrl + space to accept the current suggestion. + +```sh +bindkey '^ ' autosuggest-accept +``` + + +## Troubleshooting + +If you have a problem, please search through [the list of issues on GitHub](https://github.com/zsh-users/zsh-autosuggestions/issues?q=) to see if someone else has already reported it. + +### Reporting an Issue + +Before reporting an issue, please try temporarily disabling sections of your configuration and other plugins that may be conflicting with this plugin to isolate the problem. + +When reporting an issue, please include: + +- The smallest, simplest `.zshrc` configuration that will reproduce the problem. See [this comment](https://github.com/zsh-users/zsh-autosuggestions/issues/102#issuecomment-180944764) for a good example of what this means. +- The version of zsh you're using (`zsh --version`) +- Which operating system you're running + + +## Uninstallation + +1. Remove the code referencing this plugin from `~/.zshrc`. + +2. Remove the git repository from your hard drive + + ```sh + rm -rf ~/.zsh/zsh-autosuggestions # Or wherever you installed + ``` + + +## Development + +### Build Process + +Edit the source files in `src/`. Run `make` to build `zsh-autosuggestions.zsh` from those source files. + + +### Pull Requests + +Pull requests are welcome! If you send a pull request, please: + +- Request to merge into the `develop` branch (*NOT* `master`) +- Match the existing coding conventions. +- Include helpful comments to keep the barrier-to-entry low for people new to the project. +- Write tests that cover your code as much as possible. + + +### Testing + +Tests are written in ruby using the [`rspec`](http://rspec.info/) framework. They use [`tmux`](https://tmux.github.io/) to drive a pseudoterminal, sending simulated keystrokes and making assertions on the terminal content. + +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`). + +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 `` below is substituted with the contents of a line from the [`ZSH_VERSIONS`](ZSH_VERSIONS) file), run: + +```sh +docker build --build-arg TEST_ZSH_VERSION= -t zsh-autosuggestions-test . +``` + +After building the image, run the tests via: + +```sh +docker run -it -v $PWD:/zsh-autosuggestions zsh-autosuggestions-test make test +``` + + +## License + +This project is licensed under [MIT license](http://opensource.org/licenses/MIT). +For the full text of the license, see the [LICENSE](LICENSE) file. diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/URL b/gentoo/dotfiles/.zsh/zsh-autosuggestions/URL new file mode 100644 index 00000000..4e2bd941 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/URL @@ -0,0 +1 @@ +https://github.com/zsh-users/zsh-autosuggestions diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/VERSION b/gentoo/dotfiles/.zsh/zsh-autosuggestions/VERSION new file mode 100644 index 00000000..63f2359f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/VERSION @@ -0,0 +1 @@ +v0.7.1 diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/ZSH_VERSIONS b/gentoo/dotfiles/.zsh/zsh-autosuggestions/ZSH_VERSIONS new file mode 100644 index 00000000..23006db5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/ZSH_VERSIONS @@ -0,0 +1,14 @@ +# Zsh releases to run tests against +# See https://github.com/zsh-users/zsh/releases +4.3.11 +5.0.2 +5.0.8 +5.1.1 +5.2 +5.3.1 +5.4.2 +5.5.1 +5.6.2 +5.7.1 +5.8.1 +5.9 diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/install_test_zsh.sh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/install_test_zsh.sh new file mode 100755 index 00000000..6cac9f5c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/install_test_zsh.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +set -ex + +mkdir zsh-build +cd zsh-build + +curl -L https://api.github.com/repos/zsh-users/zsh/tarball/zsh-$TEST_ZSH_VERSION | tar xz --strip=1 + +./Util/preconfig +./configure --enable-pcre \ + --enable-cap \ + --enable-multibyte \ + --with-term-lib='ncursesw tinfo' \ + --with-tcsetpgrp + +make install.bin +make install.modules +make install.fns + +cd .. + +rm -rf zsh-build diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/async_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/async_spec.rb new file mode 100644 index 00000000..0af72329 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/async_spec.rb @@ -0,0 +1,70 @@ +context 'with asynchronous suggestions enabled' do + let(:options) { ["ZSH_AUTOSUGGEST_USE_ASYNC="] } + + describe '`up-line-or-beginning-search`' do + let(:before_sourcing) do + -> do + session. + run_command('autoload -U up-line-or-beginning-search'). + run_command('zle -N up-line-or-beginning-search'). + send_string('bindkey "'). + send_keys('C-v').send_keys('up'). + send_string('" up-line-or-beginning-search'). + send_keys('enter') + end + end + + it 'should show previous history entries' do + with_history( + 'echo foo', + 'echo bar', + 'echo baz' + ) do + session.clear_screen + 3.times { session.send_keys('up') } + wait_for { session.content }.to eq("echo foo") + end + end + end + + describe '`copy-earlier-word`' do + let(:before_sourcing) do + -> do + session. + run_command('autoload -Uz copy-earlier-word'). + run_command('zle -N copy-earlier-word'). + run_command('bindkey "^N" copy-earlier-word') + end + end + + it 'should cycle through previous words in the buffer' do + session.clear_screen + session.send_string('foo bar baz') + sleep 0.5 + session.send_keys('C-n') + wait_for { session.content }.to eq('foo bar bazbaz') + session.send_keys('C-n') + wait_for { session.content }.to eq('foo bar bazbar') + session.send_keys('C-n') + wait_for { session.content }.to eq('foo bar bazfoo') + end + end + + describe 'pressing ^C after fetching a suggestion' do + before do + skip 'Workaround does not work below v5.0.8' if session.zsh_version < Gem::Version.new('5.0.8') + end + + it 'terminates the prompt and begins a new one' do + session.send_keys('e') + sleep 0.5 + session.send_keys('C-c') + sleep 0.5 + session.send_keys('echo') + + wait_for { session.content }.to eq("e\necho") + end + end +end + + diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/auto_cd_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/auto_cd_spec.rb new file mode 100644 index 00000000..94bd24b0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/auto_cd_spec.rb @@ -0,0 +1,14 @@ +describe 'with `AUTO_CD` option set' do + let(:after_sourcing) do + -> { + session.run_command('setopt AUTO_CD') + session.run_command('autoload compinit && compinit') + } + end + + it 'directory names are still completed' do + session.send_string('sr') + session.send_keys('C-i') + wait_for { session.content }.to eq('src/') + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/bracketed_paste_magic_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/bracketed_paste_magic_spec.rb new file mode 100644 index 00000000..41ff2676 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/bracketed_paste_magic_spec.rb @@ -0,0 +1,43 @@ +describe 'pasting using bracketed-paste-magic' do + let(:before_sourcing) do + -> do + session. + run_command('autoload -Uz bracketed-paste-magic'). + run_command('zle -N bracketed-paste bracketed-paste-magic') + end + end + + context 'with suggestions disabled while pasting' do + before do + session. + run_command('bpm_init() { zle autosuggest-disable }'). + run_command('bpm_finish() { zle autosuggest-enable }'). + run_command('zstyle :bracketed-paste-magic paste-init bpm_init'). + run_command('zstyle :bracketed-paste-magic paste-finish bpm_finish') + end + + it 'does not show an incorrect suggestion' do + with_history('echo hello') do + session.paste_string("echo #{'a' * 60}") + sleep 1 + expect(session.content).to eq("echo #{'a' * 60}") + end + end + end + + context 'with `bracketed-paste` added to the list of widgets that clear the suggestion' do + let(:options) { ['ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste)'] } + + it 'does not retain an old suggestion' do + with_history ('echo foo') do + session.send_string('echo ') + wait_for { session.content }.to eq('echo foo') + session.paste_string('bar') + wait_for { session.content }.to eq('echo bar') + session.send_keys('C-a') # Any cursor movement works + sleep 1 + expect(session.content).to eq('echo bar') + end + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/client_zpty_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/client_zpty_spec.rb new file mode 100644 index 00000000..b8abb375 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/client_zpty_spec.rb @@ -0,0 +1,14 @@ +describe 'a running zpty command' do + let(:before_sourcing) { -> { session.run_command('zmodload zsh/zpty && zpty -b kitty cat') } } + + context 'when using `completion` strategy' do + let(:options) { ["ZSH_AUTOSUGGEST_STRATEGY=completion"] } + + it 'is not affected' do + session.send_keys('a').send_keys('C-h') + session.run_command('zpty -t kitty; echo $?') + + wait_for { session.content }.to end_with("\n0") + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/glob_subst_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/glob_subst_spec.rb new file mode 100644 index 00000000..c3dd671c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/glob_subst_spec.rb @@ -0,0 +1,12 @@ +describe 'with `GLOB_SUBST` option set' do + let(:after_sourcing) do + -> { + session.run_command('setopt GLOB_SUBST') + } + end + + it 'error messages are not printed' do + session.send_string('[[') + wait_for { session.content }.to eq('[[') + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/rebound_bracket_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/rebound_bracket_spec.rb new file mode 100644 index 00000000..8b420f06 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/rebound_bracket_spec.rb @@ -0,0 +1,13 @@ +describe 'rebinding [' do + context 'initialized before sourcing the plugin' do + before do + session.run_command("function [ { $commands[\\[] \"$@\" }") + session.clear_screen + end + + it 'executes the custom behavior and the built-in behavior' do + session.send_string('asdf') + wait_for { session.content }.to eq('asdf') + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/vi_mode_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/vi_mode_spec.rb new file mode 100644 index 00000000..0a295c23 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/vi_mode_spec.rb @@ -0,0 +1,80 @@ +describe 'when using vi mode' do + let(:before_sourcing) do + -> do + session.run_command('bindkey -v') + end + end + + describe 'moving the cursor after exiting insert mode' do + it 'should not clear the current suggestion' do + with_history('foobar foo') do + session. + send_string('foo'). + send_keys('escape'). + send_keys('h') + + wait_for { session.content }.to eq('foobar foo') + end + end + end + + describe '`vi-forward-word-end`' do + it 'should accept through the end of the current word' do + with_history('foobar foo') do + session. + send_string('foo'). + send_keys('escape'). + send_keys('e'). # vi-forward-word-end + send_keys('a'). # vi-add-next + send_string('baz') + + wait_for { session.content }.to eq('foobarbaz') + end + end + end + + describe '`vi-forward-word`' do + it 'should accept through the first character of the next word' do + with_history('foobar foo') do + session. + send_string('foo'). + send_keys('escape'). + send_keys('w'). # vi-forward-word + send_keys('a'). # vi-add-next + send_string('az') + + wait_for { session.content }.to eq('foobar faz') + end + end + end + + describe '`vi-find-next-char`' do + it 'should accept through the next occurrence of the character' do + with_history('foobar foo') do + session. + send_string('foo'). + send_keys('escape'). + send_keys('f'). # vi-find-next-char + send_keys('o'). + send_keys('a'). # vi-add-next + send_string('b') + + wait_for { session.content }.to eq('foobar fob') + end + end + end + + describe '`vi-delete`' do + it 'should be able to remove the last character in the buffer' do + skip 'deleting last char did not work below zsh version 5.0.8' if session.zsh_version < Gem::Version.new('5.0.8') + + session. + send_string('echo foo'). + send_keys('escape'). + send_keys('d'). + send_keys('l') + + wait_for { session.content }.to eq('echo fo') + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/wrapped_widget_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/wrapped_widget_spec.rb new file mode 100644 index 00000000..61dfc2dc --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/wrapped_widget_spec.rb @@ -0,0 +1,39 @@ +describe 'a wrapped widget' do + let(:widget) { 'backward-delete-char' } + + context 'initialized before sourcing the plugin' do + let(:before_sourcing) do + -> do + session. + run_command("_orig_#{widget}() { zle .#{widget} }"). + run_command("zle -N orig-#{widget} _orig_#{widget}"). + run_command("#{widget}-magic() { zle orig-#{widget}; BUFFER+=b }"). + run_command("zle -N #{widget} #{widget}-magic") + end + end + + it 'executes the custom behavior and the built-in behavior' do + with_history('foobar', 'foodar') do + session.send_string('food').send_keys('C-h') + wait_for { session.content }.to eq('foobar') + end + end + end + + context 'initialized after sourcing the plugin' do + before do + session. + run_command("zle -N orig-#{widget} ${widgets[#{widget}]#*:}"). + run_command("#{widget}-magic() { zle orig-#{widget}; BUFFER+=b }"). + run_command("zle -N #{widget} #{widget}-magic"). + clear_screen + end + + it 'executes the custom behavior and the built-in behavior' do + with_history('foobar', 'foodar') do + session.send_string('food').send_keys('C-h') + wait_for { session.content }.to eq('foobar') + end + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/zle_input_stack_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/zle_input_stack_spec.rb new file mode 100644 index 00000000..12cfbc7b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/integrations/zle_input_stack_spec.rb @@ -0,0 +1,24 @@ +describe 'using `zle -U`' do + let(:before_sourcing) do + -> do + session. + run_command('_zsh_autosuggest_strategy_test() { sleep 1; _zsh_autosuggest_strategy_history "$1" }'). + run_command('foo() { zle -U - "echo hello" }; zle -N foo; bindkey ^B foo') + end + end + + let(:options) { ['unset ZSH_AUTOSUGGEST_USE_ASYNC', 'ZSH_AUTOSUGGEST_STRATEGY=test'] } + + # TODO: This is only possible with the $KEYS_QUEUED_COUNT widget parameter, coming soon... + xit 'does not fetch a suggestion for every inserted character' do + session.send_keys('C-b') + wait_for { session.content }.to eq('echo hello') + end + + it 'shows a suggestion when the widget completes' do + with_history('echo hello world') do + session.send_keys('C-b') + wait_for { session.content(esc_seqs: true) }.to match(/\Aecho hello\e\[[0-9]+m world/) + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/kill_ring_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/kill_ring_spec.rb new file mode 100644 index 00000000..4d0178f9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/kill_ring_spec.rb @@ -0,0 +1,23 @@ +context 'with some items in the kill ring' do + before do + session. + send_string('echo foo'). + send_keys('C-u'). + send_string('echo bar'). + send_keys('C-u') + end + + describe '`yank-pop`' do + it 'should cycle through all items in the kill ring' do + session.send_keys('C-y') + wait_for { session.content }.to eq('echo bar') + + session.send_keys('escape').send_keys('y') + wait_for { session.content }.to eq('echo foo') + + session.send_keys('escape').send_keys('y') + wait_for { session.content }.to eq('echo bar') + end + end +end + diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/line_init_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/line_init_spec.rb new file mode 100644 index 00000000..826277fc --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/line_init_spec.rb @@ -0,0 +1,17 @@ +context 'with zle-line-init unignored' do + let(:after_sourcing) do + -> do + session. + run_command('setopt extendedglob'). + run_command('ZSH_AUTOSUGGEST_IGNORE_WIDGETS=(${(@)ZSH_AUTOSUGGEST_IGNORE_WIDGETS:#zle-\*} zle-\^line-init)'). + run_command('zle-line-init() { BUFFER="echo" }') + end + end + + it 'should fetch a suggestion on each line initialization' do + with_history('echo foo') do + session.run_command('zle -N zle-line-init') + wait_for { session.content }.to end_with('echo foo') + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/multi_line_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/multi_line_spec.rb new file mode 100644 index 00000000..364780a2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/multi_line_spec.rb @@ -0,0 +1,8 @@ +describe 'a multi-line suggestion' do + it 'should be displayed on multiple lines' do + with_history("echo \"\n\"") do + session.send_keys('e') + wait_for { session.content }.to eq("echo \"\n\"") + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/buffer_max_size_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/buffer_max_size_spec.rb new file mode 100644 index 00000000..29ca8bc4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/buffer_max_size_spec.rb @@ -0,0 +1,30 @@ +describe 'a suggestion' do + let(:term_opts) { { width: 200 } } + let(:long_command) { "echo #{'a' * 100}" } + + around do |example| + with_history(long_command) { example.run } + end + + it 'is provided for any buffer length' do + session.send_string(long_command[0...-1]) + wait_for { session.content }.to eq(long_command) + end + + context 'when ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE is specified' do + let(:buffer_max_size) { 10 } + let(:options) { ["ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=#{buffer_max_size}"] } + + it 'is provided when the buffer is shorter than the specified length' do + session.send_string(long_command[0...(buffer_max_size - 1)]) + wait_for { session.content }.to eq(long_command) + end + + it 'is provided when the buffer is equal to the specified length' do + session.send_string(long_command[0...(buffer_max_size)]) + wait_for { session.content }.to eq(long_command) + end + + it 'is not provided when the buffer is longer than the specified length' + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/highlight_style_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/highlight_style_spec.rb new file mode 100644 index 00000000..a7e39b34 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/highlight_style_spec.rb @@ -0,0 +1,7 @@ +describe 'a displayed suggestion' do + it 'is shown in the default style' + + describe 'when ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE is set to a zle_highlight string' do + it 'is shown in the specified style' + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/original_widget_prefix_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/original_widget_prefix_spec.rb new file mode 100644 index 00000000..a4b6e983 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/original_widget_prefix_spec.rb @@ -0,0 +1,7 @@ +describe 'an original zle widget' do + context 'is accessible with the default prefix' + + context 'when ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX is set' do + it 'is accessible with the specified prefix' + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/strategy_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/strategy_spec.rb new file mode 100644 index 00000000..58562d0c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/strategy_spec.rb @@ -0,0 +1,55 @@ +describe 'a suggestion for a given prefix' do + let(:history_strategy) { '_zsh_autosuggest_strategy_history() { suggestion="history" }' } + let(:foobar_strategy) { '_zsh_autosuggest_strategy_foobar() { [[ "foobar baz" = $1* ]] && suggestion="foobar baz" }' } + let(:foobaz_strategy) { '_zsh_autosuggest_strategy_foobaz() { [[ "foobaz bar" = $1* ]] && suggestion="foobaz bar" }' } + + let(:after_sourcing) do + -> do + session.run_command(history_strategy) + end + end + + it 'by default is determined by calling the `history` strategy function' do + session.send_string('h') + wait_for { session.content }.to eq('history') + end + + context 'when ZSH_AUTOSUGGEST_STRATEGY is set to an array' do + let(:after_sourcing) do + -> do + session. + run_command(foobar_strategy). + run_command(foobaz_strategy). + run_command('ZSH_AUTOSUGGEST_STRATEGY=(foobar foobaz)') + end + end + + it 'is determined by the first strategy function to return a suggestion' do + session.send_string('foo') + wait_for { session.content }.to eq('foobar baz') + + session.send_string('baz') + wait_for { session.content }.to eq('foobaz bar') + end + end + + context 'when ZSH_AUTOSUGGEST_STRATEGY is set to a string' do + let(:after_sourcing) do + -> do + session. + run_command(foobar_strategy). + run_command(foobaz_strategy). + run_command('ZSH_AUTOSUGGEST_STRATEGY="foobar foobaz"') + end + end + + it 'is determined by the first strategy function to return a suggestion' do + session.send_string('foo') + wait_for { session.content }.to eq('foobar baz') + + session.send_string('baz') + wait_for { session.content }.to eq('foobaz bar') + end + end +end + diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/widget_lists_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/widget_lists_spec.rb new file mode 100644 index 00000000..421b84e4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/options/widget_lists_spec.rb @@ -0,0 +1,121 @@ +describe 'a zle widget' do + let(:widget) { 'my-widget' } + let(:before_sourcing) { -> { session.run_command("#{widget}() {}; zle -N #{widget}; bindkey ^B #{widget}") } } + + context 'when added to ZSH_AUTOSUGGEST_ACCEPT_WIDGETS' do + let(:options) { ["ZSH_AUTOSUGGEST_ACCEPT_WIDGETS+=(#{widget})"] } + + it 'accepts the suggestion and moves the cursor to the end of the buffer when invoked' do + with_history('echo hello') do + session.send_string('e') + wait_for { session.content }.to eq('echo hello') + session.send_keys('C-b') + wait_for { session.content(esc_seqs: true) }.to eq('echo hello') + wait_for { session.cursor }.to eq([10, 0]) + end + end + end + + context 'when added to ZSH_AUTOSUGGEST_CLEAR_WIDGETS' do + let(:options) { ["ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(#{widget})"] } + + it 'clears the suggestion when invoked' do + with_history('echo hello') do + session.send_string('e') + wait_for { session.content }.to eq('echo hello') + session.send_keys('C-b') + wait_for { session.content }.to eq('e') + end + end + end + + context 'when added to ZSH_AUTOSUGGEST_EXECUTE_WIDGETS' do + let(:options) { ["ZSH_AUTOSUGGEST_EXECUTE_WIDGETS+=(#{widget})"] } + + it 'executes the suggestion when invoked' do + with_history('echo hello') do + session.send_string('e') + wait_for { session.content }.to eq('echo hello') + session.send_keys('C-b') + wait_for { session.content }.to end_with("\nhello") + end + end + end + + context 'when added to ZSH_AUTOSUGGEST_IGNORE_WIDGETS' do + let(:options) { ["ZSH_AUTOSUGGEST_IGNORE_WIDGETS=(#{widget})"] } + + it 'should not be wrapped with an autosuggest widget' do + session.run_command("echo $widgets[#{widget}]") + wait_for { session.content }.to end_with("\nuser:#{widget}") + end + end + + context 'that moves the cursor forward' do + before { session.run_command("#{widget}() { zle forward-char }") } + + context 'when added to ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS' do + let(:options) { ["ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS=(#{widget})"] } + + it 'accepts the suggestion as far as the cursor is moved when invoked' do + with_history('echo hello') do + session.send_string('e') + wait_for { session.content }.to start_with('echo hello') + session.send_keys('C-b') + wait_for { session.content(esc_seqs: true) }.to match(/\Aec\e\[[0-9]+mho hello/) + end + end + end + end + + context 'that modifies the buffer' do + before { session.run_command("#{widget}() { BUFFER=\"foo\" }") } + + context 'when not added to any of the widget lists' do + it 'modifies the buffer and fetches a new suggestion' do + with_history('foobar') do + session.send_keys('C-b') + wait_for { session.content }.to eq('foobar') + end + end + end + end +end + +describe 'a modification to the widget lists' do + let(:widget) { 'my-widget' } + let(:before_sourcing) { -> { session.run_command("#{widget}() {}; zle -N #{widget}; bindkey ^B #{widget}") } } + before { session.run_command("ZSH_AUTOSUGGEST_ACCEPT_WIDGETS+=(#{widget})") } + + it 'takes effect on the next cmd line' do + with_history('echo hello') do + session.send_string('e') + wait_for { session.content }.to eq('echo hello') + session.send_keys('C-b') + wait_for { session.content(esc_seqs: true) }.to eq('echo hello') + end + end + + context 'when manual rebind is enabled' do + let(:options) { ["ZSH_AUTOSUGGEST_MANUAL_REBIND=true"] } + + it 'does not take effect until bind command is re-run' do + with_history('echo hello') do + session.send_string('e') + wait_for { session.content }.to eq('echo hello') + session.send_keys('C-b') + sleep 1 + expect(session.content(esc_seqs: true)).not_to eq('echo hello') + + session.send_keys('C-c') + session.run_command('_zsh_autosuggest_bind_widgets').clear_screen + wait_for { session.content }.to eq('') + + session.send_string('e') + wait_for { session.content }.to eq('echo hello') + session.send_keys('C-b') + wait_for { session.content(esc_seqs: true) }.to eq('echo hello') + end + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/spec_helper.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/spec_helper.rb new file mode 100644 index 00000000..dc1abb0a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/spec_helper.rb @@ -0,0 +1,54 @@ +require 'pry' +require 'rspec/wait' +require 'terminal_session' +require 'tempfile' + +RSpec.shared_context 'terminal session' do + let(:term_opts) { {} } + let(:session) { TerminalSession.new(term_opts) } + let(:before_sourcing) { -> {} } + let(:after_sourcing) { -> {} } + let(:options) { [] } + + around do |example| + before_sourcing.call + session.run_command(['source zsh-autosuggestions.zsh', *options].join('; ')) + after_sourcing.call + session.clear_screen + + example.run + + session.destroy + end + + def with_history(*commands, &block) + Tempfile.create do |f| + f.write(commands.map{|c| c.gsub("\n", "\\\n")}.join("\n")) + f.flush + + session.run_command('fc -p') + session.run_command("fc -R #{f.path}") + + session.clear_screen + + yield block + + session.send_keys('C-c') + session.run_command('fc -P') + end + end +end + +RSpec.configure do |config| + config.expect_with :rspec do |expectations| + expectations.include_chain_clauses_in_custom_matcher_descriptions = true + end + + config.mock_with :rspec do |mocks| + mocks.verify_partial_doubles = true + end + + config.wait_timeout = 2 + + config.include_context 'terminal session' +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/completion_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/completion_spec.rb new file mode 100644 index 00000000..92794d6a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/completion_spec.rb @@ -0,0 +1,72 @@ +describe 'the `completion` suggestion strategy' do + let(:options) { ['ZSH_AUTOSUGGEST_STRATEGY=completion'] } + let(:before_sourcing) do + -> do + session. + run_command('autoload compinit && compinit'). + run_command('_foo() { compadd bar; compadd bat }'). + run_command('_num() { compadd two; compadd three }'). + run_command('compdef _foo baz'). + run_command('compdef _num one') + end + end + + it 'suggests the first completion result' do + session.send_string('baz ') + wait_for { session.content }.to eq('baz bar') + end + + it 'does not add extra carriage returns when prefix has a line feed' do + skip '`stty` does not work inside zpty below zsh version 5.0.3' if session.zsh_version < Gem::Version.new('5.0.3') + session.send_string('baz \\').send_keys('C-v', 'C-j') + wait_for { session.content }.to eq("baz \\\nbar") + end + + context 'when `_complete` is aliased' do + let(:before_sourcing) do + -> do + session. + run_command('autoload compinit && compinit'). + run_command('_foo() { compadd bar; compadd bat }'). + run_command('compdef _foo baz'). + run_command('alias _complete=_complete') + end + end + + it 'suggests the first completion result' do + session.send_string('baz ') + wait_for { session.content }.to eq('baz bar') + end + end + + context 'when ZSH_AUTOSUGGEST_COMPLETION_IGNORE is set to a pattern' do + let(:options) { ['ZSH_AUTOSUGGEST_STRATEGY=completion', 'ZSH_AUTOSUGGEST_COMPLETION_IGNORE="one *"'] } + + it 'makes suggestions when the buffer does not match the pattern' do + session.send_string('baz ') + wait_for { session.content }.to eq('baz bar') + end + + it 'does not make suggestions when the buffer matches the pattern' do + session.send_string('one t') + sleep 1 + expect(session.content).to eq('one t') + end + end + + context 'when async mode is enabled' do + let(:options) { ['ZSH_AUTOSUGGEST_USE_ASYNC=true', 'ZSH_AUTOSUGGEST_STRATEGY=completion'] } + + it 'suggests the first completion result' do + session.send_string('baz ') + wait_for { session.content }.to eq('baz bar') + end + + it 'does not add extra carriage returns when prefix has a line feed' do + skip '`stty` does not work inside zpty below zsh version 5.0.3' if session.zsh_version < Gem::Version.new('5.0.3') + session.send_string('baz \\').send_keys('C-v', 'C-j') + wait_for { session.content }.to eq("baz \\\nbar") + end + end +end + diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/history_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/history_spec.rb new file mode 100644 index 00000000..eee8efdf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/history_spec.rb @@ -0,0 +1,23 @@ +require 'strategies/special_characters_helper' + +describe 'the `history` suggestion strategy' do + it 'suggests the last matching history entry' do + with_history('ls foo', 'ls bar', 'echo baz') do + session.send_string('ls') + wait_for { session.content }.to eq('ls bar') + end + end + + context 'when ZSH_AUTOSUGGEST_HISTORY_IGNORE is set to a pattern' do + let(:options) { ['ZSH_AUTOSUGGEST_HISTORY_IGNORE="* bar"'] } + + it 'does not make suggestions that match the pattern' do + with_history('ls foo', 'ls bar', 'echo baz') do + session.send_string('ls') + wait_for { session.content }.to eq('ls foo') + end + end + end + + include_examples 'special characters' +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/match_prev_cmd_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/match_prev_cmd_spec.rb new file mode 100644 index 00000000..c435f162 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/match_prev_cmd_spec.rb @@ -0,0 +1,34 @@ +require 'strategies/special_characters_helper' + +describe 'the `match_prev_cmd` strategy' do + let(:options) { ['ZSH_AUTOSUGGEST_STRATEGY=match_prev_cmd'] } + + let(:history) { [ + 'echo what', + 'ls foo', + 'echo what', + 'ls bar', + 'ls baz', + 'echo what' + ] } + + it 'suggests the last matching history entry after the previous command' do + with_history(*history) do + session.send_string('ls') + wait_for { session.content }.to eq('ls bar') + end + end + + context 'when ZSH_AUTOSUGGEST_HISTORY_IGNORE is set to a pattern' do + let(:options) { ['ZSH_AUTOSUGGEST_STRATEGY=match_prev_cmd', 'ZSH_AUTOSUGGEST_HISTORY_IGNORE="* bar"'] } + + it 'does not make suggestions that match the pattern' do + with_history(*history) do + session.send_string('ls') + wait_for { session.content }.to eq('ls foo') + end + end + end + + include_examples 'special characters' +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/special_characters_helper.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/special_characters_helper.rb new file mode 100644 index 00000000..eb1f0cdd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/strategies/special_characters_helper.rb @@ -0,0 +1,75 @@ +shared_examples 'special characters' do + describe 'a special character in the buffer should be treated like any other character' do + it 'asterisk' do + with_history('echo "hello*"', 'echo "hello."') do + session.send_string('echo "hello*') + wait_for { session.content }.to eq('echo "hello*"') + end + end + + it 'question mark' do + with_history('echo "hello?"', 'echo "hello."') do + session.send_string('echo "hello?') + wait_for { session.content }.to eq('echo "hello?"') + end + end + + it 'backslash' do + with_history('echo "hello\nworld"') do + session.send_string('echo "hello\\') + wait_for { session.content }.to eq('echo "hello\nworld"') + end + end + + it 'double backslash' do + with_history('echo "\\\\"') do + session.send_string('echo "\\\\') + wait_for { session.content }.to eq('echo "\\\\"') + end + end + + it 'tilde' do + with_history('echo ~/foo') do + session.send_string('echo ~') + wait_for { session.content }.to eq('echo ~/foo') + end + end + + it 'parentheses' do + with_history('echo "$(ls foo)"') do + session.send_string('echo "$(') + wait_for { session.content }.to eq('echo "$(ls foo)"') + end + end + + it 'square bracket' do + with_history('echo "$history[123]"') do + session.send_string('echo "$history[') + wait_for { session.content }.to eq('echo "$history[123]"') + session.send_string('123]') + wait_for { session.content }.to eq('echo "$history[123]"') + end + end + + it 'octothorpe' do + with_history('echo "#yolo"') do + session.send_string('echo "#') + wait_for { session.content }.to eq('echo "#yolo"') + end + end + + it 'caret' do + with_history('echo "^A"', 'echo "^B"') do + session.send_string('echo "^A') + wait_for { session.content }.to eq('echo "^A"') + end + end + + it 'dash' do + with_history('-foo() {}') do + session.send_string('-') + wait_for { session.content }.to eq('-foo() {}') + end + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/terminal_session.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/terminal_session.rb new file mode 100644 index 00000000..f91ee6cd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/terminal_session.rb @@ -0,0 +1,99 @@ +require 'securerandom' + +class TerminalSession + ZSH_BIN = ENV['TEST_ZSH_BIN'] || 'zsh' + + def initialize(opts = {}) + opts = { + width: 80, + height: 24, + prompt: '', + term: 'xterm-256color', + zsh_bin: ZSH_BIN + }.merge(opts) + + @opts = opts + + cmd="PS1=\"#{opts[:prompt]}\" TERM=#{opts[:term]} #{ZSH_BIN} -f" + tmux_command("new-session -d -x #{opts[:width]} -y #{opts[:height]} '#{cmd}'") + end + + def zsh_version + @zsh_version ||= Gem::Version.new(`#{ZSH_BIN} -c 'echo -n $ZSH_VERSION'`) + end + + def tmux_socket_name + @tmux_socket_name ||= SecureRandom.hex(6) + end + + def run_command(command) + send_string(command) + send_keys('enter') + + self + end + + def send_string(str) + tmux_command("send-keys -t 0 -l -- '#{str.gsub("'", "\\'")}'") + + self + end + + def send_keys(*keys) + tmux_command("send-keys -t 0 #{keys.join(' ')}") + + self + end + + def paste_string(str) + tmux_command("set-buffer -- '#{str}'") + tmux_command("paste-buffer -dpr -t 0") + + self + end + + def content(esc_seqs: false) + cmd = 'capture-pane -p -t 0' + cmd += ' -e' if esc_seqs + tmux_command(cmd).strip + end + + def clear_screen + send_keys('C-l') + + i = 0 + until content == opts[:prompt] || i > 20 do + sleep(0.1) + i = i + 1 + end + + self + end + + def destroy + tmux_command('kill-session') + end + + def cursor + tmux_command("display-message -t 0 -p '\#{cursor_x},\#{cursor_y}'"). + strip. + split(','). + map(&:to_i) + end + + def attach! + tmux_command('attach-session') + end + + private + + attr_reader :opts + + def tmux_command(cmd) + out = `tmux -u -L #{tmux_socket_name} #{cmd}` + + raise("tmux error running: '#{cmd}'") unless $?.success? + + out + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/disable_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/disable_spec.rb new file mode 100644 index 00000000..b387a590 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/disable_spec.rb @@ -0,0 +1,19 @@ +describe 'the `autosuggest-disable` widget' do + before do + session.run_command('bindkey ^B autosuggest-disable') + end + + it 'disables suggestions and clears the suggestion' do + with_history('echo hello') do + session.send_string('echo') + wait_for { session.content }.to eq('echo hello') + + session.send_keys('C-b') + wait_for { session.content }.to eq('echo') + + session.send_string(' h') + sleep 1 + expect(session.content).to eq('echo h') + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/enable_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/enable_spec.rb new file mode 100644 index 00000000..3ad35a8c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/enable_spec.rb @@ -0,0 +1,42 @@ +describe 'the `autosuggest-enable` widget' do + before do + session. + run_command('typeset -g _ZSH_AUTOSUGGEST_DISABLED'). + run_command('bindkey ^B autosuggest-enable') + end + + it 'enables suggestions and fetches a suggestion' do + with_history('echo hello') do + session.send_string('e') + sleep 1 + expect(session.content).to eq('e') + + session.send_keys('C-b') + session.send_string('c') + wait_for { session.content }.to eq('echo hello') + end + end + + context 'invoked on an empty buffer' do + it 'does not fetch a suggestion' do + with_history('echo hello') do + session.send_keys('C-b') + sleep 1 + expect(session.content).to eq('') + end + end + end + + context 'invoked on a non-empty buffer' do + it 'fetches a suggestion' do + with_history('echo hello') do + session.send_string('e') + sleep 1 + expect(session.content).to eq('e') + + session.send_keys('C-b') + wait_for { session.content }.to eq('echo hello') + end + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/fetch_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/fetch_spec.rb new file mode 100644 index 00000000..eb8f2ba5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/fetch_spec.rb @@ -0,0 +1,24 @@ +describe 'the `autosuggest-fetch` widget' do + context 'when suggestions are disabled' do + before do + session. + run_command('bindkey ^B autosuggest-disable'). + run_command('bindkey ^F autosuggest-fetch'). + send_keys('C-b') + end + + it 'will fetch and display a suggestion' do + with_history('echo hello') do + session.send_string('echo h') + sleep 1 + expect(session.content).to eq('echo h') + + session.send_keys('C-f') + wait_for { session.content }.to eq('echo hello') + + session.send_string('e') + wait_for { session.content }.to eq('echo hello') + end + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/toggle_spec.rb b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/toggle_spec.rb new file mode 100644 index 00000000..8f9f3c3d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/spec/widgets/toggle_spec.rb @@ -0,0 +1,26 @@ +describe 'the `autosuggest-toggle` widget' do + before do + session.run_command('bindkey ^B autosuggest-toggle') + end + + it 'toggles suggestions' do + with_history('echo world', 'echo hello') do + session.send_string('echo') + wait_for { session.content }.to eq('echo hello') + + session.send_keys('C-b') + wait_for { session.content }.to eq('echo') + + session.send_string(' h') + sleep 1 + expect(session.content).to eq('echo h') + + session.send_keys('C-b') + wait_for { session.content }.to eq('echo hello') + + session.send_keys('C-h') + session.send_string('w') + wait_for { session.content }.to eq('echo world') + end + end +end diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/async.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/async.zsh new file mode 100644 index 00000000..e1797345 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/async.zsh @@ -0,0 +1,77 @@ + +#--------------------------------------------------------------------# +# Async # +#--------------------------------------------------------------------# + +_zsh_autosuggest_async_request() { + zmodload zsh/system 2>/dev/null # For `$sysparams` + + typeset -g _ZSH_AUTOSUGGEST_ASYNC_FD _ZSH_AUTOSUGGEST_CHILD_PID + + # 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 + 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 + if [[ -n "$_ZSH_AUTOSUGGEST_CHILD_PID" ]]; then + # Zsh will make a new process group for the child process only if job + # control is enabled (MONITOR option) + if [[ -o MONITOR ]]; then + # Send the signal to the process group to kill any processes that may + # have been forked by the suggestion strategy + kill -TERM -$_ZSH_AUTOSUGGEST_CHILD_PID 2>/dev/null + else + # Kill just the child process since it wasn't placed in a new process + # group. If the suggestion strategy forked any child processes they may + # be orphaned and left behind. + kill -TERM $_ZSH_AUTOSUGGEST_CHILD_PID 2>/dev/null + fi + fi + fi + + # Fork a process to fetch a suggestion and open a pipe to read from it + builtin exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <( + # Tell parent process our pid + echo $sysparams[pid] + + # Fetch and print the suggestion + local suggestion + _zsh_autosuggest_fetch_suggestion "$1" + echo -nE "$suggestion" + ) + + # There's a weird bug here where ^C stops working unless we force a fork + # See https://github.com/zsh-users/zsh-autosuggestions/issues/364 + autoload -Uz is-at-least + is-at-least 5.8 || command true + + # Read the pid from the child process + read _ZSH_AUTOSUGGEST_CHILD_PID <&$_ZSH_AUTOSUGGEST_ASYNC_FD + + # When the fd is readable, call the response handler + zle -F "$_ZSH_AUTOSUGGEST_ASYNC_FD" _zsh_autosuggest_async_response +} + +# Called when new data is ready to be read from the pipe +# First arg will be fd ready for reading +# Second arg will be passed in case of error +_zsh_autosuggest_async_response() { + emulate -L zsh + + local suggestion + + if [[ -z "$2" || "$2" == "hup" ]]; then + # Read everything from the fd and give it as a suggestion + IFS='' read -rd '' -u $1 suggestion + zle autosuggest-suggest -- "$suggestion" + + # Close the fd + builtin exec {1}<&- + fi + + # Always remove the handler + zle -F "$1" + _ZSH_AUTOSUGGEST_ASYNC_FD= +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/bind.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/bind.zsh new file mode 100644 index 00000000..1dde137c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/bind.zsh @@ -0,0 +1,106 @@ + +#--------------------------------------------------------------------# +# Widget Helpers # +#--------------------------------------------------------------------# + +_zsh_autosuggest_incr_bind_count() { + typeset -gi bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]+1)) + _ZSH_AUTOSUGGEST_BIND_COUNTS[$1]=$bind_count +} + +# Bind a single widget to an autosuggest widget, saving a reference to the original widget +_zsh_autosuggest_bind_widget() { + typeset -gA _ZSH_AUTOSUGGEST_BIND_COUNTS + + local widget=$1 + local autosuggest_action=$2 + local prefix=$ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX + + local -i bind_count + + # Save a reference to the original widget + case $widgets[$widget] in + # Already bound + user:_zsh_autosuggest_(bound|orig)_*) + bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$widget])) + ;; + + # User-defined widget + user:*) + _zsh_autosuggest_incr_bind_count $widget + zle -N $prefix$bind_count-$widget ${widgets[$widget]#*:} + ;; + + # Built-in widget + builtin) + _zsh_autosuggest_incr_bind_count $widget + eval "_zsh_autosuggest_orig_${(q)widget}() { zle .${(q)widget} }" + zle -N $prefix$bind_count-$widget _zsh_autosuggest_orig_$widget + ;; + + # Completion widget + completion:*) + _zsh_autosuggest_incr_bind_count $widget + eval "zle -C $prefix$bind_count-${(q)widget} ${${(s.:.)widgets[$widget]}[2,3]}" + ;; + esac + + # Pass the original widget's name explicitly into the autosuggest + # function. Use this passed in widget name to call the original + # widget instead of relying on the $WIDGET variable being set + # correctly. $WIDGET cannot be trusted because other plugins call + # zle without the `-w` flag (e.g. `zle self-insert` instead of + # `zle self-insert -w`). + eval "_zsh_autosuggest_bound_${bind_count}_${(q)widget}() { + _zsh_autosuggest_widget_$autosuggest_action $prefix$bind_count-${(q)widget} \$@ + }" + + # Create the bound widget + zle -N -- $widget _zsh_autosuggest_bound_${bind_count}_$widget +} + +# Map all configured widgets to the right autosuggest widgets +_zsh_autosuggest_bind_widgets() { + emulate -L zsh + + local widget + local ignore_widgets + + ignore_widgets=( + .\* + _\* + ${_ZSH_AUTOSUGGEST_BUILTIN_ACTIONS/#/autosuggest-} + $ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX\* + $ZSH_AUTOSUGGEST_IGNORE_WIDGETS + ) + + # Find every widget we might want to bind and bind it appropriately + for widget in ${${(f)"$(builtin zle -la)"}:#${(j:|:)~ignore_widgets}}; do + if [[ -n ${ZSH_AUTOSUGGEST_CLEAR_WIDGETS[(r)$widget]} ]]; then + _zsh_autosuggest_bind_widget $widget clear + elif [[ -n ${ZSH_AUTOSUGGEST_ACCEPT_WIDGETS[(r)$widget]} ]]; then + _zsh_autosuggest_bind_widget $widget accept + elif [[ -n ${ZSH_AUTOSUGGEST_EXECUTE_WIDGETS[(r)$widget]} ]]; then + _zsh_autosuggest_bind_widget $widget execute + elif [[ -n ${ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS[(r)$widget]} ]]; then + _zsh_autosuggest_bind_widget $widget partial_accept + else + # Assume any unspecified widget might modify the buffer + _zsh_autosuggest_bind_widget $widget modify + fi + done +} + +# Given the name of an original widget and args, invoke it, if it exists +_zsh_autosuggest_invoke_original_widget() { + # Do nothing unless called with at least one arg + (( $# )) || return 0 + + local original_widget_name="$1" + + shift + + if (( ${+widgets[$original_widget_name]} )); then + zle $original_widget_name -- $@ + fi +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/config.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/config.zsh new file mode 100644 index 00000000..32d32b25 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/config.zsh @@ -0,0 +1,95 @@ + +#--------------------------------------------------------------------# +# Global Configuration Variables # +#--------------------------------------------------------------------# + +# Color to use when highlighting suggestion +# Uses format of `region_highlight` +# More info: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Widgets +(( ! ${+ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE} )) && +typeset -g ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8' + +# Prefix to use when saving original versions of bound widgets +(( ! ${+ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX} )) && +typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig- + +# Strategies to use to fetch a suggestion +# Will try each strategy in order until a suggestion is returned +(( ! ${+ZSH_AUTOSUGGEST_STRATEGY} )) && { + typeset -ga ZSH_AUTOSUGGEST_STRATEGY + ZSH_AUTOSUGGEST_STRATEGY=(history) +} + +# Widgets that clear the suggestion +(( ! ${+ZSH_AUTOSUGGEST_CLEAR_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_CLEAR_WIDGETS + ZSH_AUTOSUGGEST_CLEAR_WIDGETS=( + history-search-forward + 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 + down-line-or-beginning-search + up-line-or-history + down-line-or-history + accept-line + copy-earlier-word + ) +} + +# Widgets that accept the entire suggestion +(( ! ${+ZSH_AUTOSUGGEST_ACCEPT_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_ACCEPT_WIDGETS + ZSH_AUTOSUGGEST_ACCEPT_WIDGETS=( + forward-char + end-of-line + vi-forward-char + vi-end-of-line + vi-add-eol + ) +} + +# Widgets that accept the entire suggestion and execute it +(( ! ${+ZSH_AUTOSUGGEST_EXECUTE_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_EXECUTE_WIDGETS + ZSH_AUTOSUGGEST_EXECUTE_WIDGETS=( + ) +} + +# Widgets that accept the suggestion as far as the cursor moves +(( ! ${+ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS + ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS=( + forward-word + emacs-forward-word + vi-forward-word + vi-forward-word-end + vi-forward-blank-word + vi-forward-blank-word-end + vi-find-next-char + vi-find-next-char-skip + ) +} + +# Widgets that should be ignored (globbing supported but must be escaped) +(( ! ${+ZSH_AUTOSUGGEST_IGNORE_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_IGNORE_WIDGETS + ZSH_AUTOSUGGEST_IGNORE_WIDGETS=( + orig-\* + beep + run-help + set-local-history + which-command + yank + yank-pop + zle-\* + ) +} + +# Pty name for capturing completions for completion suggestion strategy +(( ! ${+ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME} )) && +typeset -g ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME=zsh_autosuggest_completion_pty diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/fetch.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/fetch.zsh new file mode 100644 index 00000000..fef27152 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/fetch.zsh @@ -0,0 +1,27 @@ + +#--------------------------------------------------------------------# +# Fetch Suggestion # +#--------------------------------------------------------------------# +# Loops through all specified strategies and returns a suggestion +# from the first strategy to provide one. +# + +_zsh_autosuggest_fetch_suggestion() { + typeset -g suggestion + local -a strategies + local strategy + + # Ensure we are working with an array + strategies=(${=ZSH_AUTOSUGGEST_STRATEGY}) + + for strategy in $strategies; do + # Try to get a suggestion from this strategy + _zsh_autosuggest_strategy_$strategy "$1" + + # Ensure the suggestion matches the prefix + [[ "$suggestion" != "$1"* ]] && unset suggestion + + # Break once we've found a valid suggestion + [[ -n "$suggestion" ]] && break + done +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/highlight.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/highlight.zsh new file mode 100644 index 00000000..273c03d5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/highlight.zsh @@ -0,0 +1,26 @@ + +#--------------------------------------------------------------------# +# Highlighting # +#--------------------------------------------------------------------# + +# If there was a highlight, remove it +_zsh_autosuggest_highlight_reset() { + typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT + + if [[ -n "$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT" ]]; then + region_highlight=("${(@)region_highlight:#$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT}") + unset _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT + fi +} + +# If there's a suggestion, highlight it +_zsh_autosuggest_highlight_apply() { + typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT + + if (( $#POSTDISPLAY )); then + typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT="$#BUFFER $(($#BUFFER + $#POSTDISPLAY)) $ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE" + region_highlight+=("$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT") + else + unset _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT + fi +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/start.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/start.zsh new file mode 100644 index 00000000..5d4ee521 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/start.zsh @@ -0,0 +1,33 @@ + +#--------------------------------------------------------------------# +# Start # +#--------------------------------------------------------------------# + +# Start the autosuggestion widgets +_zsh_autosuggest_start() { + # By default we re-bind widgets on every precmd to ensure we wrap other + # wrappers. Specifically, highlighting breaks if our widgets are wrapped by + # zsh-syntax-highlighting widgets. This also allows modifications to the + # widget list variables to take effect on the next precmd. However this has + # a decent performance hit, so users can set ZSH_AUTOSUGGEST_MANUAL_REBIND + # to disable the automatic re-binding. + if (( ${+ZSH_AUTOSUGGEST_MANUAL_REBIND} )); then + add-zsh-hook -d precmd _zsh_autosuggest_start + fi + + _zsh_autosuggest_bind_widgets +} + +# Mark for auto-loading the functions that we use +autoload -Uz add-zsh-hook is-at-least + +# Automatically enable asynchronous mode in newer versions of zsh. Disable for +# older versions because there is a bug when using async mode where ^C does not +# work immediately after fetching a suggestion. +# See https://github.com/zsh-users/zsh-autosuggestions/issues/364 +if is-at-least 5.0.8; then + typeset -g ZSH_AUTOSUGGEST_USE_ASYNC= +fi + +# Start the autosuggestion widgets on the next precmd +add-zsh-hook precmd _zsh_autosuggest_start diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/completion.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/completion.zsh new file mode 100644 index 00000000..e2d114c8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/completion.zsh @@ -0,0 +1,137 @@ + +#--------------------------------------------------------------------# +# Completion Suggestion Strategy # +#--------------------------------------------------------------------# +# Fetches a suggestion from the completion engine +# + +_zsh_autosuggest_capture_postcompletion() { + # Always insert the first completion into the buffer + compstate[insert]=1 + + # Don't list completions + unset 'compstate[list]' +} + +_zsh_autosuggest_capture_completion_widget() { + # Add a post-completion hook to be called after all completions have been + # gathered. The hook can modify compstate to affect what is done with the + # gathered completions. + local -a +h comppostfuncs + comppostfuncs=(_zsh_autosuggest_capture_postcompletion) + + # Only capture completions at the end of the buffer + CURSOR=$#BUFFER + + # Run the original widget wrapping `.complete-word` so we don't + # recursively try to fetch suggestions, since our pty is forked + # after autosuggestions is initialized. + zle -- ${(k)widgets[(r)completion:.complete-word:_main_complete]} + + if is-at-least 5.0.3; then + # Don't do any cr/lf transformations. We need to do this immediately before + # output because if we do it in setup, onlcr will be re-enabled when we enter + # vared in the async code path. There is a bug in zpty module in older versions + # where the tty is not properly attached to the pty slave, resulting in stty + # getting stopped with a SIGTTOU. See zsh-workers thread 31660 and upstream + # commit f75904a38 + stty -onlcr -ocrnl -F /dev/tty + fi + + # The completion has been added, print the buffer as the suggestion + echo -nE - $'\0'$BUFFER$'\0' +} + +zle -N autosuggest-capture-completion _zsh_autosuggest_capture_completion_widget + +_zsh_autosuggest_capture_setup() { + # There is a bug in zpty module in older zsh versions by which a + # zpty that exits will kill all zpty processes that were forked + # before it. Here we set up a zsh exit hook to SIGKILL the zpty + # process immediately, before it has a chance to kill any other + # zpty processes. + if ! is-at-least 5.4; then + zshexit() { + # The zsh builtin `kill` fails sometimes in older versions + # https://unix.stackexchange.com/a/477647/156673 + kill -KILL $$ 2>&- || command kill -KILL $$ + + # Block for long enough for the signal to come through + sleep 1 + } + fi + + # Try to avoid any suggestions that wouldn't match the prefix + zstyle ':completion:*' matcher-list '' + zstyle ':completion:*' path-completion false + zstyle ':completion:*' max-errors 0 not-numeric + + bindkey '^I' autosuggest-capture-completion +} + +_zsh_autosuggest_capture_completion_sync() { + _zsh_autosuggest_capture_setup + + zle autosuggest-capture-completion +} + +_zsh_autosuggest_capture_completion_async() { + _zsh_autosuggest_capture_setup + + zmodload zsh/parameter 2>/dev/null || return # For `$functions` + + # Make vared completion work as if for a normal command line + # https://stackoverflow.com/a/7057118/154703 + autoload +X _complete + functions[_original_complete]=$functions[_complete] + function _complete() { + unset 'compstate[vared]' + _original_complete "$@" + } + + # Open zle with buffer set so we can capture completions for it + vared 1 +} + +_zsh_autosuggest_strategy_completion() { + # Reset options to defaults and enable LOCAL_OPTIONS + emulate -L zsh + + # Enable extended glob for completion ignore pattern + setopt EXTENDED_GLOB + + typeset -g suggestion + local line REPLY + + # Exit if we don't have completions + whence compdef >/dev/null || return + + # Exit if we don't have zpty + zmodload zsh/zpty 2>/dev/null || return + + # Exit if our search string matches the ignore pattern + [[ -n "$ZSH_AUTOSUGGEST_COMPLETION_IGNORE" ]] && [[ "$1" == $~ZSH_AUTOSUGGEST_COMPLETION_IGNORE ]] && return + + # Zle will be inactive if we are in async mode + if zle; then + zpty $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME _zsh_autosuggest_capture_completion_sync + else + zpty $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME _zsh_autosuggest_capture_completion_async "\$1" + zpty -w $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME $'\t' + fi + + { + # The completion result is surrounded by null bytes, so read the + # content between the first two null bytes. + zpty -r $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME line '*'$'\0''*'$'\0' + + # Extract the suggestion from between the null bytes. On older + # versions of zsh (older than 5.3), we sometimes get extra bytes after + # the second null byte, so trim those off the end. + # See http://www.zsh.org/mla/workers/2015/msg03290.html + suggestion="${${(@0)line}[2]}" + } always { + # Destroy the pty + zpty -d $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME + } +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/history.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/history.zsh new file mode 100644 index 00000000..0672a136 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/history.zsh @@ -0,0 +1,32 @@ + +#--------------------------------------------------------------------# +# History Suggestion Strategy # +#--------------------------------------------------------------------# +# Suggests the most recent history item that matches the given +# prefix. +# + +_zsh_autosuggest_strategy_history() { + # Reset options to defaults and enable LOCAL_OPTIONS + emulate -L zsh + + # Enable globbing flags so that we can use (#m) and (x~y) glob operator + setopt EXTENDED_GLOB + + # Escape backslashes and all of the glob operators so we can use + # this string as a pattern to search the $history associative array. + # - (#m) globbing flag enables setting references for match data + # TODO: Use (b) flag when we can drop support for zsh older than v5.0.8 + local prefix="${1//(#m)[\\*?[\]<>()|^~#]/\\$MATCH}" + + # Get the history items that match the prefix, excluding those that match + # the ignore pattern + local pattern="$prefix*" + if [[ -n $ZSH_AUTOSUGGEST_HISTORY_IGNORE ]]; then + pattern="($pattern)~($ZSH_AUTOSUGGEST_HISTORY_IGNORE)" + fi + + # Give the first history item matching the pattern as the suggestion + # - (r) subscript flag makes the pattern match on values + typeset -g suggestion="${history[(r)$pattern]}" +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/match_prev_cmd.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/match_prev_cmd.zsh new file mode 100644 index 00000000..b7097837 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/strategies/match_prev_cmd.zsh @@ -0,0 +1,66 @@ + +#--------------------------------------------------------------------# +# Match Previous Command Suggestion Strategy # +#--------------------------------------------------------------------# +# Suggests the most recent history item that matches the given +# prefix and whose preceding history item also matches the most +# recently executed command. +# +# For example, suppose your history has the following entries: +# - pwd +# - ls foo +# - ls bar +# - pwd +# +# Given the history list above, when you type 'ls', the suggestion +# will be 'ls foo' rather than 'ls bar' because your most recently +# executed command (pwd) was previously followed by 'ls foo'. +# +# 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`. + +_zsh_autosuggest_strategy_match_prev_cmd() { + # Reset options to defaults and enable LOCAL_OPTIONS + emulate -L zsh + + # Enable globbing flags so that we can use (#m) and (x~y) glob operator + setopt EXTENDED_GLOB + + # TODO: Use (b) flag when we can drop support for zsh older than v5.0.8 + local prefix="${1//(#m)[\\*?[\]<>()|^~#]/\\$MATCH}" + + # Get the history items that match the prefix, excluding those that match + # the ignore pattern + local pattern="$prefix*" + if [[ -n $ZSH_AUTOSUGGEST_HISTORY_IGNORE ]]; then + pattern="($pattern)~($ZSH_AUTOSUGGEST_HISTORY_IGNORE)" + fi + + # Get all history event numbers that correspond to history + # entries that match the pattern + local history_match_keys + history_match_keys=(${(k)history[(R)$~pattern]}) + + # By default we use the first history number (most recent history entry) + local histkey="${history_match_keys[1]}" + + # Get the previously executed command + local prev_cmd="$(_zsh_autosuggest_escape_command "${history[$((HISTCMD-1))]}")" + + # Iterate up to the first 200 history event numbers that match $prefix + for key in "${(@)history_match_keys[1,200]}"; do + # Stop if we ran out of history + [[ $key -gt 1 ]] || break + + # See if the history entry preceding the suggestion matches the + # previous command, and use it if it does + if [[ "${history[$((key - 1))]}" == "$prev_cmd" ]]; then + histkey="$key" + break + fi + done + + # Give back the matched history entry + typeset -g suggestion="$history[$histkey]" +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/util.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/util.zsh new file mode 100644 index 00000000..1f55d363 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/util.zsh @@ -0,0 +1,11 @@ + +#--------------------------------------------------------------------# +# Utility Functions # +#--------------------------------------------------------------------# + +_zsh_autosuggest_escape_command() { + setopt localoptions EXTENDED_GLOB + + # Escape special chars in the string (requires EXTENDED_GLOB) + echo -E "${1//(#m)[\"\'\\()\[\]|*?~]/\\$MATCH}" +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/widgets.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/widgets.zsh new file mode 100644 index 00000000..7562897e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/src/widgets.zsh @@ -0,0 +1,231 @@ + +#--------------------------------------------------------------------# +# Autosuggest Widget Implementations # +#--------------------------------------------------------------------# + +# Disable suggestions +_zsh_autosuggest_disable() { + typeset -g _ZSH_AUTOSUGGEST_DISABLED + _zsh_autosuggest_clear +} + +# Enable suggestions +_zsh_autosuggest_enable() { + unset _ZSH_AUTOSUGGEST_DISABLED + + if (( $#BUFFER )); then + _zsh_autosuggest_fetch + fi +} + +# Toggle suggestions (enable/disable) +_zsh_autosuggest_toggle() { + if (( ${+_ZSH_AUTOSUGGEST_DISABLED} )); then + _zsh_autosuggest_enable + else + _zsh_autosuggest_disable + fi +} + +# Clear the suggestion +_zsh_autosuggest_clear() { + # Remove the suggestion + POSTDISPLAY= + + _zsh_autosuggest_invoke_original_widget $@ +} + +# Modify the buffer and get a new suggestion +_zsh_autosuggest_modify() { + local -i retval + + # Only available in zsh >= 5.4 + local -i KEYS_QUEUED_COUNT + + # Save the contents of the buffer/postdisplay + local orig_buffer="$BUFFER" + local orig_postdisplay="$POSTDISPLAY" + + # Clear suggestion while waiting for next one + POSTDISPLAY= + + # Original widget may modify the buffer + _zsh_autosuggest_invoke_original_widget $@ + retval=$? + + emulate -L zsh + + # Don't fetch a new suggestion if there's more input to be read immediately + if (( $PENDING > 0 || $KEYS_QUEUED_COUNT > 0 )); then + POSTDISPLAY="$orig_postdisplay" + return $retval + fi + + # Optimize if manually typing in the suggestion or if buffer hasn't changed + if [[ "$BUFFER" = "$orig_buffer"* && "$orig_postdisplay" = "${BUFFER:$#orig_buffer}"* ]]; then + POSTDISPLAY="${orig_postdisplay:$(($#BUFFER - $#orig_buffer))}" + return $retval + fi + + # Bail out if suggestions are disabled + if (( ${+_ZSH_AUTOSUGGEST_DISABLED} )); then + return $? + fi + + # Get a new suggestion if the buffer is not empty after modification + if (( $#BUFFER > 0 )); then + if [[ -z "$ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE" ]] || (( $#BUFFER <= $ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE )); then + _zsh_autosuggest_fetch + fi + fi + + return $retval +} + +# Fetch a new suggestion based on what's currently in the buffer +_zsh_autosuggest_fetch() { + if (( ${+ZSH_AUTOSUGGEST_USE_ASYNC} )); then + _zsh_autosuggest_async_request "$BUFFER" + else + local suggestion + _zsh_autosuggest_fetch_suggestion "$BUFFER" + _zsh_autosuggest_suggest "$suggestion" + fi +} + +# Offer a suggestion +_zsh_autosuggest_suggest() { + emulate -L zsh + + local suggestion="$1" + + if [[ -n "$suggestion" ]] && (( $#BUFFER )); then + POSTDISPLAY="${suggestion#$BUFFER}" + else + POSTDISPLAY= + fi +} + +# Accept the entire suggestion +_zsh_autosuggest_accept() { + local -i retval max_cursor_pos=$#BUFFER + + # When vicmd keymap is active, the cursor can't move all the way + # to the end of the buffer + if [[ "$KEYMAP" = "vicmd" ]]; then + max_cursor_pos=$((max_cursor_pos - 1)) + fi + + # If we're not in a valid state to accept a suggestion, just run the + # original widget and bail out + if (( $CURSOR != $max_cursor_pos || !$#POSTDISPLAY )); then + _zsh_autosuggest_invoke_original_widget $@ + return + fi + + # Only accept if the cursor is at the end of the buffer + # Add the suggestion to the buffer + BUFFER="$BUFFER$POSTDISPLAY" + + # Remove the suggestion + POSTDISPLAY= + + # Run the original widget before manually moving the cursor so that the + # cursor movement doesn't make the widget do something unexpected + _zsh_autosuggest_invoke_original_widget $@ + retval=$? + + # Move the cursor to the end of the buffer + if [[ "$KEYMAP" = "vicmd" ]]; then + CURSOR=$(($#BUFFER - 1)) + else + CURSOR=$#BUFFER + fi + + return $retval +} + +# Accept the entire suggestion and execute it +_zsh_autosuggest_execute() { + # Add the suggestion to the buffer + BUFFER="$BUFFER$POSTDISPLAY" + + # Remove the suggestion + POSTDISPLAY= + + # Call the original `accept-line` to handle syntax highlighting or + # other potential custom behavior + _zsh_autosuggest_invoke_original_widget "accept-line" +} + +# Partially accept the suggestion +_zsh_autosuggest_partial_accept() { + local -i retval cursor_loc + + # Save the contents of the buffer so we can restore later if needed + local original_buffer="$BUFFER" + + # Temporarily accept the suggestion. + BUFFER="$BUFFER$POSTDISPLAY" + + # Original widget moves the cursor + _zsh_autosuggest_invoke_original_widget $@ + retval=$? + + # Normalize cursor location across vi/emacs modes + cursor_loc=$CURSOR + if [[ "$KEYMAP" = "vicmd" ]]; then + cursor_loc=$((cursor_loc + 1)) + fi + + # If we've moved past the end of the original buffer + if (( $cursor_loc > $#original_buffer )); then + # Set POSTDISPLAY to text right of the cursor + POSTDISPLAY="${BUFFER[$(($cursor_loc + 1)),$#BUFFER]}" + + # Clip the buffer at the cursor + BUFFER="${BUFFER[1,$cursor_loc]}" + else + # Restore the original buffer + BUFFER="$original_buffer" + fi + + return $retval +} + +() { + typeset -ga _ZSH_AUTOSUGGEST_BUILTIN_ACTIONS + + _ZSH_AUTOSUGGEST_BUILTIN_ACTIONS=( + clear + fetch + suggest + accept + execute + enable + disable + toggle + ) + + local action + for action in $_ZSH_AUTOSUGGEST_BUILTIN_ACTIONS modify partial_accept; do + eval "_zsh_autosuggest_widget_$action() { + local -i retval + + _zsh_autosuggest_highlight_reset + + _zsh_autosuggest_$action \$@ + retval=\$? + + _zsh_autosuggest_highlight_apply + + zle -R + + return \$retval + }" + done + + for action in $_ZSH_AUTOSUGGEST_BUILTIN_ACTIONS; do + zle -N autosuggest-$action _zsh_autosuggest_widget_$action + done +} diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh new file mode 100644 index 00000000..16c22563 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh @@ -0,0 +1 @@ +source ${0:A:h}/zsh-autosuggestions.zsh diff --git a/gentoo/dotfiles/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh b/gentoo/dotfiles/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh new file mode 100644 index 00000000..e7802251 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh @@ -0,0 +1,867 @@ +# Fish-like fast/unobtrusive autosuggestions for zsh. +# https://github.com/zsh-users/zsh-autosuggestions +# v0.7.1 +# Copyright (c) 2013 Thiago de Arruda +# Copyright (c) 2016-2021 Eric Freese +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +#--------------------------------------------------------------------# +# Global Configuration Variables # +#--------------------------------------------------------------------# + +# Color to use when highlighting suggestion +# Uses format of `region_highlight` +# More info: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Widgets +(( ! ${+ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE} )) && +typeset -g ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8' + +# Prefix to use when saving original versions of bound widgets +(( ! ${+ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX} )) && +typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig- + +# Strategies to use to fetch a suggestion +# Will try each strategy in order until a suggestion is returned +(( ! ${+ZSH_AUTOSUGGEST_STRATEGY} )) && { + typeset -ga ZSH_AUTOSUGGEST_STRATEGY + ZSH_AUTOSUGGEST_STRATEGY=(history) +} + +# Widgets that clear the suggestion +(( ! ${+ZSH_AUTOSUGGEST_CLEAR_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_CLEAR_WIDGETS + ZSH_AUTOSUGGEST_CLEAR_WIDGETS=( + history-search-forward + 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 + down-line-or-beginning-search + up-line-or-history + down-line-or-history + accept-line + copy-earlier-word + ) +} + +# Widgets that accept the entire suggestion +(( ! ${+ZSH_AUTOSUGGEST_ACCEPT_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_ACCEPT_WIDGETS + ZSH_AUTOSUGGEST_ACCEPT_WIDGETS=( + forward-char + end-of-line + vi-forward-char + vi-end-of-line + vi-add-eol + ) +} + +# Widgets that accept the entire suggestion and execute it +(( ! ${+ZSH_AUTOSUGGEST_EXECUTE_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_EXECUTE_WIDGETS + ZSH_AUTOSUGGEST_EXECUTE_WIDGETS=( + ) +} + +# Widgets that accept the suggestion as far as the cursor moves +(( ! ${+ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS + ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS=( + forward-word + emacs-forward-word + vi-forward-word + vi-forward-word-end + vi-forward-blank-word + vi-forward-blank-word-end + vi-find-next-char + vi-find-next-char-skip + ) +} + +# Widgets that should be ignored (globbing supported but must be escaped) +(( ! ${+ZSH_AUTOSUGGEST_IGNORE_WIDGETS} )) && { + typeset -ga ZSH_AUTOSUGGEST_IGNORE_WIDGETS + ZSH_AUTOSUGGEST_IGNORE_WIDGETS=( + orig-\* + beep + run-help + set-local-history + which-command + yank + yank-pop + zle-\* + ) +} + +# Pty name for capturing completions for completion suggestion strategy +(( ! ${+ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME} )) && +typeset -g ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME=zsh_autosuggest_completion_pty + +#--------------------------------------------------------------------# +# Utility Functions # +#--------------------------------------------------------------------# + +_zsh_autosuggest_escape_command() { + setopt localoptions EXTENDED_GLOB + + # Escape special chars in the string (requires EXTENDED_GLOB) + echo -E "${1//(#m)[\"\'\\()\[\]|*?~]/\\$MATCH}" +} + +#--------------------------------------------------------------------# +# Widget Helpers # +#--------------------------------------------------------------------# + +_zsh_autosuggest_incr_bind_count() { + typeset -gi bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]+1)) + _ZSH_AUTOSUGGEST_BIND_COUNTS[$1]=$bind_count +} + +# Bind a single widget to an autosuggest widget, saving a reference to the original widget +_zsh_autosuggest_bind_widget() { + typeset -gA _ZSH_AUTOSUGGEST_BIND_COUNTS + + local widget=$1 + local autosuggest_action=$2 + local prefix=$ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX + + local -i bind_count + + # Save a reference to the original widget + case $widgets[$widget] in + # Already bound + user:_zsh_autosuggest_(bound|orig)_*) + bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$widget])) + ;; + + # User-defined widget + user:*) + _zsh_autosuggest_incr_bind_count $widget + zle -N $prefix$bind_count-$widget ${widgets[$widget]#*:} + ;; + + # Built-in widget + builtin) + _zsh_autosuggest_incr_bind_count $widget + eval "_zsh_autosuggest_orig_${(q)widget}() { zle .${(q)widget} }" + zle -N $prefix$bind_count-$widget _zsh_autosuggest_orig_$widget + ;; + + # Completion widget + completion:*) + _zsh_autosuggest_incr_bind_count $widget + eval "zle -C $prefix$bind_count-${(q)widget} ${${(s.:.)widgets[$widget]}[2,3]}" + ;; + esac + + # Pass the original widget's name explicitly into the autosuggest + # function. Use this passed in widget name to call the original + # widget instead of relying on the $WIDGET variable being set + # correctly. $WIDGET cannot be trusted because other plugins call + # zle without the `-w` flag (e.g. `zle self-insert` instead of + # `zle self-insert -w`). + eval "_zsh_autosuggest_bound_${bind_count}_${(q)widget}() { + _zsh_autosuggest_widget_$autosuggest_action $prefix$bind_count-${(q)widget} \$@ + }" + + # Create the bound widget + zle -N -- $widget _zsh_autosuggest_bound_${bind_count}_$widget +} + +# Map all configured widgets to the right autosuggest widgets +_zsh_autosuggest_bind_widgets() { + emulate -L zsh + + local widget + local ignore_widgets + + ignore_widgets=( + .\* + _\* + ${_ZSH_AUTOSUGGEST_BUILTIN_ACTIONS/#/autosuggest-} + $ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX\* + $ZSH_AUTOSUGGEST_IGNORE_WIDGETS + ) + + # Find every widget we might want to bind and bind it appropriately + for widget in ${${(f)"$(builtin zle -la)"}:#${(j:|:)~ignore_widgets}}; do + if [[ -n ${ZSH_AUTOSUGGEST_CLEAR_WIDGETS[(r)$widget]} ]]; then + _zsh_autosuggest_bind_widget $widget clear + elif [[ -n ${ZSH_AUTOSUGGEST_ACCEPT_WIDGETS[(r)$widget]} ]]; then + _zsh_autosuggest_bind_widget $widget accept + elif [[ -n ${ZSH_AUTOSUGGEST_EXECUTE_WIDGETS[(r)$widget]} ]]; then + _zsh_autosuggest_bind_widget $widget execute + elif [[ -n ${ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS[(r)$widget]} ]]; then + _zsh_autosuggest_bind_widget $widget partial_accept + else + # Assume any unspecified widget might modify the buffer + _zsh_autosuggest_bind_widget $widget modify + fi + done +} + +# Given the name of an original widget and args, invoke it, if it exists +_zsh_autosuggest_invoke_original_widget() { + # Do nothing unless called with at least one arg + (( $# )) || return 0 + + local original_widget_name="$1" + + shift + + if (( ${+widgets[$original_widget_name]} )); then + zle $original_widget_name -- $@ + fi +} + +#--------------------------------------------------------------------# +# Highlighting # +#--------------------------------------------------------------------# + +# If there was a highlight, remove it +_zsh_autosuggest_highlight_reset() { + typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT + + if [[ -n "$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT" ]]; then + region_highlight=("${(@)region_highlight:#$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT}") + unset _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT + fi +} + +# If there's a suggestion, highlight it +_zsh_autosuggest_highlight_apply() { + typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT + + if (( $#POSTDISPLAY )); then + typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT="$#BUFFER $(($#BUFFER + $#POSTDISPLAY)) $ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE" + region_highlight+=("$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT") + else + unset _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT + fi +} + +#--------------------------------------------------------------------# +# Autosuggest Widget Implementations # +#--------------------------------------------------------------------# + +# Disable suggestions +_zsh_autosuggest_disable() { + typeset -g _ZSH_AUTOSUGGEST_DISABLED + _zsh_autosuggest_clear +} + +# Enable suggestions +_zsh_autosuggest_enable() { + unset _ZSH_AUTOSUGGEST_DISABLED + + if (( $#BUFFER )); then + _zsh_autosuggest_fetch + fi +} + +# Toggle suggestions (enable/disable) +_zsh_autosuggest_toggle() { + if (( ${+_ZSH_AUTOSUGGEST_DISABLED} )); then + _zsh_autosuggest_enable + else + _zsh_autosuggest_disable + fi +} + +# Clear the suggestion +_zsh_autosuggest_clear() { + # Remove the suggestion + POSTDISPLAY= + + _zsh_autosuggest_invoke_original_widget $@ +} + +# Modify the buffer and get a new suggestion +_zsh_autosuggest_modify() { + local -i retval + + # Only available in zsh >= 5.4 + local -i KEYS_QUEUED_COUNT + + # Save the contents of the buffer/postdisplay + local orig_buffer="$BUFFER" + local orig_postdisplay="$POSTDISPLAY" + + # Clear suggestion while waiting for next one + POSTDISPLAY= + + # Original widget may modify the buffer + _zsh_autosuggest_invoke_original_widget $@ + retval=$? + + emulate -L zsh + + # Don't fetch a new suggestion if there's more input to be read immediately + if (( $PENDING > 0 || $KEYS_QUEUED_COUNT > 0 )); then + POSTDISPLAY="$orig_postdisplay" + return $retval + fi + + # Optimize if manually typing in the suggestion or if buffer hasn't changed + if [[ "$BUFFER" = "$orig_buffer"* && "$orig_postdisplay" = "${BUFFER:$#orig_buffer}"* ]]; then + POSTDISPLAY="${orig_postdisplay:$(($#BUFFER - $#orig_buffer))}" + return $retval + fi + + # Bail out if suggestions are disabled + if (( ${+_ZSH_AUTOSUGGEST_DISABLED} )); then + return $? + fi + + # Get a new suggestion if the buffer is not empty after modification + if (( $#BUFFER > 0 )); then + if [[ -z "$ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE" ]] || (( $#BUFFER <= $ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE )); then + _zsh_autosuggest_fetch + fi + fi + + return $retval +} + +# Fetch a new suggestion based on what's currently in the buffer +_zsh_autosuggest_fetch() { + if (( ${+ZSH_AUTOSUGGEST_USE_ASYNC} )); then + _zsh_autosuggest_async_request "$BUFFER" + else + local suggestion + _zsh_autosuggest_fetch_suggestion "$BUFFER" + _zsh_autosuggest_suggest "$suggestion" + fi +} + +# Offer a suggestion +_zsh_autosuggest_suggest() { + emulate -L zsh + + local suggestion="$1" + + if [[ -n "$suggestion" ]] && (( $#BUFFER )); then + POSTDISPLAY="${suggestion#$BUFFER}" + else + POSTDISPLAY= + fi +} + +# Accept the entire suggestion +_zsh_autosuggest_accept() { + local -i retval max_cursor_pos=$#BUFFER + + # When vicmd keymap is active, the cursor can't move all the way + # to the end of the buffer + if [[ "$KEYMAP" = "vicmd" ]]; then + max_cursor_pos=$((max_cursor_pos - 1)) + fi + + # If we're not in a valid state to accept a suggestion, just run the + # original widget and bail out + if (( $CURSOR != $max_cursor_pos || !$#POSTDISPLAY )); then + _zsh_autosuggest_invoke_original_widget $@ + return + fi + + # Only accept if the cursor is at the end of the buffer + # Add the suggestion to the buffer + BUFFER="$BUFFER$POSTDISPLAY" + + # Remove the suggestion + POSTDISPLAY= + + # Run the original widget before manually moving the cursor so that the + # cursor movement doesn't make the widget do something unexpected + _zsh_autosuggest_invoke_original_widget $@ + retval=$? + + # Move the cursor to the end of the buffer + if [[ "$KEYMAP" = "vicmd" ]]; then + CURSOR=$(($#BUFFER - 1)) + else + CURSOR=$#BUFFER + fi + + return $retval +} + +# Accept the entire suggestion and execute it +_zsh_autosuggest_execute() { + # Add the suggestion to the buffer + BUFFER="$BUFFER$POSTDISPLAY" + + # Remove the suggestion + POSTDISPLAY= + + # Call the original `accept-line` to handle syntax highlighting or + # other potential custom behavior + _zsh_autosuggest_invoke_original_widget "accept-line" +} + +# Partially accept the suggestion +_zsh_autosuggest_partial_accept() { + local -i retval cursor_loc + + # Save the contents of the buffer so we can restore later if needed + local original_buffer="$BUFFER" + + # Temporarily accept the suggestion. + BUFFER="$BUFFER$POSTDISPLAY" + + # Original widget moves the cursor + _zsh_autosuggest_invoke_original_widget $@ + retval=$? + + # Normalize cursor location across vi/emacs modes + cursor_loc=$CURSOR + if [[ "$KEYMAP" = "vicmd" ]]; then + cursor_loc=$((cursor_loc + 1)) + fi + + # If we've moved past the end of the original buffer + if (( $cursor_loc > $#original_buffer )); then + # Set POSTDISPLAY to text right of the cursor + POSTDISPLAY="${BUFFER[$(($cursor_loc + 1)),$#BUFFER]}" + + # Clip the buffer at the cursor + BUFFER="${BUFFER[1,$cursor_loc]}" + else + # Restore the original buffer + BUFFER="$original_buffer" + fi + + return $retval +} + +() { + typeset -ga _ZSH_AUTOSUGGEST_BUILTIN_ACTIONS + + _ZSH_AUTOSUGGEST_BUILTIN_ACTIONS=( + clear + fetch + suggest + accept + execute + enable + disable + toggle + ) + + local action + for action in $_ZSH_AUTOSUGGEST_BUILTIN_ACTIONS modify partial_accept; do + eval "_zsh_autosuggest_widget_$action() { + local -i retval + + _zsh_autosuggest_highlight_reset + + _zsh_autosuggest_$action \$@ + retval=\$? + + _zsh_autosuggest_highlight_apply + + zle -R + + return \$retval + }" + done + + for action in $_ZSH_AUTOSUGGEST_BUILTIN_ACTIONS; do + zle -N autosuggest-$action _zsh_autosuggest_widget_$action + done +} + +#--------------------------------------------------------------------# +# Completion Suggestion Strategy # +#--------------------------------------------------------------------# +# Fetches a suggestion from the completion engine +# + +_zsh_autosuggest_capture_postcompletion() { + # Always insert the first completion into the buffer + compstate[insert]=1 + + # Don't list completions + unset 'compstate[list]' +} + +_zsh_autosuggest_capture_completion_widget() { + # Add a post-completion hook to be called after all completions have been + # gathered. The hook can modify compstate to affect what is done with the + # gathered completions. + local -a +h comppostfuncs + comppostfuncs=(_zsh_autosuggest_capture_postcompletion) + + # Only capture completions at the end of the buffer + CURSOR=$#BUFFER + + # Run the original widget wrapping `.complete-word` so we don't + # recursively try to fetch suggestions, since our pty is forked + # after autosuggestions is initialized. + zle -- ${(k)widgets[(r)completion:.complete-word:_main_complete]} + + if is-at-least 5.0.3; then + # Don't do any cr/lf transformations. We need to do this immediately before + # output because if we do it in setup, onlcr will be re-enabled when we enter + # vared in the async code path. There is a bug in zpty module in older versions + # where the tty is not properly attached to the pty slave, resulting in stty + # getting stopped with a SIGTTOU. See zsh-workers thread 31660 and upstream + # commit f75904a38 + stty -onlcr -ocrnl -F /dev/tty + fi + + # The completion has been added, print the buffer as the suggestion + echo -nE - $'\0'$BUFFER$'\0' +} + +zle -N autosuggest-capture-completion _zsh_autosuggest_capture_completion_widget + +_zsh_autosuggest_capture_setup() { + # There is a bug in zpty module in older zsh versions by which a + # zpty that exits will kill all zpty processes that were forked + # before it. Here we set up a zsh exit hook to SIGKILL the zpty + # process immediately, before it has a chance to kill any other + # zpty processes. + if ! is-at-least 5.4; then + zshexit() { + # The zsh builtin `kill` fails sometimes in older versions + # https://unix.stackexchange.com/a/477647/156673 + kill -KILL $$ 2>&- || command kill -KILL $$ + + # Block for long enough for the signal to come through + sleep 1 + } + fi + + # Try to avoid any suggestions that wouldn't match the prefix + zstyle ':completion:*' matcher-list '' + zstyle ':completion:*' path-completion false + zstyle ':completion:*' max-errors 0 not-numeric + + bindkey '^I' autosuggest-capture-completion +} + +_zsh_autosuggest_capture_completion_sync() { + _zsh_autosuggest_capture_setup + + zle autosuggest-capture-completion +} + +_zsh_autosuggest_capture_completion_async() { + _zsh_autosuggest_capture_setup + + zmodload zsh/parameter 2>/dev/null || return # For `$functions` + + # Make vared completion work as if for a normal command line + # https://stackoverflow.com/a/7057118/154703 + autoload +X _complete + functions[_original_complete]=$functions[_complete] + function _complete() { + unset 'compstate[vared]' + _original_complete "$@" + } + + # Open zle with buffer set so we can capture completions for it + vared 1 +} + +_zsh_autosuggest_strategy_completion() { + # Reset options to defaults and enable LOCAL_OPTIONS + emulate -L zsh + + # Enable extended glob for completion ignore pattern + setopt EXTENDED_GLOB + + typeset -g suggestion + local line REPLY + + # Exit if we don't have completions + whence compdef >/dev/null || return + + # Exit if we don't have zpty + zmodload zsh/zpty 2>/dev/null || return + + # Exit if our search string matches the ignore pattern + [[ -n "$ZSH_AUTOSUGGEST_COMPLETION_IGNORE" ]] && [[ "$1" == $~ZSH_AUTOSUGGEST_COMPLETION_IGNORE ]] && return + + # Zle will be inactive if we are in async mode + if zle; then + zpty $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME _zsh_autosuggest_capture_completion_sync + else + zpty $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME _zsh_autosuggest_capture_completion_async "\$1" + zpty -w $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME $'\t' + fi + + { + # The completion result is surrounded by null bytes, so read the + # content between the first two null bytes. + zpty -r $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME line '*'$'\0''*'$'\0' + + # Extract the suggestion from between the null bytes. On older + # versions of zsh (older than 5.3), we sometimes get extra bytes after + # the second null byte, so trim those off the end. + # See http://www.zsh.org/mla/workers/2015/msg03290.html + suggestion="${${(@0)line}[2]}" + } always { + # Destroy the pty + zpty -d $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME + } +} + +#--------------------------------------------------------------------# +# History Suggestion Strategy # +#--------------------------------------------------------------------# +# Suggests the most recent history item that matches the given +# prefix. +# + +_zsh_autosuggest_strategy_history() { + # Reset options to defaults and enable LOCAL_OPTIONS + emulate -L zsh + + # Enable globbing flags so that we can use (#m) and (x~y) glob operator + setopt EXTENDED_GLOB + + # Escape backslashes and all of the glob operators so we can use + # this string as a pattern to search the $history associative array. + # - (#m) globbing flag enables setting references for match data + # TODO: Use (b) flag when we can drop support for zsh older than v5.0.8 + local prefix="${1//(#m)[\\*?[\]<>()|^~#]/\\$MATCH}" + + # Get the history items that match the prefix, excluding those that match + # the ignore pattern + local pattern="$prefix*" + if [[ -n $ZSH_AUTOSUGGEST_HISTORY_IGNORE ]]; then + pattern="($pattern)~($ZSH_AUTOSUGGEST_HISTORY_IGNORE)" + fi + + # Give the first history item matching the pattern as the suggestion + # - (r) subscript flag makes the pattern match on values + typeset -g suggestion="${history[(r)$pattern]}" +} + +#--------------------------------------------------------------------# +# Match Previous Command Suggestion Strategy # +#--------------------------------------------------------------------# +# Suggests the most recent history item that matches the given +# prefix and whose preceding history item also matches the most +# recently executed command. +# +# For example, suppose your history has the following entries: +# - pwd +# - ls foo +# - ls bar +# - pwd +# +# Given the history list above, when you type 'ls', the suggestion +# will be 'ls foo' rather than 'ls bar' because your most recently +# executed command (pwd) was previously followed by 'ls foo'. +# +# 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`. + +_zsh_autosuggest_strategy_match_prev_cmd() { + # Reset options to defaults and enable LOCAL_OPTIONS + emulate -L zsh + + # Enable globbing flags so that we can use (#m) and (x~y) glob operator + setopt EXTENDED_GLOB + + # TODO: Use (b) flag when we can drop support for zsh older than v5.0.8 + local prefix="${1//(#m)[\\*?[\]<>()|^~#]/\\$MATCH}" + + # Get the history items that match the prefix, excluding those that match + # the ignore pattern + local pattern="$prefix*" + if [[ -n $ZSH_AUTOSUGGEST_HISTORY_IGNORE ]]; then + pattern="($pattern)~($ZSH_AUTOSUGGEST_HISTORY_IGNORE)" + fi + + # Get all history event numbers that correspond to history + # entries that match the pattern + local history_match_keys + history_match_keys=(${(k)history[(R)$~pattern]}) + + # By default we use the first history number (most recent history entry) + local histkey="${history_match_keys[1]}" + + # Get the previously executed command + local prev_cmd="$(_zsh_autosuggest_escape_command "${history[$((HISTCMD-1))]}")" + + # Iterate up to the first 200 history event numbers that match $prefix + for key in "${(@)history_match_keys[1,200]}"; do + # Stop if we ran out of history + [[ $key -gt 1 ]] || break + + # See if the history entry preceding the suggestion matches the + # previous command, and use it if it does + if [[ "${history[$((key - 1))]}" == "$prev_cmd" ]]; then + histkey="$key" + break + fi + done + + # Give back the matched history entry + typeset -g suggestion="$history[$histkey]" +} + +#--------------------------------------------------------------------# +# Fetch Suggestion # +#--------------------------------------------------------------------# +# Loops through all specified strategies and returns a suggestion +# from the first strategy to provide one. +# + +_zsh_autosuggest_fetch_suggestion() { + typeset -g suggestion + local -a strategies + local strategy + + # Ensure we are working with an array + strategies=(${=ZSH_AUTOSUGGEST_STRATEGY}) + + for strategy in $strategies; do + # Try to get a suggestion from this strategy + _zsh_autosuggest_strategy_$strategy "$1" + + # Ensure the suggestion matches the prefix + [[ "$suggestion" != "$1"* ]] && unset suggestion + + # Break once we've found a valid suggestion + [[ -n "$suggestion" ]] && break + done +} + +#--------------------------------------------------------------------# +# Async # +#--------------------------------------------------------------------# + +_zsh_autosuggest_async_request() { + zmodload zsh/system 2>/dev/null # For `$sysparams` + + typeset -g _ZSH_AUTOSUGGEST_ASYNC_FD _ZSH_AUTOSUGGEST_CHILD_PID + + # 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 + 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 + if [[ -n "$_ZSH_AUTOSUGGEST_CHILD_PID" ]]; then + # Zsh will make a new process group for the child process only if job + # control is enabled (MONITOR option) + if [[ -o MONITOR ]]; then + # Send the signal to the process group to kill any processes that may + # have been forked by the suggestion strategy + kill -TERM -$_ZSH_AUTOSUGGEST_CHILD_PID 2>/dev/null + else + # Kill just the child process since it wasn't placed in a new process + # group. If the suggestion strategy forked any child processes they may + # be orphaned and left behind. + kill -TERM $_ZSH_AUTOSUGGEST_CHILD_PID 2>/dev/null + fi + fi + fi + + # Fork a process to fetch a suggestion and open a pipe to read from it + builtin exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <( + # Tell parent process our pid + echo $sysparams[pid] + + # Fetch and print the suggestion + local suggestion + _zsh_autosuggest_fetch_suggestion "$1" + echo -nE "$suggestion" + ) + + # There's a weird bug here where ^C stops working unless we force a fork + # See https://github.com/zsh-users/zsh-autosuggestions/issues/364 + autoload -Uz is-at-least + is-at-least 5.8 || command true + + # Read the pid from the child process + read _ZSH_AUTOSUGGEST_CHILD_PID <&$_ZSH_AUTOSUGGEST_ASYNC_FD + + # When the fd is readable, call the response handler + zle -F "$_ZSH_AUTOSUGGEST_ASYNC_FD" _zsh_autosuggest_async_response +} + +# Called when new data is ready to be read from the pipe +# First arg will be fd ready for reading +# Second arg will be passed in case of error +_zsh_autosuggest_async_response() { + emulate -L zsh + + local suggestion + + if [[ -z "$2" || "$2" == "hup" ]]; then + # Read everything from the fd and give it as a suggestion + IFS='' read -rd '' -u $1 suggestion + zle autosuggest-suggest -- "$suggestion" + + # Close the fd + builtin exec {1}<&- + fi + + # Always remove the handler + zle -F "$1" + _ZSH_AUTOSUGGEST_ASYNC_FD= +} + +#--------------------------------------------------------------------# +# Start # +#--------------------------------------------------------------------# + +# Start the autosuggestion widgets +_zsh_autosuggest_start() { + # By default we re-bind widgets on every precmd to ensure we wrap other + # wrappers. Specifically, highlighting breaks if our widgets are wrapped by + # zsh-syntax-highlighting widgets. This also allows modifications to the + # widget list variables to take effect on the next precmd. However this has + # a decent performance hit, so users can set ZSH_AUTOSUGGEST_MANUAL_REBIND + # to disable the automatic re-binding. + if (( ${+ZSH_AUTOSUGGEST_MANUAL_REBIND} )); then + add-zsh-hook -d precmd _zsh_autosuggest_start + fi + + _zsh_autosuggest_bind_widgets +} + +# Mark for auto-loading the functions that we use +autoload -Uz add-zsh-hook is-at-least + +# Automatically enable asynchronous mode in newer versions of zsh. Disable for +# older versions because there is a bug when using async mode where ^C does not +# work immediately after fetching a suggestion. +# See https://github.com/zsh-users/zsh-autosuggestions/issues/364 +if is-at-least 5.0.8; then + typeset -g ZSH_AUTOSUGGEST_USE_ASYNC= +fi + +# Start the autosuggestion widgets on the next precmd +add-zsh-hook precmd _zsh_autosuggest_start diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.editorconfig b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.editorconfig new file mode 100644 index 00000000..cda541d5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.editorconfig @@ -0,0 +1,15 @@ +# Top-most editorconfig file + +root = true + +[*] +end_of_line = lf +tab_width = 2 +indent_size = 2 +indent_style = space + +[Makefile] +tab_width = 8 +indent_size = 8 +indent_style = tab + diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.gitattributes b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.gitattributes new file mode 100644 index 00000000..715e624b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.gitattributes @@ -0,0 +1 @@ +.revision-hash export-subst diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.github/workflows/test.yml b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.github/workflows/test.yml new file mode 100644 index 00000000..cd50b8ac --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.github/workflows/test.yml @@ -0,0 +1,75 @@ +--- +name: Tests +on: + push: + paths-ignore: + - '**.md' + - '**.png' + pull_request: + paths-ignore: + - '**.md' + - '**.png' + schedule: + - cron: '29 7 * * 1' + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + version: + - master + - 5.9 + - 5.8.1 + - 5.8 + - 5.7.1 + - 5.7 + - 5.6.2 + - 5.6.1 + - 5.6 + - 5.5.1 + - 5.5 + - 5.4.2 + - 5.4.1 + - 5.4 + - 5.3.1 + - 5.3 + - 5.2 + - 5.1.1 + - 5.1 + - 5.0.8 + - 5.0.7 + - 5.0.6 + - 5.0.5 + - 5.0.4 + - 5.0.3 + - 5.0.2 + - 5.0.1 + - 5.0.0 + - 4.3.17 + - 4.3.16 + - 4.3.15 + - 4.3.14 + - 4.3.13 + - 4.3.12 + - 4.3.11 + container: + image: ghcr.io/zsh-users/zsh:${{ matrix.version }} + steps: + - uses: actions/checkout@v4 + - run: install_packages bsdmainutils make procps + - run: make test + + notify: + runs-on: ubuntu-latest + needs: test + if: failure() && (github.repository_owner == 'zsh-users') + steps: + - + name: Notify IRC + uses: Gottox/irc-message-action@v2 + with: + channel: '#zsh-syntax-highlighting' + nickname: zsyh-gh-bot + message: '${{ github.ref }} failed tests: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.revision-hash b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.revision-hash new file mode 100644 index 00000000..6828f88d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.revision-hash @@ -0,0 +1 @@ +$Format:%H$ diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.version b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.version new file mode 100644 index 00000000..d182dc91 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/.version @@ -0,0 +1 @@ +0.8.1-dev diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/COPYING.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/COPYING.md new file mode 100644 index 00000000..cacbcbee --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/COPYING.md @@ -0,0 +1,23 @@ +Copyright (c) 2010-2020 zsh-syntax-highlighting contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions + and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors + may be used to endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/HACKING.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/HACKING.md new file mode 100644 index 00000000..ddd39a4e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/HACKING.md @@ -0,0 +1,99 @@ +Hacking on zsh-syntax-highlighting itself +========================================= + +This document includes information for people working on z-sy-h itself: on the +core driver (`zsh-syntax-highlighting.zsh`), on the highlighters in the +distribution, and on the test suite. It does not target third-party +highlighter authors (although they may find it an interesting read). + +The `main` highlighter +---------------------- + +The following function `pz` is useful when working on the `main` highlighting: + +```zsh +pq() { + (( $#argv )) || return 0 + print -r -l -- ${(qqqq)argv} +} +pz() { + local arg + for arg; do + pq ${(z)arg} + done +} +``` + +It prints, for each argument, its token breakdown, similar to how the main +loop of the `main` highlighter sees it. + +Testing the `brackets` highlighter +---------------------------------- + +Since the test harness empties `ZSH_HIGHLIGHT_STYLES` and the `brackets` +highlighter interrogates `ZSH_HIGHLIGHT_STYLES` to determine how to highlight, +tests must set the `bracket-level-#` keys themselves. For example: + +```zsh +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + +BUFFER='echo ({x})' + +expected_region_highlight=( + "6 6 bracket-level-1" # ( + "7 7 bracket-level-2" # { + "9 9 bracket-level-2" # } + "10 10 bracket-level-1" # ) +) +``` + +Testing the `pattern` and `regexp` highlighters +----------------------------------------------- + +Because the `pattern` and `regexp` highlighters modifies `region_highlight` +directly instead of using `_zsh_highlight_add_highlight`, the test harness +cannot get the `ZSH_HIGHLIGHT_STYLES` keys. Therefore, when writing tests, use +the style itself as third word (cf. the +[documentation for `expected_region_highlight`](docs/highlighters.md)). For example: + +```zsh +ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') + +BUFFER='rm -rf /' + +expected_region_highlight=( + "1 8 fg=white,bold,bg=red" # rm -rf / +) +``` + +Memos and commas +---------------- + +We append to `region_highlight` as follows: + + +```zsh +region_highlight+=("$start $end $spec, memo=zsh-syntax-highlighting") +``` + +That comma is required to cause zsh 5.8 and older to ignore the memo without +ignoring the `$spec`. It's a hack, but given that no further 5.8.x patch +releases are planned, it's been deemed acceptable. See issue #418 and the +cross-referenced issues. + + +Miscellany +---------- + +If you work on the driver (`zsh-syntax-highlighting.zsh`), you may find the following zstyle useful: + +```zsh +zstyle ':completion:*:*:*:*:globbed-files' ignored-patterns {'*/',}zsh-syntax-highlighting.plugin.zsh +``` + +IRC channel +----------- + +We're on #zsh-syntax-highlighting on Libera.Chat. + diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/INSTALL.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/INSTALL.md new file mode 100644 index 00000000..2e1286db --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/INSTALL.md @@ -0,0 +1,169 @@ +How to install +-------------- + +### Using packages + +First, install the package: + +* Arch Linux: [community/zsh-syntax-highlighting][arch-package] / [AUR/zsh-syntax-highlighting-git][AUR-package] +* Debian: `zsh-syntax-highlighting` package [in `stretch`][debian-package] (or in [OBS repository][obs-repository]) +* Fedora: [zsh-syntax-highlighting package][fedora-package-alt] in Fedora 24+ (or in [OBS repository][obs-repository]) +* FreeBSD: `pkg install zsh-syntax-highlighting` (port name: [`shells/zsh-syntax-highlighting`][freebsd-port]) +* Gentoo: [app-shells/zsh-syntax-highlighting][gentoo-repository] +* Mac OS X / Homebrew: `brew install zsh-syntax-highlighting` ([formula][brew-package]) +* NetBSD: `pkg_add zsh-syntax-highlighting` (port name: [`shells/zsh-syntax-highlighting`][netbsd-port]) +* OpenBSD: `pkg_add zsh-syntax-highlighting` (port name: [`shells/zsh-syntax-highlighting`][openbsd-port]) +* openSUSE / SLE: `zsh-syntax-highlighting` package in [OBS repository][obs-repository] +* RHEL / CentOS / Scientific Linux: `zsh-syntax-highlighting` package in [OBS repository][obs-repository] +* Ubuntu: `zsh-syntax-highlighting` package [in Xenial][ubuntu-package] (or in [OBS repository][obs-repository]) +* Void Linux: `zsh-syntax-highlighting package` [in XBPS][void-package] + +[arch-package]: https://www.archlinux.org/packages/zsh-syntax-highlighting +[AUR-package]: https://aur.archlinux.org/packages/zsh-syntax-highlighting-git +[brew-package]: https://github.com/Homebrew/homebrew-core/blob/master/Formula/z/zsh-syntax-highlighting.rb +[debian-package]: https://packages.debian.org/zsh-syntax-highlighting +[fedora-package]: https://apps.fedoraproject.org/packages/zsh-syntax-highlighting +[fedora-package-alt]: https://bodhi.fedoraproject.org/updates/?packages=zsh-syntax-highlighting +[freebsd-port]: https://www.freshports.org/textproc/zsh-syntax-highlighting/ +[gentoo-repository]: https://packages.gentoo.org/packages/app-shells/zsh-syntax-highlighting +[netbsd-port]: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/shells/zsh-syntax-highlighting/ +[obs-repository]: https://software.opensuse.org/download.html?project=shells%3Azsh-users%3Azsh-syntax-highlighting&package=zsh-syntax-highlighting +[openbsd-port]: https://cvsweb.openbsd.org/ports/shells/zsh-syntax-highlighting/ +[ubuntu-package]: https://launchpad.net/ubuntu/+source/zsh-syntax-highlighting +[void-package]: https://github.com/void-linux/void-packages/tree/master/srcpkgs/zsh-syntax-highlighting + +See also [repology's cross-distro index](https://repology.org/metapackage/zsh-syntax-highlighting/versions) + +Second, enable zsh-syntax-highlighting by sourcing the script. Running this command on the terminal will add the source line to the end of your .zshrc: + +* On most Linux distributions (except perhaps NixOS): + + ```zsh + echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc + ``` + +* NetBSD and OpenBSD: + + ```zsh + echo "source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc + ``` + +* Mac OS X / Homebrew: + + ```zsh + echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc + ``` + +Then restart zsh (such as by opening a new instance of your terminal emulator). + + Alternatively, add the `source` command manually **at the end** of your `.zshrc`: + +* On most Linux distributions (except perhaps NixOS): +`source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh` +* NetBSD and OpenBSD: +`source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh` + +Then restart zsh. + +### In your ~/.zshrc + +Simply clone this repository and source the script: + +```zsh +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git +echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc +``` + + Then, enable syntax highlighting in the current interactive shell: + +```zsh +source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +``` + + If `git` is not installed, download and extract a snapshot of the latest + development tree from: + +``` +https://github.com/zsh-users/zsh-syntax-highlighting/archive/master.tar.gz +``` + + Note the `source` command must be **at the end** of `~/.zshrc`. + + +### With a plugin manager + +Note that `zsh-syntax-highlighting` must be the last plugin sourced. + +The zsh-syntax-highlighting authors recommend manual installation over the use +of a framework or plugin manager. + +This list is incomplete as there are too many +[frameworks / plugin managers][framework-list] to list them all here. + +[framework-list]: https://github.com/unixorn/awesome-zsh-plugins#frameworks + +#### [Antigen](https://github.com/zsh-users/antigen) + +Add `antigen bundle zsh-users/zsh-syntax-highlighting` as the last bundle in +your `.zshrc`. + +#### [Fig](https://fig.io) + +Click the `Install Plugin` button on the [Fig plugin page][fig-plugin]. + +[fig-plugin]: https://fig.io/plugins/other/zsh-syntax-highlighting + +#### [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) + +1. Clone this repository in oh-my-zsh's plugins directory: + + ```zsh + git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting + ``` + +2. Activate the plugin in `~/.zshrc`: + + ```zsh + plugins=( [plugins...] zsh-syntax-highlighting) + ``` + +3. Restart zsh (such as by opening a new instance of your terminal emulator). + +#### [Prezto](https://github.com/sorin-ionescu/prezto) + +Zsh-syntax-highlighting is included with Prezto. See the +[Prezto documentation][prezto-docs] to enable and configure highlighters. + +[prezto-docs]: https://github.com/sorin-ionescu/prezto/tree/master/modules/syntax-highlighting + +#### [zgen](https://github.com/tarjoilija/zgen) + +Add `zgen load zsh-users/zsh-syntax-highlighting` to the end of your `.zshrc`. + +#### [zinit](https://github.com/zdharma-continuum/zinit) + +Add `zinit light zsh-users/zsh-syntax-highlighting` to the end of your +`.zshrc`. + +#### [zplug](https://github.com/zplug/zplug) + +Add `zplug "zsh-users/zsh-syntax-highlighting", defer:2` to your `.zshrc`. + + +### System-wide installation + +Any of the above methods is suitable for a single-user installation, +which requires no special privileges. If, however, you desire to install +zsh-syntax-highlighting system-wide, you may do so by running + +```zsh +make install +``` + +and directing your users to add + +```zsh +source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +``` + +to their `.zshrc`s. diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/Makefile b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/Makefile new file mode 100644 index 00000000..bbc1d439 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/Makefile @@ -0,0 +1,64 @@ +NAME=zsh-syntax-highlighting + +INSTALL?=install -c +PREFIX?=/usr/local +SHARE_DIR?=$(DESTDIR)$(PREFIX)/share/$(NAME) +DOC_DIR?=$(DESTDIR)$(PREFIX)/share/doc/$(NAME) +ZSH?=zsh # zsh binary to run tests with + +all: + cd docs && \ + cp highlighters.md all.md && \ + printf '\n\nIndividual highlighters documentation\n=====================================' >> all.md && \ + for doc in highlighters/*.md; do printf '\n\n'; cat "$$doc"; done >> all.md + +install: all + $(INSTALL) -d $(SHARE_DIR) + $(INSTALL) -d $(DOC_DIR) + cp .version zsh-syntax-highlighting.zsh $(SHARE_DIR) + cp COPYING.md README.md changelog.md $(DOC_DIR) + sed -e '1s/ .*//' -e '/^\[build-status-[a-z]*\]: /d' < README.md > $(DOC_DIR)/README.md + if [ x"true" = x"`git rev-parse --is-inside-work-tree 2>/dev/null`" ]; then \ + git rev-parse HEAD; \ + else \ + cat .revision-hash; \ + fi > $(SHARE_DIR)/.revision-hash + : +# The [ -e ] check below is to because sh evaluates this with (the moral +# equivalent of) NONOMATCH in effect, and highlighters/*.zsh has no matches. + for dirname in highlighters highlighters/*/ ; do \ + $(INSTALL) -d $(SHARE_DIR)/"$$dirname"; \ + for fname in "$$dirname"/*.zsh ; do [ -e "$$fname" ] && cp "$$fname" $(SHARE_DIR)"/$$dirname"; done; \ + done + cp -R docs/* $(DOC_DIR) + +clean: + rm -f docs/all.md + +test: + @$(ZSH) -fc 'echo ZSH_PATCHLEVEL=$$ZSH_PATCHLEVEL' + @result=0; \ + for test in highlighters/*; do \ + if [ -d $$test/test-data ]; then \ + echo "Running test $${test##*/}"; \ + env -i QUIET=$$QUIET $${TERM:+"TERM=$$TERM"} $(ZSH) -f tests/test-highlighting.zsh "$${test##*/}"; \ + : $$(( result |= $$? )); \ + fi \ + done; \ + exit $$result + +quiet-test: + $(MAKE) test QUIET=y + +perf: + @result=0; \ + for test in highlighters/*; do \ + if [ -d $$test/test-data ]; then \ + echo "Running test $${test##*/}"; \ + $(ZSH) -f tests/test-perfs.zsh "$${test##*/}"; \ + : $$(( result |= $$? )); \ + fi \ + done; \ + exit $$result + +.PHONY: all install clean test perf diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/README.md new file mode 100644 index 00000000..4768b3dd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/README.md @@ -0,0 +1,97 @@ +zsh-syntax-highlighting [![Build Status][build-status-image]][build-status] +======================= + +**[Fish shell][fish]-like syntax highlighting for [Zsh][zsh].** + +*Requirements: zsh 4.3.11+.* + +[fish]: https://fishshell.com/ +[zsh]: https://www.zsh.org/ + +This package provides syntax highlighting for the shell zsh. It enables +highlighting of commands whilst they are typed at a zsh prompt into an +interactive terminal. This helps in reviewing commands before running +them, particularly in catching syntax errors. + +Some examples: + +Before: [![Screenshot #1.1](images/before1-smaller.png)](images/before1.png) +
    +After:  [![Screenshot #1.2](images/after1-smaller.png)](images/after1.png) + +Before: [![Screenshot #2.1](images/before2-smaller.png)](images/before2.png) +
    +After:  [![Screenshot #2.2](images/after2-smaller.png)](images/after2.png) + +Before: [![Screenshot #3.1](images/before3-smaller.png)](images/before3.png) +
    +After:  [![Screenshot #3.2](images/after3-smaller.png)](images/after3.png) + +Before: [![Screenshot #4.1](images/before4-smaller.png)](images/before4-smaller.png) +
    +After:  [![Screenshot #4.2](images/after4-smaller.png)](images/after4-smaller.png) + + + +How to install +-------------- + +See [INSTALL.md](INSTALL.md). + + +FAQ +--- + +### Why must `zsh-syntax-highlighting.zsh` be sourced at the end of the `.zshrc` file? + +zsh-syntax-highlighting works by hooking into the Zsh Line Editor (ZLE) and +computing syntax highlighting for the command-line buffer as it stands at the +time z-sy-h's hook is invoked. + +In zsh 5.2 and older, +`zsh-syntax-highlighting.zsh` hooks into ZLE by wrapping ZLE widgets. It must +be sourced after all custom widgets have been created (i.e., after all `zle -N` +calls and after running `compinit`) in order to be able to wrap all of them. +Widgets created after z-sy-h is sourced will work, but will not update the +syntax highlighting. + +In zsh newer than 5.8 (not including 5.8 itself), +zsh-syntax-highlighting uses the `add-zle-hook-widget` facility to install +a `zle-line-pre-redraw` hook. Hooks are run in order of registration, +therefore, z-sy-h must be sourced (and register its hook) after anything else +that adds hooks that modify the command-line buffer. + +### Does syntax highlighting work during incremental history search? + +Highlighting the command line during an incremental history search (by default bound to +to Ctrl+R in zsh's emacs keymap) requires zsh 5.4 or newer. + +Under zsh versions older than 5.4, the zsh-default [underlining][zshzle-Character-Highlighting] +of the matched portion of the buffer remains available, but zsh-syntax-highlighting's +additional highlighting is unavailable. (Those versions of zsh do not provide +enough information to allow computing the highlighting correctly.) + +See issues [#288][i288] and [#415][i415] for details. + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting +[i288]: https://github.com/zsh-users/zsh-syntax-highlighting/pull/288 +[i415]: https://github.com/zsh-users/zsh-syntax-highlighting/pull/415 + +### How are new releases announced? + +There is currently no "push" announcements channel. However, the following +alternatives exist: + +- GitHub's RSS feed of releases: https://github.com/zsh-users/zsh-syntax-highlighting/releases.atom +- An anitya entry: https://release-monitoring.org/project/7552/ + + +How to tweak +------------ + +Syntax highlighting is done by pluggable highlighter scripts. See the +[documentation on highlighters](docs/highlighters.md) for details and +configuration settings. + +[build-status]: https://github.com/zsh-users/zsh-syntax-highlighting/actions +[build-status-image]: https://github.com/zsh-users/zsh-syntax-highlighting/workflows/Tests/badge.svg diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/changelog.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/changelog.md new file mode 100644 index 00000000..8ee50889 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/changelog.md @@ -0,0 +1,920 @@ +# Changes in HEAD + + +- Highlight `&>` `>&|` `>&!` `&>|` and `&>!` as redirection. + [#942] + + +# Changes in 0.8.0 + +This is a stable bugfix and feature release. Major new features and changes include: + + +## Changes fixed as part of the switch to zle-line-pre-redraw + +The changes in this section were fixed by switching to a `zle-line-pre-redraw`-based +implementation. + +Note: The new implementation will only be used on future zsh releases, +numbered 5.8.1.1 and newer, due to interoperability issues with other plugins +(issues #418 and #579). The underlying zsh feature has been available since +zsh 5.3. + +Whilst under development, the new implementation was known as the +"feature/redrawhook" topic branch. + +- Fixed: Highlighting not triggered after popping a buffer from the buffer stack + (using the `push-line` widget, default binding: `M-q`) + [#40] + +- Fixed: Invoking completion when there were no matches removed highlighting + [#90, #470] + +- Fixed: Two successive deletes followed by a yank only yanked the latest + delete, rather than both of them + [#150, #151, #160; cf. #183] + +- Presumed fixed: Completing `$(xsel)` results in an error message from `xsel`, + with pre-2017 versions of `xsel`. (For 2017 vintage and newer, see the issue + for details.) + [#154] + +- Fixed: When the standard `bracketed-paste-magic` widget is in use, pastes were slow + [#295] + +- Fixed: No way to prevent a widget from being wrapped + [#324] + +- Fixed: No highlighting while cycling menu completion + [#375] + +- Fixed: Does not coexist with the `IGNORE_EOF` option + [#377] + +- Fixed: The `undefined-key` widget was wrapped + [#421] + +- Fixed: Does not coexist with the standard `surround` family of widgets + [#520] + +- Fixed: First completed filename doesn't get `path` highlighting + [#632] + + +## Other changes + +- Add issue #712 to the previous release's changelog (hereinafter). + +- Fix highlighting when using an alias twice inside another alias + [#769, #775] + +- Remove lint warning for `env` followed by a pipe + [#797] + +- Recognize `proxychains` as a precommand + [#814, #914] + +- Honor shwordsplit when expanding parameters + [#687, #818] + +- Skip highlighting when keys are still pending in more cases + [#835] + +- Recognize `grc` as a precommand + +- Recognize `torsocks` and `torift` as precommands + [#898] + +- Recognize `cpulimit` as a precommand + [#897] + +- Recognize `ktrace` as a precommand + + +# Changes in 0.8.0-alpha1-pre-redrawhook + +## Notice about an improbable-but-not-impossible forward incompatibility + +Everyone can probably skip this section. + +The `master` branch of zsh-syntax-highlighting uses a zsh feature that has not +yet appeared in a zsh release: the `memo=` feature, added to zsh in commit +zsh-5.8-172-gdd6e702ee (after zsh 5.8, before zsh 5.9). In the unlikely event +that this zsh feature should change in an incompatible way before the next +stable zsh release, set `zsh_highlight__memo_feature=0` in your .zshrc files to +disable use of the new feature. + +z-sy-h dogfoods the new, unreleased zsh feature because that feature was +added to zsh at z-sy-h's initiative. The new feature is used in the fix +to issue #418. + + +## Incompatible changes: + +- An unsuccessful completion (a ⮀ Tab press that doesn't change the + command line) no longer causes highlighting to be lost. Visual feedback can + alternatively be achieved by setting the `format` zstyle under the `warnings` + tag, for example, + + zstyle ':completion:*:warnings' format '%F{red}No matches%f' + + Refer to the [description of the `format` style in `zshcompsys(1)`] + [zshcompsys-Standard-Styles-format]. + + (#90, part of #245 (feature/redrawhook)) + +[zshcompsys-Standard-Styles]: https://zsh.sourceforge.io/Doc/Release/Completion-System.html#Standard-Styles +[zshcompsys-Standard-Styles-format]: https://zsh.sourceforge.io/Doc/Release/Completion-System.html#index-format_002c-completion-style + + + +## Other changes: + +- Document `$ZSH_HIGHLIGHT_MAXLENGTH`. + [#698] + +- Optimize highlighting unquoted words (words that are not in single quotes, double quotes, backticks, or dollar-single-quotes) + [#730] + +- Redirection operators (e.g., `<` and `>`) are now highlighted by default + [#646] + +- Propertly terminate `noglob` scope in try/always blocks + [#577] + +- Don't error out when `KSH_ARRAYS` is set in the calling scope + [#622, #689] + +- Literal semicolons in array assignments (`foo=( bar ; baz )`) are now + highlighted as errors. + [3ca93f864fb6] + +- Command separators in array assignments (`foo=( bar | baz )`) are now + highlighted as errors. + [#651, 81267ca3130c] + +- Support parameter elision in command position (e.g., `$foo ls` where `$foo` is unset or empty) + [#667] + +- Don't consider the filename in `sudo -e /path/to/file` to be a command position + [#678] + +- Don't look up absolute directory names in $cdpath + [2cc2583f8f12, part of #669] + +- Fix `exec 2>&1;` being highlighted as an error. + [#676] + +- Fix `: $(<*)` being highlighted as globbing. + [#582] + +- Fix `cat < *` being highlighting as globbing when the `MULTIOS` option is unset. + [#583] + +- Fix `echo >&2` highlighting the `2` as a filename if a file by that name happened to exist + [#694, part of #645] + +- Fix `echo >&-` highlighting the `-` as a filename if a file by that name happened to exist + [part of #645] + +- Fix `echo >&p` highlighting the `p` as a filename if a file by that name happened to exist + [part of #645] + +- Fix wrong highlighting of unquoted parameter expansions under zsh 5.2 and older + [e165f18c758e] + +- Highlight global aliases + [#700] + +- Highlight `: =nosuchcommand' as an error (when the `EQUALS` option hasn't been unset). + [#430] + +- Highlight reserved word after assignments as errors (e.g., `foo=bar (ls;)`) + [#461] + +- Correctly highlight `[[ foo && bar || baz ]]`. + +- Highlight non-executable files in command position correctly (e.g., `% /etc/passwd`) + [#202, #669] + +- Highlight directories in command position correctly, including `AUTO_CD` support + [#669] + +- Recognize `env` as a precommand (e.g., `env FOO=bar ls`) + +- Recognize `ionice` as a precommand + +- Recognize `strace` as a precommand + +- Fix an error message on stderr before every prompt when the `WARN_NESTED_VAR` zsh option is set: + `_zsh_highlight_main__precmd_hook:1: array parameter _zsh_highlight_main__command_type_cache set in enclosing scope in function _zsh_highlight_main__precmd_hook` + [#727, #731, #732, #733] + +- Fix highlighting of alias whose definitions use a simple command terminator + (such as `;`, `|`, `&&`) before a newline + [#677; had regressed in 0.7.0] + +- Highlight arithmetic expansions (e.g., `$(( 42 ))`) + [#607 #649 #704] + +- Highlight the parentheses of array assignments as reserved words (`foo=( bar )`). + The `assign` style remains supported and has precedence. + [#585] + +- Fix interoperability issue with other plugins that use highlighting. The fix + requires zsh 5.8.0.3 or newer. (zsh 5.8.0.2-dev from the `master` branch, + revision zsh-5.8-172-gdd6e702ee or newer is also fine.) + [#418, https://github.com/okapia/zsh-viexchange/issues/1] + +- Improve performance of the `brackets` highlighter. + +- Fix highlighting of pre-command redirections (e.g., the `$fn` in `<$fn cat`) + [#712] + + +# Changes in version 0.7.1 + +- Remove out-of-date information from the 0.7.0 changelog. + + +# Changes in version 0.7.0 + +This is a stable bugfix and feature release. Major new features and changes include: + +- Add `ZSH_HIGHLIGHT_DIRS_BLACKLIST` to disable "path" and "path prefix" + highlighting for specific directories + [#379] + +- Add the "regexp" highlighter, modelled after the pattern highlighter + [4e6f60063f1c] + +- When a word uses globbing, only the globbing metacharacters will be highlighted as globbing: + in `: foo*bar`, only the `*` will be blue. + [e48af357532c] + +- Highlight pasted quotes (e.g., `: foo"bar"`) + [dc1b2f6fa4bb] + +- Highlight command substitutions (`` : `ls` ``, `: $(ls)`) + [c0e64fe13178 and parents, e86f75a840e7, et al] + +- Highlight process substitutions (`: >(nl)`, `: <(pwd)`, `: =(git diff)`) + [c0e64fe13178 and parents, e86f75a840e7, et al] + +- Highlight command substitutions inside double quotes (``: "`foo`"``) + [f16e858f0c83] + +- Highlight many precommands (e.g., `nice`, `stdbuf`, `eatmydata`; + see `$precommand_options` in the source) + +- Highlight numeric globs (e.g., `echo /lib<->`) + +- Assorted improvements to aliases highlighting + (e.g., + `alias sudo_u='sudo -u'; sudo_u jrandom ls`, + `alias x=y y=z z=nosuchcommand; x`, + `alias ls='ls -l'; \ls`) + [f3410c5862fc, 57386f30aec8, #544, and many others] + +- Highlight some more syntax errors + [dea05e44e671, 298ef6a2fa30] + +- New styles: named file descriptors, `RC_QUOTES`, and unclosed quotes (e.g., `echo "foo`) + [38c794a978cd, 25ae1c01216c, 967335dfc5fd] + +- The 'brackets' highlighting no longer treats quotes specially. + [ecdda36ef56f] + + +Selected bugfixes include: + +- Highlight `sudo` correctly when it's not installed + [26a82113b08b] + +- Handle some non-default options being set in zshrc + [b07ada1255b7, a2a899b41b8, 972ad197c13d, b3f66fc8748f] + +- Fix off-by-one highlighting in vi "visual" mode (vicmd keymap) + [be3882aeb054] + +- The 'yank-pop' widget is not wrapped + [#183] + + +Known issues include: + +- A multiline alias that uses a simple command terminator (such as `;`, `|`, `&&`) + before a newline will incorrectly be highlighted as an error. See issue #677 + for examples and workarounds. + [#677] + [UPDATE: Fixed in 0.8.0] + + +# Changes in version 0.6.0 + +This is a stable release, featuring bugfixes and minor improvements. + + +## Performance improvements: + +(none) + + +## Added highlighting of: + +- The `isearch` and `suffix` [`$zle_highlight` settings][zshzle-Character-Highlighting]. + (79e4d3d12405, 15db71abd0cc, b56ee542d619; requires zsh 5.3 for `$ISEARCHMATCH_ACTIVE` / `$SUFFIX_ACTIVE` support) + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting + +- Possible history expansions in double-quoted strings. + (76ea9e1df316) + +- Mismatched `if`/`then`/`elif`/`else`/`fi`. + (73cb83270262) + + +## Fixed highlighting of: + +- A comment line followed by a non-comment line. + (#385, 9396ad5c5f9c) + +- An unquoted `$*` (expands to the positional parameters). + (237f89ad629f) + +- history-incremental-pattern-search-backward under zsh 5.3.1. + (#407, #415, 462779629a0c) + + +## API changes (for highlighter authors): + +(none) + + +## Developer-visible changes: + +- tests: Set the `ALIAS_FUNC_DEF` option for zsh 5.4 compatibility. + (9523d6d49cb3) + + +## Other changes: + +- docs: Added before/after screenshots. + (cd9ec14a65ec..b7e277106b49) + +- docs: Link Fedora package. + (3d74aa47e4a7, 5feed23962df) + +- docs: Link FreeBSD port. + (626c034c68d7) + +- docs: Link OpenSUSE Build Service packages + (#419, dea1fedc7358) + +- Prevent user-defined aliases from taking effect in z-sy-h's own code. + (#390, 2dce602727d7, 8d5afe47f774; and #392, #395, b8fa1b9dc954) + +- docs: Update zplug installation instructions. + (#399, 4f49c4a35f17) + +- Improve "unhandled ZLE widget 'foo'" error message. + (#409, be083d7f3710) + +- Fix printing of "failed loading highlighters" error message. + (#426, ad522a091429) + + +# Changes in version 0.5.0 + + +## Performance improvements: + +We thank Sebastian Gniazdowski and "m0viefreak" for significant contributions +in this area. + +- Optimize string operations in the `main` (default) highlighter. + (#372/3cb58fd7d7b9, 02229ebd6328, ef4bfe5bcc14, #372/c6b6513ac0d6, #374/15461e7d21c3) + +- Command word highlighting: Use the `zsh/parameter` module to avoid forks. + Memoize (cache) the results. + (#298, 3ce01076b521, 2f18ba64e397, 12b879caf7a6; #320, 3b67e656bff5) + +- Avoid forks in the driver and in the `root` highlighter. + (b9112aec798a, 38c8fbea2dd2) + + +## Added highlighting of: + +- `pkexec` (a precommand). + (#248, 4f3910cbbaa5) + +- Aliases that cannot be defined normally nor invoked normally (highlighted as an error). + (#263 (in part), 28932316cca6) + +- Path separators (`/`) — the default behaviour remains to highlight path separators + and path components the same way. + (#136, #260, 6cd39e7c70d3, 9a934d291e7c, f3d3aaa00cc4) + +- Assignments to individual positional arguments (`42=foo` to assign to `$42`). + (f4036a09cee3) + +- Linewise region (the `visual-line-mode` widget, bound to `V` in zsh's `vi` keymap). + (#267, a7a7f8b42280, ee07588cfd9b) + +- Command-lines recalled by `isearch` mode; requires zsh≥5.3. + (#261 (in part); #257; 4ad311ec0a68) + +- Command-lines whilst the `IGNORE_BRACES` or `IGNORE_CLOSE_BRACES` option is in effect. + (a8a6384356af, 02807f1826a5) + +- Mismatched parentheses and braces (in the `main` highlighter). + (51b9d79c3bb6, 2fabf7ca64b7, a4196eda5e6f, and others) + +- Mismatched `do`/`done` keywords. + (b2733a64da93) + +- Mismatched `foreach`/`end` keywords. + (#96, 2bb8f0703d8f) + +- In Bourne-style function definitions, when the `MULTI_FUNC_DEF` option is set + (which is the default), highlight the first word in the function body as + a command word: `f() { g "$@" }`. + (6f91850a01e1) + +- `always` blocks. + (#335, e5782e4ddfb6) + +- Command substitutions inside double quotes, `"$(echo foo)"`. + (#139 (in part), c3913e0d8ead) + +- Non-alphabetic parameters inside double quotes (`"$$"`, `"$#"`, `"$*"`, `"$@"`, `"$?"`, `"$-"`). + (4afe670f7a1b, 44ef6e38e5a7) + +- Command words from future versions of zsh (forward compatibly). + This also adds an `arg0` style that all other command word styles fall back to. + (b4537a972eed, bccc3dc26943) + +- Escaped history expansions inside double quotes: `: "\!"` + (28d7056a7a06, et seq) + + +## Fixed highlighting of: + +- Command separator tokens in syntactically-invalid positions. + (09c4114eb980) + +- Redirections with a file descriptor number at command word. + (#238 (in part), 73ee7c1f6c4a) + +- The `select` prompt, `$PS3`. + (#268, 451665cb2a8b) + +- Values of variables in `vared`. + (e500ca246286) + +- `!` as an argument (neither a history expansion nor a reserved word). + (4c23a2fd1b90) + +- "division by zero" error under the `brackets` highlighter when `$ZSH_HIGHLIGHT_STYLES` is empty. + (f73f3d53d3a6) + +- Process substitutions, `<(pwd)` and `>(wc -l)`. + (#302, 6889ff6bd2ad, bfabffbf975c, fc9c892a3f15) + +- The non-`SHORT_LOOPS` form of `repeat` loops: `repeat 42; do true; done`. + (#290, 4832f18c50a5, ef68f50c048f, 6362c757b6f7) + +- Broken symlinks (are now highlighted as files). + (#342, 95f7206a9373, 53083da8215e) + +- Lines accepted from `isearch` mode. + (#284; #257, #259, #288; 5bae6219008b, a8fe22d42251) + +- Work around upstream bug that triggered when the command word was a relative + path, that when interpreted relative to a $PATH directory denoted a command; + the effect of that upstream bug was that the relative path was cached as + a "valid external command name". + (#354, #355, 51614ca2c994, fdaeec45146b, 7d38d07255e4; + upstream fix slated to be released in 5.3 (workers/39104)) + +- After accepting a line with the cursor on a bracket, the matching bracket + of the bracket under the cursor no longer remains highlighted (with the + `brackets` highlighter). + (4c4baede519a) + +- The first word on a new line within an array assignment or initialization is no + longer considered a command position. + (8bf423d16d46) + +- Subshells that end at command position, `(A=42)`, `(true;)`. + (#231, 7fb6f9979121; #344, 4fc35362ee5a) + +- Command word after array assignment, `a=(lorem ipsum) pwd`. + (#330, 7fb6f9979121) + + +## API changes (for highlighter authors): + +- New interface `_zsh_highlight_add_highlight`. + (341a3ae1f015, c346f6eb6fb6) + +- tests: Specify the style key, not its value, in test expectations. + (a830613467af, fd061b5730bf, eaa4335c3441, among others) + +- Module author documentation improvements. + (#306 (in part), 217669270418, 0ff354b44b6e, 80148f6c8402, 364f206a547f, and others) + +- The driver no longer defines a `_zsh_highlight_${highlighter}_highlighter_cache` + variable, which is in the highlighters' namespace. + (3e59ab41b6b8, 80148f6c8402, f91a7b885e7d) + +- Rename highlighter entry points. The old names remain supported for + backwards compatibility. + (a3d5dfcbdae9, c793e0dceab1) + +- tests: Add the "NONE" expectation. + (4da9889d1545, 13018f3dd735, d37c55c788cd) + +- tests: consider a test that writes to stderr to have failed. + (#291, 1082067f9315) + + +## Developer-visible changes: + +- Add `make quiet-test`. + (9b64ad750f35) + +- test harness: Better quote replaceables in error messages. + (30d8f92df225) + +- test harness: Fix exit code for XPASS. + (bb8d325c0cbd) + +- Create [HACKING.md](HACKING.md). + (cef49752fd0e) + +- tests: Emit a description for PASS test points. + (6aa57d60aa64, f0bae44b76dd) + +- tests: Create a script that generates a test file. + (8013dc3b8db6, et seq; `tests/generate.zsh`) + + +## Other changes: + +- Under zsh≤5.2, widgets whose names start with a `_` are no longer excluded + from highlighting. + (ed33d2cb1388; reverts part of 186d80054a40 which was for #65) + +- Under zsh≤5.2, widgets implemented by a function named after the widget are + no longer excluded from highlighting. + (487b122c480d; reverts part of 776453cb5b69) + +- Under zsh≤5.2, shell-unsafe widget names can now be wrapped. + (#278, 6a634fac9fb9, et seq) + +- Correct some test expectations. + (78290e043bc5) + +- `zsh-syntax-highlighting.plugin.zsh`: Convert from symlink to plain file + for msys2 compatibility. + (#292, d4f8edc9f3ad) + +- Document installation under some plugin managers. + (e635f766bef9, 9cab566f539b) + +- Don't leak the `PATH_DIRS` option. + (7b82b88a7166) + +- Don't require the `FUNCTION_ARGZERO` option to be set. + (#338, 750aebc553f2) + +- Under zsh≤5.2, support binding incomplete/nonexistent widgets. + (9e569bb0fe04, part of #288) + +- Make the driver reentrant, fixing possibility of infinite recursion + under zsh≤5.2 under interaction with theoretical third-party code. + (#305, d711563fe1bf, 295d62ec888d, f3242cbd6aba) + +- Fix warnings when `WARN_CREATE_GLOBAL` is set prior to sourcing zsh-syntax-highlighting. + (z-sy-h already sets `WARN_CREATE_GLOBAL` internally.) + (da60234fb236) + +- Warn only once, rather than once per keypress, when a highlighter is unavailable. + (0a9b347483ae) + + +# Changes in version 0.4.1 + +## Fixes: + +- Arguments to widgets were not properly dash-escaped. Only matters for widgets + that take arguments (i.e., that are invoked as `zle ${widget} -- ${args}`). + (282c7134e8ac, reverts c808d2187a73) + + +# Changes in version 0.4.0 + + +## Added highlighting of: + +- incomplete sudo commands + (a3047a912100, 2f05620b19ae) + + ```zsh + sudo; + sudo -u; + ``` + +- command words following reserved words + (#207, #222, b397b12ac139 et seq, 6fbd2aa9579b et seq, 8b4adbd991b0) + + ```zsh + if ls; then ls; else ls; fi + repeat 10 do ls; done + ``` + + (The `ls` are now highlighted as a command.) + +- comments (when `INTERACTIVE_COMMENTS` is set) + (#163, #167, 693de99a9030) + + ```zsh + echo Hello # comment + ``` + +- closing brackets of arithmetic expansion, subshells, and blocks + (#226, a59f442d2d34, et seq) + + ```zsh + (( foo )) + ( foo ) + { foo } + ``` + +- command names enabled by the `PATH_DIRS` option + (#228, 96ee5116b182) + + ```zsh + # When ~/bin/foo/bar exists, is executable, ~/bin is in $PATH, + # and 'setopt PATH_DIRS' is in effect + foo/bar + ``` + +- parameter expansions with braces inside double quotes + (#186, 6e3720f39d84) + + ```zsh + echo "${foo}" + ``` + +- parameter expansions in command word + (#101, 4fcfb15913a2) + + ```zsh + x=/bin/ls + $x -l + ``` + +- the command separators '\|&', '&!', '&\|' + + ```zsh + view file.pdf &! ls + ``` + + +## Fixed highlighting of: + +- precommand modifiers at non-command-word position + (#209, 2c9f8c8c95fa) + + ```zsh + ls command foo + ``` + +- sudo commands with infix redirections + (#221, be006aded590, 86e924970911) + + ```zsh + sudo -u >/tmp/foo.out user ls + ``` + +- subshells; anonymous functions + (#166, #194, 0d1bfbcbfa67, 9e178f9f3948) + + ```zsh + (true) + () { true } + ``` + +- parameter assignment statements with no command + (#205, 01d7eeb3c713) + + ```zsh + A=1; + ``` + + (The semicolon used to be highlighted as a mistake) + +- cursor highlighter: Remove the cursor highlighting when accepting a line. + (#109, 4f0c293fdef0) + + +## Removed features: + +- Removed highlighting of approximate paths (`path_approx`). + (#187, 98aee7f8b9a3) + + +## Other changes: + +- main highlighter refactored to use states rather than booleans. + (2080a441ac49, et seq) + +- Fix initialization when sourcing `zsh-syntax-highlighting.zsh` via a symlink + (083c47b00707) + +- docs: Add screenshot. + (57624bb9f64b) + +- widgets wrapping: Don't add '--' when invoking widgets. + (c808d2187a73) [_reverted in 0.4.1_] + +- Refresh highlighting upon `accept-*` widgets (`accept-line` et al). + (59fbdda64c21) + +- Stop leaking match/mbegin/mend to global scope (thanks to upstream + `WARN_CREATE_GLOBAL` improvements). + (d3deffbf46a4) + +- 'make install': Permit setting `$(SHARE_DIR)` from the environment. + (e1078a8b4cf1) + +- driver: Tolerate KSH_ARRAYS being set in the calling context. + (#162, 8f19af6b319d) + +- 'make install': Install documentation fully and properly. + (#219, b1619c001390, et seq) + +- docs: Improve 'main' highlighter's documentation. + (00de155063f5, 7d4252f5f596) + +- docs: Moved to a new docs/ tree; assorted minor updates + (c575f8f37567, 5b34c23cfad5, et seq) + +- docs: Split README.md into INSTALL.md + (0b3183f6cb9a) + +- driver: Report `$ZSH_HIGHLIGHT_REVISION` when running from git + (84734ba95026) + + +## Developer-visible changes: + +- Test harness converted to [TAP](https://testanything.org/tap-specification.html) format + (d99aa58aaaef, et seq) + +- Run each test in a separate subprocess, isolating them from each other + (d99aa58aaaef, et seq) + +- Fix test failure with nonexisting $HOME + (#216, b2ac98b98150) + +- Test output is now colorized. + (4d3da30f8b72, 6fe07c096109) + +- Document `make install` + (a18a7427fd2c) + +- tests: Allow specifying the zsh binary to use. + (557bb7e0c6a0) + +- tests: Add 'make perf' target + (4513eaea71d7) + +- tests: Run each test in a sandbox directory + (c01533920245) + + +# Changes in version 0.3.0 + + +## Added highlighting of: + +- suffix aliases (requires zsh 5.1.1 or newer): + + ```zsh + alias -s png=display + foo.png + ``` + +- prefix redirections: + + ```zsh + foo.txt + ``` + +- arithmetic evaluations: + + ```zsh + (( 42 )) + ``` + +- $'' strings, including \x/\octal/\u/\U escapes + + ```zsh + : $'foo\u0040bar' + ``` + +- multiline strings: + + ```zsh + % echo "line 1 + line 2" + ``` + +- string literals that haven't been finished: + + ```zsh + % echo "Hello, world + ``` +- command words that involve tilde expansion: + + ```zsh + % ~/bin/foo + ``` + +## Fixed highlighting of: + +- quoted command words: + + ```zsh + % \ls + ``` + +- backslash escapes in "" strings: + + ```zsh + % echo "\x41" + ``` + +- noglob after command separator: + + ```zsh + % :; noglob echo * + ``` + +- glob after command separator, when the first command starts with 'noglob': + + ```zsh + % noglob true; echo * + ``` + +- the region (vi visual mode / set-mark-command) (issue #165) + +- redirection and command separators that would be highlighted as `path_approx` + + ```zsh + % echo foo;‸ + % echo <‸ + ``` + + (where `‸` represents the cursor location) + +- escaped globbing (outside quotes) + + ```zsh + % echo \* + ``` + + +## Other changes: + +- implemented compatibility with zsh's paste highlighting (issue #175) + +- `$?` propagated correctly to wrapped widgets + +- don't leak $REPLY into global scope + + +## Developer-visible changes: + +- added makefile with `install` and `test` targets + +- set `warn_create_global` internally + +- document release process + + + + +# Version 0.2.1 + +(Start of changelog.) + diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters.md new file mode 100644 index 00000000..fb64c3af --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters.md @@ -0,0 +1,132 @@ +zsh-syntax-highlighting / highlighters +====================================== + +Syntax highlighting is done by pluggable highlighters: + +* `main` - the base highlighter, and the only one [active by default][main]. +* `brackets` - [matches brackets][brackets] and parenthesis. +* `pattern` - matches [user-defined patterns][pattern]. +* `regexp` - matches [user-defined regular expressions][regexp]. +* `cursor` - matches [the cursor position][cursor]. +* `root` - highlights the whole command line [if the current user is root][root]. +* `line` - applied to [the whole command line][line]. + +[main]: highlighters/main.md +[brackets]: highlighters/brackets.md +[pattern]: highlighters/pattern.md +[regexp]: highlighters/regexp.md +[cursor]: highlighters/cursor.md +[root]: highlighters/root.md +[line]: highlighters/line.md + + +Highlighter-independent settings +-------------------------------- + +By default, all command lines are highlighted. However, it is possible to +prevent command lines longer than a fixed number of characters from being +highlighted by setting the variable `${ZSH_HIGHLIGHT_MAXLENGTH}` to the maximum +length (in characters) of command lines to be highlighter. This is useful when +editing very long command lines (for example, with the [`fned`][fned] utility +function). Example: + +[fned]: https://zsh.sourceforge.io/Doc/Release/User-Contributions.html#index-zed + +```zsh +ZSH_HIGHLIGHT_MAXLENGTH=512 +``` + + +How to activate highlighters +---------------------------- + +To activate an highlighter, add it to the `ZSH_HIGHLIGHT_HIGHLIGHTERS` array. +By default `ZSH_HIGHLIGHT_HIGHLIGHTERS` is `(main)`. For example to activate +`brackets`, `pattern`, and `cursor` highlighters, in `~/.zshrc` do: + +```zsh +ZSH_HIGHLIGHT_HIGHLIGHTERS+=(brackets pattern cursor) +``` + + +How to tweak highlighters +------------------------- + +Highlighters look up styles from the `ZSH_HIGHLIGHT_STYLES` associative array. +Navigate into the [individual highlighters' documentation](highlighters/) to +see what styles (keys) each highlighter defines; the syntax for values is the +same as the syntax of "types of highlighting" of the zsh builtin +`$zle_highlight` array, which is documented in [the `zshzle(1)` manual +page][zshzle-Character-Highlighting]. + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting + +Some highlighters support additional configuration parameters; see each +highlighter's documentation for details and examples. + + +How to implement a new highlighter +---------------------------------- + +To create your own `acme` highlighter: + +* Create your script at + `highlighters/acme/acme-highlighter.zsh`. + +* Implement the `_zsh_highlight_highlighter_acme_predicate` function. + This function must return 0 when the highlighter needs to be called and + non-zero otherwise, for example: + + ```zsh + _zsh_highlight_highlighter_acme_predicate() { + # Call this highlighter in SVN working copies + [[ -d .svn ]] + } + ``` + +* Implement the `_zsh_highlight_highlighter_acme_paint` function. + This function does the actual syntax highlighting, by calling + `_zsh_highlight_add_highlight` with the start and end of the region to + be highlighted and the `ZSH_HIGHLIGHT_STYLES` key to use. Define the default + style for that key in the highlighter script outside of any function with + `: ${ZSH_HIGHLIGHT_STYLES[key]:=value}`, being sure to prefix + the key with your highlighter name and a colon. For example: + + ```zsh + : ${ZSH_HIGHLIGHT_STYLES[acme:aurora]:=fg=green} + + _zsh_highlight_highlighter_acme_paint() { + # Colorize the whole buffer with the 'aurora' style + _zsh_highlight_add_highlight 0 $#BUFFER acme:aurora + } + ``` + + If you need to test which options the user has set, test `zsyh_user_options` + with a sensible default if the option is not present in supported zsh + versions. For example: + + ```zsh + [[ ${zsyh_user_options[ignoreclosebraces]:-off} == on ]] + ``` + + The option name must be all lowercase with no underscores and not an alias. + +* Name your own functions and global variables `_zsh_highlight_acme_*`. + + - In zsh-syntax-highlighting 0.4.0 and earlier, the entrypoints + `_zsh_highlight_highlighter_acme_predicate` and + `_zsh_highlight_highlighter_acme_paint` + were named + `_zsh_highlight_acme_highlighter_predicate` and + `_zsh_highlight_highlighter_acme_paint` respectively. + + These names are still supported for backwards compatibility; + however, support for them will be removed in a future major or minor release (v0.x.0 or v1.0.0). + +* Activate your highlighter in `~/.zshrc`: + + ```zsh + ZSH_HIGHLIGHT_HIGHLIGHTERS+=(acme) + ``` + +* [Write tests](../tests/README.md). diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/brackets.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/brackets.md new file mode 100644 index 00000000..0101699e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/brackets.md @@ -0,0 +1,31 @@ +zsh-syntax-highlighting / highlighters / brackets +------------------------------------------------- + +This is the `brackets` highlighter, that highlights brackets and parentheses, and +matches them. + + +### How to tweak it + +This highlighter defines the following styles: + +* `bracket-error` - unmatched brackets +* `bracket-level-N` - brackets with nest level N +* `cursor-matchingbracket` - the matching bracket, if cursor is on a bracket + +To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, +for example in `~/.zshrc`: + +```zsh +# To define styles for nested brackets up to level 4 +ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold' +ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold' +ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold' +ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,bold' +``` + +The syntax for values is the same as the syntax of "types of highlighting" of +the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)` +manual page][zshzle-Character-Highlighting]. + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/cursor.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/cursor.md new file mode 100644 index 00000000..3f87d422 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/cursor.md @@ -0,0 +1,24 @@ +zsh-syntax-highlighting / highlighters / cursor +----------------------------------------------- + +This is the `cursor` highlighter, that highlights the cursor. + + +### How to tweak it + +This highlighter defines the following styles: + +* `cursor` - the style for the current cursor position + +To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, +for example in `~/.zshrc`: + +```zsh +ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue' +``` + +The syntax for values is the same as the syntax of "types of highlighting" of +the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)` +manual page][zshzle-Character-Highlighting]. + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/line.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/line.md new file mode 100644 index 00000000..f76639ee --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/line.md @@ -0,0 +1,24 @@ +zsh-syntax-highlighting / highlighters / line +--------------------------------------------- + +This is the `line` highlighter, that highlights the whole line. + + +### How to tweak it + +This highlighter defines the following styles: + +* `line` - the style for the whole line + +To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, +for example in `~/.zshrc`: + +```zsh +ZSH_HIGHLIGHT_STYLES[line]='bold' +``` + +The syntax for values is the same as the syntax of "types of highlighting" of +the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)` +manual page][zshzle-Character-Highlighting]. + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/main.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/main.md new file mode 100644 index 00000000..4a27653f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/main.md @@ -0,0 +1,121 @@ +zsh-syntax-highlighting / highlighters / main +--------------------------------------------- + +This is the `main` highlighter, that highlights: + +* Commands +* Options +* Arguments +* Paths +* Strings + +This highlighter is active by default. + + +### How to tweak it + +This highlighter defines the following styles: + +* `unknown-token` - unknown tokens / errors +* `reserved-word` - shell reserved words (`if`, `for`) +* `alias` - aliases +* `suffix-alias` - suffix aliases (requires zsh 5.1.1 or newer) +* `global-alias` - global aliases +* `builtin` - shell builtin commands (`shift`, `pwd`, `zstyle`) +* `function` - function names +* `command` - command names +* `precommand` - precommand modifiers (e.g., `noglob`, `builtin`) +* `commandseparator` - command separation tokens (`;`, `&&`) +* `hashed-command` - hashed commands +* `autodirectory` - a directory name in command position when the `AUTO_CD` option is set +* `path` - existing filenames +* `path_pathseparator` - path separators in filenames (`/`); if unset, `path` is used (default) +* `path_prefix` - prefixes of existing filenames +* `path_prefix_pathseparator` - path separators in prefixes of existing filenames (`/`); if unset, `path_prefix` is used (default) +* `globbing` - globbing expressions (`*.txt`) +* `history-expansion` - history expansion expressions (`!foo` and `^foo^bar`) +* `command-substitution` - command substitutions (`$(echo foo)`) +* `command-substitution-unquoted` - an unquoted command substitution (`$(echo foo)`) +* `command-substitution-quoted` - a quoted command substitution (`"$(echo foo)"`) +* `command-substitution-delimiter` - command substitution delimiters (`$(` and `)`) +* `command-substitution-delimiter-unquoted` - an unquoted command substitution delimiters (`$(` and `)`) +* `command-substitution-delimiter-quoted` - a quoted command substitution delimiters (`"$(` and `)"`) +* `process-substitution` - process substitutions (`<(echo foo)`) +* `process-substitution-delimiter` - process substitution delimiters (`<(` and `)`) +* `arithmetic-expansion` - arithmetic expansion `$(( 42 ))`) +* `single-hyphen-option` - single-hyphen options (`-o`) +* `double-hyphen-option` - double-hyphen options (`--option`) +* `back-quoted-argument` - backtick command substitution (`` `foo` ``) +* `back-quoted-argument-unclosed` - unclosed backtick command substitution (`` `foo ``) +* `back-quoted-argument-delimiter` - backtick command substitution delimiters (`` ` ``) +* `single-quoted-argument` - single-quoted arguments (`` 'foo' ``) +* `single-quoted-argument-unclosed` - unclosed single-quoted arguments (`` 'foo ``) +* `double-quoted-argument` - double-quoted arguments (`` "foo" ``) +* `double-quoted-argument-unclosed` - unclosed double-quoted arguments (`` "foo ``) +* `dollar-quoted-argument` - dollar-quoted arguments (`` $'foo' ``) +* `dollar-quoted-argument-unclosed` - unclosed dollar-quoted arguments (`` $'foo ``) +* `rc-quote` - two single quotes inside single quotes when the `RC_QUOTES` option is set (`` 'foo''bar' ``) +* `dollar-double-quoted-argument` - parameter expansion inside double quotes (`$foo` inside `""`) +* `back-double-quoted-argument` - backslash escape sequences inside double-quoted arguments (`\"` in `"foo\"bar"`) +* `back-dollar-quoted-argument` - backslash escape sequences inside dollar-quoted arguments (`\x` in `$'\x48'`) +* `assign` - parameter assignments (`x=foo` and `x=( )`) +* `redirection` - redirection operators (`<`, `>`, etc) +* `comment` - comments, when `setopt INTERACTIVE_COMMENTS` is in effect (`echo # foo`) +* `comment` - elided parameters in command position (`$x ls` when `$x` is unset or empty) +* `named-fd` - named file descriptor (the `fd` in `echo foo {fd}>&2`) +* `numeric-fd` - numeric file descriptor (the `2` in `echo foo {fd}>&2`) +* `arg0` - a command word other than one of those enumerated above (other than a command, precommand, alias, function, or shell builtin command). +* `default` - everything else + +To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, +for example in `~/.zshrc`: + +```zsh +# Declare the variable +typeset -A ZSH_HIGHLIGHT_STYLES + +# To differentiate aliases from other command types +ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold' + +# To have paths colored instead of underlined +ZSH_HIGHLIGHT_STYLES[path]='fg=cyan' + +# To disable highlighting of globbing expressions +ZSH_HIGHLIGHT_STYLES[globbing]='none' +``` + +The syntax for values is the same as the syntax of "types of highlighting" of +the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)` +manual page][zshzle-Character-Highlighting]. + +#### Parameters + +To avoid partial path lookups on a path, add the path to the `ZSH_HIGHLIGHT_DIRS_BLACKLIST` array. + +```zsh +ZSH_HIGHLIGHT_DIRS_BLACKLIST+=(/mnt/slow_share) +``` + +### Useless trivia + +#### Forward compatibility. + +zsh-syntax-highlighting attempts to be forward-compatible with zsh. +Specifically, we attempt to facilitate highlighting _command word_ types that +had not yet been invented when this version of zsh-syntax-highlighting was +released. + +A _command word_ is something like a function name, external command name, et +cetera. (See +[Simple Commands & Pipelines in `zshmisc(1)`][zshmisc-Simple-Commands-And-Pipelines] +for a formal definition.) + +If a new _kind_ of command word is ever added to zsh — something conceptually +different than "function" and "alias" and "external command" — then command words +of that (new) kind will be highlighted by the style `arg0_$kind`, +where `$kind` is the output of `type -w` on the new kind of command word. If that +style is not defined, then the style `arg0` will be used instead. + +[zshmisc-Simple-Commands-And-Pipelines]: https://zsh.sourceforge.io/Doc/Release/Shell-Grammar.html#Simple-Commands-_0026-Pipelines + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/pattern.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/pattern.md new file mode 100644 index 00000000..ecaa6a7f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/pattern.md @@ -0,0 +1,24 @@ +zsh-syntax-highlighting / highlighters / pattern +------------------------------------------------ + +This is the `pattern` highlighter, that highlights user-defined patterns. + + +### How to tweak it + +To use this highlighter, associate patterns with styles in the +`ZSH_HIGHLIGHT_PATTERNS` associative array, for example in `~/.zshrc`: + +```zsh +# Declare the variable +typeset -A ZSH_HIGHLIGHT_PATTERNS + +# To have commands starting with `rm -rf` in red: +ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') +``` + +The syntax for values is the same as the syntax of "types of highlighting" of +the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)` +manual page][zshzle-Character-Highlighting]. + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/regexp.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/regexp.md new file mode 100644 index 00000000..8c711a3c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/regexp.md @@ -0,0 +1,65 @@ +zsh-syntax-highlighting / highlighters / regexp +------------------------------------------------ + +This is the `regexp` highlighter, that highlights user-defined regular +expressions. It's similar to the `pattern` highlighter, but allows more complex +patterns. + +### How to tweak it + +To use this highlighter, associate regular expressions with styles in the +`ZSH_HIGHLIGHT_REGEXP` associative array, for example in `~/.zshrc`: + +```zsh +typeset -A ZSH_HIGHLIGHT_REGEXP +ZSH_HIGHLIGHT_REGEXP+=('^rm .*' fg=red,bold) +``` + +This will highlight lines that start with a call to the `rm` command. + +The regular expressions flavour used is [PCRE][pcresyntax] when the +`RE_MATCH_PCRE` option is set and POSIX Extended Regular Expressions (ERE), +as implemented by the platform's C library, otherwise. For details on the +latter, see [the `zsh/regex` module's documentation][MAN_ZSH_REGEX] and the +`regcomp(3)` and `re_format(7)` manual pages on your system. + +For instance, to highlight `sudo` only as a complete word, i.e., `sudo cmd`, +but not `sudoedit`, one might use: + +* When the `RE_MATCH_PCRE` is set: + + ```zsh + typeset -A ZSH_HIGHLIGHT_REGEXP + ZSH_HIGHLIGHT_REGEXP+=('\bsudo\b' fg=123,bold) + ``` + +* When the `RE_MATCH_PCRE` is unset, on platforms with GNU `libc` (e.g., many GNU/Linux distributions): + + ```zsh + typeset -A ZSH_HIGHLIGHT_REGEXP + ZSH_HIGHLIGHT_REGEXP+=('\' fg=123,bold) + ``` + +* When the `RE_MATCH_PCRE` is unset, on BSD-based platforms (e.g., macOS): + + ```zsh + typeset -A ZSH_HIGHLIGHT_REGEXP + ZSH_HIGHLIGHT_REGEXP+=('[[:<:]]sudo[[:>:]]' fg=123,bold) + ``` + +Note, however, that PCRE and POSIX ERE have a large common subset: +for instance, the regular expressions `[abc]`, `a*`, and `(a|b)` have the same +meaning in both flavours. + +The syntax for values is the same as the syntax of "types of highlighting" of +the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)` +manual page][zshzle-Character-Highlighting]. + +See also: [regular expressions tutorial][perlretut], zsh regexp operator `=~` +in [the `zshmisc(1)` manual page][zshmisc-Conditional-Expressions] + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting +[perlretut]: https://perldoc.perl.org/perlretut +[zshmisc-Conditional-Expressions]: https://zsh.sourceforge.io/Doc/Release/Conditional-Expressions.html#Conditional-Expressions +[MAN_ZSH_REGEX]: https://zsh.sourceforge.io/Doc/Release/Zsh-Modules.html#The-zsh_002fregex-Module +[pcresyntax]: https://www.pcre.org/original/doc/html/pcresyntax.html diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/root.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/root.md new file mode 100644 index 00000000..8197e4bd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/docs/highlighters/root.md @@ -0,0 +1,25 @@ +zsh-syntax-highlighting / highlighters / root +--------------------------------------------- + +This is the `root` highlighter, that highlights the whole line if the current +user is root. + + +### How to tweak it + +This highlighter defines the following styles: + +* `root` - the style for the whole line if the current user is root. + +To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, +for example in `~/.zshrc`: + +```zsh +ZSH_HIGHLIGHT_STYLES[root]='bg=red' +``` + +The syntax for values is the same as the syntax of "types of highlighting" of +the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)` +manual page][zshzle-Character-Highlighting]. + +[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/README.md new file mode 100644 index 00000000..8490ddf4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/README.md @@ -0,0 +1,8 @@ +zsh-syntax-highlighting / highlighters +====================================== + +Navigate into the individual highlighters' documentation to see +what styles (`$ZSH_HIGHLIGHT_STYLES` keys) each highlighter defines. + +Refer to the [documentation on highlighters](../docs/highlighters.md) for further +information. diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/README.md new file mode 120000 index 00000000..6997bd60 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/README.md @@ -0,0 +1 @@ +../../docs/highlighters/brackets.md \ No newline at end of file diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/brackets-highlighter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/brackets-highlighter.zsh new file mode 100644 index 00000000..bc388fdb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/brackets-highlighter.zsh @@ -0,0 +1,107 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +# Define default styles. +: ${ZSH_HIGHLIGHT_STYLES[bracket-error]:=fg=red,bold} +: ${ZSH_HIGHLIGHT_STYLES[bracket-level-1]:=fg=blue,bold} +: ${ZSH_HIGHLIGHT_STYLES[bracket-level-2]:=fg=green,bold} +: ${ZSH_HIGHLIGHT_STYLES[bracket-level-3]:=fg=magenta,bold} +: ${ZSH_HIGHLIGHT_STYLES[bracket-level-4]:=fg=yellow,bold} +: ${ZSH_HIGHLIGHT_STYLES[bracket-level-5]:=fg=cyan,bold} +: ${ZSH_HIGHLIGHT_STYLES[cursor-matchingbracket]:=standout} + +# Whether the brackets highlighter should be called or not. +_zsh_highlight_highlighter_brackets_predicate() +{ + [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_cursor_moved || _zsh_highlight_buffer_modified +} + +# Brackets highlighting function. +_zsh_highlight_highlighter_brackets_paint() +{ + local char style + local -i bracket_color_size=${#ZSH_HIGHLIGHT_STYLES[(I)bracket-level-*]} buflen=${#BUFFER} level=0 matchingpos pos + local -A levelpos lastoflevel matching + + # Find all brackets and remember which one is matching + pos=0 + for char in ${(s..)BUFFER} ; do + (( ++pos )) + case $char in + ["([{"]) + levelpos[$pos]=$((++level)) + lastoflevel[$level]=$pos + ;; + [")]}"]) + if (( level > 0 )); then + matchingpos=$lastoflevel[$level] + levelpos[$pos]=$((level--)) + if _zsh_highlight_brackets_match $matchingpos $pos; then + matching[$matchingpos]=$pos + matching[$pos]=$matchingpos + fi + else + levelpos[$pos]=-1 + fi + ;; + esac + done + + # Now highlight all found brackets + for pos in ${(k)levelpos}; do + if (( $+matching[$pos] )); then + if (( bracket_color_size )); then + _zsh_highlight_add_highlight $((pos - 1)) $pos bracket-level-$(( (levelpos[$pos] - 1) % bracket_color_size + 1 )) + fi + else + _zsh_highlight_add_highlight $((pos - 1)) $pos bracket-error + fi + done + + # If cursor is on a bracket, then highlight corresponding bracket, if any. + if [[ $WIDGET != zle-line-finish ]]; then + pos=$((CURSOR + 1)) + if (( $+levelpos[$pos] )) && (( $+matching[$pos] )); then + local -i otherpos=$matching[$pos] + _zsh_highlight_add_highlight $((otherpos - 1)) $otherpos cursor-matchingbracket + fi + fi +} + +# Helper function to differentiate type +_zsh_highlight_brackets_match() +{ + case $BUFFER[$1] in + \() [[ $BUFFER[$2] == \) ]];; + \[) [[ $BUFFER[$2] == \] ]];; + \{) [[ $BUFFER[$2] == \} ]];; + *) false;; + esac +} diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh new file mode 100644 index 00000000..b2acd31d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +WIDGET=zle-line-finish + +BUFFER=': $foo[bar]' +CURSOR=6 # cursor is zero-based + +expected_region_highlight=( +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/cursor-matchingbracket.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/cursor-matchingbracket.zsh new file mode 100644 index 00000000..e05b4e90 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/cursor-matchingbracket.zsh @@ -0,0 +1,47 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsorted=1 + +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= +ZSH_HIGHLIGHT_STYLES[bracket-level-3]= + +BUFFER=': ((( )))' +CURSOR=2 # cursor is zero-based + +expected_region_highlight=( + "3 3 bracket-level-1" + "4 4 bracket-level-2" + "5 5 bracket-level-3" + "7 7 bracket-level-3" + "8 8 bracket-level-2" + "9 9 bracket-level-1" + "9 9 cursor-matchingbracket" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/empty-styles.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/empty-styles.zsh new file mode 100644 index 00000000..e60657bc --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/empty-styles.zsh @@ -0,0 +1,33 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': (x)' + +expected_region_highlight=( +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/loop-styles.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/loop-styles.zsh new file mode 100644 index 00000000..e5cfcdf0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/loop-styles.zsh @@ -0,0 +1,53 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsorted=1 + +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= +ZSH_HIGHLIGHT_STYLES[bracket-level-3]= + +BUFFER=': ({[({[(x)]})]})' + +expected_region_highlight=( + "3 3 bracket-level-1" + "4 4 bracket-level-2" + "5 5 bracket-level-3" + "6 6 bracket-level-1" + "7 7 bracket-level-2" + "8 8 bracket-level-3" + "9 9 bracket-level-1" + "11 11 bracket-level-1" + "12 12 bracket-level-3" + "13 13 bracket-level-2" + "14 14 bracket-level-1" + "15 15 bracket-level-3" + "16 16 bracket-level-2" + "17 17 bracket-level-1" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/mismatch-patentheses.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/mismatch-patentheses.zsh new file mode 100644 index 00000000..5cc588fa --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/mismatch-patentheses.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsorted=1 + +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + +BUFFER='echo ({x}]' + +expected_region_highlight=( + "6 6 bracket-error" # ( + "7 7 bracket-level-2" # { + "9 9 bracket-level-2" # } + "10 10 bracket-error" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/near-quotes.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/near-quotes.zsh new file mode 100644 index 00000000..49f002be --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/near-quotes.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsorted=1 + +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + +BUFFER=': {"{x}"}' + +expected_region_highlight=( + "3 3 bracket-level-1" + "5 5 bracket-level-2" + "7 7 bracket-level-2" + "9 9 bracket-level-1" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/nested-parentheses.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/nested-parentheses.zsh new file mode 100644 index 00000000..21a20fb3 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/nested-parentheses.zsh @@ -0,0 +1,45 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsorted=1 + +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= +ZSH_HIGHLIGHT_STYLES[bracket-level-3]= + +BUFFER='echo $(echo ${(z)array})' + +expected_region_highlight=( + "7 7 bracket-level-1" # ( + "14 14 bracket-level-2" # { + "15 15 bracket-level-3" # ( + "17 17 bracket-level-3" # ) + "23 23 bracket-level-2" # } + "24 24 bracket-level-1" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/only-error.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/only-error.zsh new file mode 100644 index 00000000..00fe557c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/only-error.zsh @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': x)' + +expected_region_highlight=( + "4 4 bracket-error" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/quoted-patentheses.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/quoted-patentheses.zsh new file mode 100644 index 00000000..81ee04f2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/quoted-patentheses.zsh @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo "foo ( bar"' + +expected_region_highlight=( +"11 11 bracket-error" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/simple-parentheses.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/simple-parentheses.zsh new file mode 100644 index 00000000..2ccfbab0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/simple-parentheses.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsorted=1 + +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + +BUFFER='echo ({x})' + +expected_region_highlight=( + "6 6 bracket-level-1" # ( + "7 7 bracket-level-2" # { + "9 9 bracket-level-2" # } + "10 10 bracket-level-1" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/unclosed-patentheses.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/unclosed-patentheses.zsh new file mode 100644 index 00000000..d3f6560d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/unclosed-patentheses.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsorted=1 + +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + +BUFFER='echo ({x}' + +expected_region_highlight=( + "6 6 bracket-error" # ( + "7 7 bracket-level-2" # { + "9 9 bracket-level-2" # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/unclosed-patentheses2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/unclosed-patentheses2.zsh new file mode 100644 index 00000000..2c489c30 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/brackets/test-data/unclosed-patentheses2.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsorted=1 + +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= + +BUFFER='echo {x})' + +expected_region_highlight=( + "6 6 bracket-level-1" # { + "8 8 bracket-level-1" # } + "9 9 bracket-error" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/cursor/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/cursor/README.md new file mode 120000 index 00000000..70e0c8c4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/cursor/README.md @@ -0,0 +1 @@ +../../docs/highlighters/cursor.md \ No newline at end of file diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/cursor/cursor-highlighter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/cursor/cursor-highlighter.zsh new file mode 100644 index 00000000..81633a3c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/cursor/cursor-highlighter.zsh @@ -0,0 +1,47 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +# Define default styles. +: ${ZSH_HIGHLIGHT_STYLES[cursor]:=standout} + +# Whether the cursor highlighter should be called or not. +_zsh_highlight_highlighter_cursor_predicate() +{ + # remove cursor highlighting when the line is finished + [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_cursor_moved +} + +# Cursor highlighting function. +_zsh_highlight_highlighter_cursor_paint() +{ + [[ $WIDGET == zle-line-finish ]] && return + + _zsh_highlight_add_highlight $CURSOR $(( $CURSOR + 1 )) cursor +} diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/line/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/line/README.md new file mode 120000 index 00000000..052fe20b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/line/README.md @@ -0,0 +1 @@ +../../docs/highlighters/line.md \ No newline at end of file diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/line/line-highlighter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/line/line-highlighter.zsh new file mode 100644 index 00000000..f922dc9b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/line/line-highlighter.zsh @@ -0,0 +1,44 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +# Define default styles. +: ${ZSH_HIGHLIGHT_STYLES[line]:=} + +# Whether the root highlighter should be called or not. +_zsh_highlight_highlighter_line_predicate() +{ + _zsh_highlight_buffer_modified +} + +# root highlighting function. +_zsh_highlight_highlighter_line_paint() +{ + _zsh_highlight_add_highlight 0 $#BUFFER line +} diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/README.md new file mode 120000 index 00000000..03547318 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/README.md @@ -0,0 +1 @@ +../../docs/highlighters/main.md \ No newline at end of file diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/main-highlighter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/main-highlighter.zsh new file mode 100644 index 00000000..3ec96d98 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/main-highlighter.zsh @@ -0,0 +1,1846 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +# Define default styles. +: ${ZSH_HIGHLIGHT_STYLES[default]:=none} +: ${ZSH_HIGHLIGHT_STYLES[unknown-token]:=fg=red,bold} +: ${ZSH_HIGHLIGHT_STYLES[reserved-word]:=fg=yellow} +: ${ZSH_HIGHLIGHT_STYLES[suffix-alias]:=fg=green,underline} +: ${ZSH_HIGHLIGHT_STYLES[global-alias]:=fg=cyan} +: ${ZSH_HIGHLIGHT_STYLES[precommand]:=fg=green,underline} +: ${ZSH_HIGHLIGHT_STYLES[commandseparator]:=none} +: ${ZSH_HIGHLIGHT_STYLES[autodirectory]:=fg=green,underline} +: ${ZSH_HIGHLIGHT_STYLES[path]:=underline} +: ${ZSH_HIGHLIGHT_STYLES[path_pathseparator]:=} +: ${ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]:=} +: ${ZSH_HIGHLIGHT_STYLES[globbing]:=fg=blue} +: ${ZSH_HIGHLIGHT_STYLES[history-expansion]:=fg=blue} +: ${ZSH_HIGHLIGHT_STYLES[command-substitution]:=none} +: ${ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]:=fg=magenta} +: ${ZSH_HIGHLIGHT_STYLES[process-substitution]:=none} +: ${ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]:=fg=magenta} +: ${ZSH_HIGHLIGHT_STYLES[single-hyphen-option]:=none} +: ${ZSH_HIGHLIGHT_STYLES[double-hyphen-option]:=none} +: ${ZSH_HIGHLIGHT_STYLES[back-quoted-argument]:=none} +: ${ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]:=fg=magenta} +: ${ZSH_HIGHLIGHT_STYLES[single-quoted-argument]:=fg=yellow} +: ${ZSH_HIGHLIGHT_STYLES[double-quoted-argument]:=fg=yellow} +: ${ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]:=fg=yellow} +: ${ZSH_HIGHLIGHT_STYLES[rc-quote]:=fg=cyan} +: ${ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]:=fg=cyan} +: ${ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]:=fg=cyan} +: ${ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]:=fg=cyan} +: ${ZSH_HIGHLIGHT_STYLES[assign]:=none} +: ${ZSH_HIGHLIGHT_STYLES[redirection]:=fg=yellow} +: ${ZSH_HIGHLIGHT_STYLES[comment]:=fg=black,bold} +: ${ZSH_HIGHLIGHT_STYLES[named-fd]:=none} +: ${ZSH_HIGHLIGHT_STYLES[numeric-fd]:=none} +: ${ZSH_HIGHLIGHT_STYLES[arg0]:=fg=green} + +# Whether the highlighter should be called or not. +_zsh_highlight_highlighter_main_predicate() +{ + # may need to remove path_prefix highlighting when the line ends + [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_buffer_modified +} + +# Helper to deal with tokens crossing line boundaries. +_zsh_highlight_main_add_region_highlight() { + integer start=$1 end=$2 + shift 2 + + if (( $#in_alias )); then + [[ $1 == unknown-token ]] && alias_style=unknown-token + return + fi + if (( in_param )); then + if [[ $1 == unknown-token ]]; then + param_style=unknown-token + fi + if [[ -n $param_style ]]; then + return + fi + param_style=$1 + return + fi + + # The calculation was relative to $buf but region_highlight is relative to $BUFFER. + (( start += buf_offset )) + (( end += buf_offset )) + + list_highlights+=($start $end $1) +} + +_zsh_highlight_main_add_many_region_highlights() { + for 1 2 3; do + _zsh_highlight_main_add_region_highlight $1 $2 $3 + done +} + +_zsh_highlight_main_calculate_fallback() { + local -A fallback_of; fallback_of=( + alias arg0 + suffix-alias arg0 + global-alias dollar-double-quoted-argument + builtin arg0 + function arg0 + command arg0 + precommand arg0 + hashed-command arg0 + autodirectory arg0 + arg0_\* arg0 + + # TODO: Maybe these? — + # named-fd file-descriptor + # numeric-fd file-descriptor + + path_prefix path + # The path separator fallback won't ever be used, due to the optimisation + # in _zsh_highlight_main_highlighter_highlight_path_separators(). + path_pathseparator path + path_prefix_pathseparator path_prefix + + single-quoted-argument{-unclosed,} + double-quoted-argument{-unclosed,} + dollar-quoted-argument{-unclosed,} + back-quoted-argument{-unclosed,} + + command-substitution{-quoted,,-unquoted,} + command-substitution-delimiter{-quoted,,-unquoted,} + + command-substitution{-delimiter,} + process-substitution{-delimiter,} + back-quoted-argument{-delimiter,} + ) + local needle=$1 value + reply=($1) + while [[ -n ${value::=$fallback_of[(k)$needle]} ]]; do + unset "fallback_of[$needle]" # paranoia against infinite loops + reply+=($value) + needle=$value + done +} + +# Get the type of a command. +# +# Uses the zsh/parameter module if available to avoid forks, and a +# wrapper around 'type -w' as fallback. +# +# If $2 is 0, do not consider aliases. +# +# The result will be stored in REPLY. +_zsh_highlight_main__type() { + integer -r aliases_allowed=${2-1} + # We won't cache replies of anything that exists as an alias at all, to + # ensure the cached value is correct regardless of $aliases_allowed. + # + # ### We probably _should_ cache them in a cache that's keyed on the value of + # ### $aliases_allowed, on the assumption that aliases are the common case. + integer may_cache=1 + + # Cache lookup + if (( $+_zsh_highlight_main__command_type_cache )); then + REPLY=$_zsh_highlight_main__command_type_cache[(e)$1] + if [[ -n "$REPLY" ]]; then + return + fi + fi + + # Main logic + if (( $#options_to_set )); then + setopt localoptions $options_to_set; + fi + unset REPLY + if zmodload -e zsh/parameter; then + if (( $+aliases[(e)$1] )); then + may_cache=0 + fi + if (( ${+galiases[(e)$1]} )) && (( aliases_allowed )); then + REPLY='global alias' + elif (( $+aliases[(e)$1] )) && (( aliases_allowed )); then + REPLY=alias + elif [[ $1 == *.* && -n ${1%.*} ]] && (( $+saliases[(e)${1##*.}] )); then + REPLY='suffix alias' + elif (( $reswords[(Ie)$1] )); then + REPLY=reserved + elif (( $+functions[(e)$1] )); then + REPLY=function + elif (( $+builtins[(e)$1] )); then + REPLY=builtin + elif (( $+commands[(e)$1] )); then + REPLY=command + # None of the special hashes had a match, so fall back to 'type -w', for + # forward compatibility with future versions of zsh that may add new command + # types. + # + # zsh 5.2 and older have a bug whereby running 'type -w ./sudo' implicitly + # runs 'hash ./sudo=/usr/local/bin/./sudo' (assuming /usr/local/bin/sudo + # exists and is in $PATH). Avoid triggering the bug, at the expense of + # falling through to the $() below, incurring a fork. (Issue #354.) + # + # The first disjunct mimics the isrelative() C call from the zsh bug. + elif { [[ $1 != */* ]] || is-at-least 5.3 } && + # Add a subshell to avoid a zsh upstream bug; see issue #606. + # ### Remove the subshell when we stop supporting zsh 5.7.1 (I assume 5.8 will have the bugfix). + ! (builtin type -w -- "$1") >/dev/null 2>&1; then + REPLY=none + fi + fi + if ! (( $+REPLY )); then + # zsh/parameter not available or had no matches. + # + # Note that 'type -w' will run 'rehash' implicitly. + # + # We 'unalias' in a subshell, so the parent shell is not affected. + # + # The colon command is there just to avoid a command substitution that + # starts with an arithmetic expression [«((…))» as the first thing inside + # «$(…)»], which is area that has had some parsing bugs before 5.6 + # (approximately). + REPLY="${$(:; (( aliases_allowed )) || unalias -- "$1" 2>/dev/null; LC_ALL=C builtin type -w -- "$1" 2>/dev/null)##*: }" + if [[ $REPLY == 'alias' ]]; then + may_cache=0 + fi + fi + + # Cache population + if (( may_cache )) && (( $+_zsh_highlight_main__command_type_cache )); then + _zsh_highlight_main__command_type_cache[(e)$1]=$REPLY + fi + [[ -n $REPLY ]] + return $? +} + +# Checks whether $1 is something that can be run. +# +# Return 0 if runnable, 1 if not runnable, 2 if trouble. +_zsh_highlight_main__is_runnable() { + if _zsh_highlight_main__type "$1"; then + [[ $REPLY != none ]] + else + return 2 + fi +} + +# Check whether the first argument is a redirection operator token. +# Report result via the exit code. +_zsh_highlight_main__is_redirection() { + # A redirection operator token: + # - starts with an optional single-digit number; + # - is one of the tokens listed in zshmisc(1) + # - however (z) normalizes ! to | + [[ ${1#[0-9]} == (\<|\<\>|(\>|\>\>)(|\|)|\<\<(|-)|\<\<\<|\<\&|\&\<|(\>|\>\>)\&(|\|)|\&(\>|\>\>)(|\||\!)) ]] +} + +# Resolve alias. +# +# Takes a single argument. +# +# The result will be stored in REPLY. +_zsh_highlight_main__resolve_alias() { + if zmodload -e zsh/parameter; then + REPLY=${aliases[$arg]} + else + REPLY="${"$(alias -- $arg)"#*=}" + fi +} + +# Return true iff $1 is a global alias +_zsh_highlight_main__is_global_alias() { + if zmodload -e zsh/parameter; then + (( ${+galiases[$arg]} )) + elif [[ $arg == '='* ]]; then + # avoid running into «alias -L '=foo'» erroring out with 'bad assignment' + return 1 + else + alias -L -g -- "$1" >/dev/null + fi +} + +# Check that the top of $braces_stack has the expected value. If it does, set +# the style according to $2; otherwise, set style=unknown-token. +# +# $1: character expected to be at the top of $braces_stack +# $2: optional assignment to style it if matches +# return value is 0 if there is a match else 1 +_zsh_highlight_main__stack_pop() { + if [[ $braces_stack[1] == $1 ]]; then + braces_stack=${braces_stack:1} + if (( $+2 )); then + style=$2 + fi + return 0 + else + style=unknown-token + return 1 + fi +} + +# Main syntax highlighting function. +_zsh_highlight_highlighter_main_paint() +{ + setopt localoptions extendedglob + + # At the PS3 prompt and in vared, highlight nothing. + # + # (We can't check this in _zsh_highlight_highlighter_main_predicate because + # if the predicate returns false, the previous value of region_highlight + # would be reused.) + if [[ $CONTEXT == (select|vared) ]]; then + return + fi + + typeset -a ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR + typeset -a ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW + local -a options_to_set reply # used in callees + local REPLY + + # $flags_with_argument is a set of letters, corresponding to the option letters + # that would be followed by a colon in a getopts specification. + local flags_with_argument + # $flags_sans_argument is a set of letters, corresponding to the option letters + # that wouldn't be followed by a colon in a getopts specification. + local flags_sans_argument + # $flags_solo is a set of letters, corresponding to option letters that, if + # present, mean the precommand will not be acting as a precommand, i.e., will + # not be followed by a :start: word. + local flags_solo + # $precommand_options maps precommand name to values of $flags_with_argument, + # $flags_sans_argument, and flags_solo for that precommand, joined by a + # colon. (The value is NOT a getopt(3) spec, although it resembles one.) + # + # Currently, setting $flags_sans_argument is only important for commands that + # have a non-empty $flags_with_argument; see test-data/precommand4.zsh. + local -A precommand_options + precommand_options=( + # Precommand modifiers as of zsh 5.6.2 cf. zshmisc(1). + '-' '' + 'builtin' '' + 'command' :pvV + 'exec' a:cl + 'noglob' '' + # 'time' and 'nocorrect' shouldn't be added here; they're reserved words, not precommands. + + # miscellaneous commands + 'doas' aCu:Lns # as of OpenBSD's doas(1) dated September 4, 2016 + 'nice' n: # as of current POSIX spec + 'pkexec' '' # doesn't take short options; immune to #121 because it's usually not passed --option flags + # Not listed: -h, which has two different meanings. + 'sudo' Cgprtu:AEHPSbilns:eKkVv # as of sudo 1.8.21p2 + 'stdbuf' ioe: + 'eatmydata' '' + 'catchsegv' '' + 'nohup' '' + 'setsid' :wc + 'env' u:i + 'ionice' cn:t:pPu # util-linux 2.33.1-0.1 + 'strace' IbeaosXPpEuOS:ACdfhikqrtTvVxyDc # strace 4.26-0.2 + 'proxychains' f:q # proxychains 4.4.0 + 'torsocks' idq:upaP # Torsocks 2.3.0 + 'torify' idq:upaP # Torsocks 2.3.0 + 'ssh-agent' aEPt:csDd:k # As of OpenSSH 8.1p1 + 'tabbed' gnprtTuU:cdfhs:v # suckless-tools v44 + 'chronic' :ev # moreutils 0.62-1 + 'ifne' :n # moreutils 0.62-1 + 'grc' :se # grc - a "generic colouriser" (that's their spelling, not mine) + 'cpulimit' elp:ivz # cpulimit 0.2 + 'ktrace' fgpt:aBCcdiT + ) + # Commands that would need to skip one positional argument: + # flock + # ssh + # _wanted (skip two) + + if [[ $zsyh_user_options[ignorebraces] == on || ${zsyh_user_options[ignoreclosebraces]:-off} == on ]]; then + local right_brace_is_recognised_everywhere=false + else + local right_brace_is_recognised_everywhere=true + fi + + if [[ $zsyh_user_options[pathdirs] == on ]]; then + options_to_set+=( PATH_DIRS ) + fi + + ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR=( + '|' '||' ';' '&' '&&' + $'\n' # ${(z)} returns ';' but we convert it to $'\n' + '|&' + '&!' '&|' + # ### 'case' syntax, but followed by a pattern, not by a command + # ';;' ';&' ';|' + ) + + # Tokens that, at (naively-determined) "command position", are followed by + # a de jure command position. All of these are reserved words. + ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW=( + $'\x7b' # block + $'\x28' # subshell + '()' # anonymous function + 'while' + 'until' + 'if' + 'then' + 'elif' + 'else' + 'do' + 'time' + 'coproc' + '!' # reserved word; unrelated to $histchars[1] + ) + + if (( $+X_ZSH_HIGHLIGHT_DIRS_BLACKLIST )); then + print >&2 'zsh-syntax-highlighting: X_ZSH_HIGHLIGHT_DIRS_BLACKLIST is deprecated. Please use ZSH_HIGHLIGHT_DIRS_BLACKLIST.' + ZSH_HIGHLIGHT_DIRS_BLACKLIST=($X_ZSH_HIGHLIGHT_DIRS_BLACKLIST) + unset X_ZSH_HIGHLIGHT_DIRS_BLACKLIST + fi + + _zsh_highlight_main_highlighter_highlight_list -$#PREBUFFER '' 1 "$PREBUFFER$BUFFER" + + # end is a reserved word + local start end_ style + for start end_ style in $reply; do + (( start >= end_ )) && { print -r -- >&2 "zsh-syntax-highlighting: BUG: _zsh_highlight_highlighter_main_paint: start($start) >= end($end_)"; return } + (( end_ <= 0 )) && continue + (( start < 0 )) && start=0 # having start<0 is normal with e.g. multiline strings + _zsh_highlight_main_calculate_fallback $style + _zsh_highlight_add_highlight $start $end_ $reply + done +} + +# Try to expand $1, if it's possible to do so safely. +# +# Uses two parameters from the caller: $parameter_name_pattern and $res. +# +# If expansion was done, set $reply to the expansion and return true. +# Otherwise, return false. +_zsh_highlight_main_highlighter__try_expand_parameter() +{ + local arg="$1" + unset reply + { + # ### For now, expand just '$foo' or '${foo}', possibly with braces, but with + # ### no other features of the parameter expansion syntax. (No ${(x)foo}, + # ### no ${foo[x]}, no ${foo:-x}.) + { + local -a match mbegin mend + local MATCH; integer MBEGIN MEND + local parameter_name + local -a words + if [[ $arg[1] != '$' ]]; then + return 1 + fi + if [[ ${arg[2]} == '{' ]] && [[ ${arg[-1]} == '}' ]]; then + parameter_name=${${arg:2}%?} + else + parameter_name=${arg:1} + fi + if [[ $res == none ]] && + [[ ${parameter_name} =~ ^${~parameter_name_pattern}$ ]] && + [[ ${(tP)MATCH} != *special* ]] + then + # Set $arg and update $res. + case ${(tP)MATCH} in + (*array*|*assoc*) + words=( ${(P)MATCH} ) + ;; + ("") + # not set + words=( ) + ;; + (*) + # scalar, presumably + if [[ $zsyh_user_options[shwordsplit] == on ]]; then + words=( ${(P)=MATCH} ) + else + words=( ${(P)MATCH} ) + fi + ;; + esac + reply=( "${words[@]}" ) + else + return 1 + fi + } + } +} + +# $1 is the offset of $4 from the parent buffer. Added to the returned highlights. +# $2 is the initial braces_stack (for a closing paren). +# $3 is 1 if $4 contains the end of $BUFFER, else 0. +# $4 is the buffer to highlight. +# Returns: +# $REPLY: $buf[REPLY] is the last character parsed. +# $reply is an array of region_highlight additions. +# exit code is 0 if the braces_stack is empty, 1 otherwise. +_zsh_highlight_main_highlighter_highlight_list() +{ + integer start_pos end_pos=0 buf_offset=$1 has_end=$3 + # alias_style is the style to apply to an alias once $#in_alias == 0 + # Usually 'alias' but set to 'unknown-token' if any word expanded from + # the alias would be highlighted as unknown-token + # param_style is analogous for parameter expansions + local alias_style param_style last_arg arg buf=$4 highlight_glob=true saw_assignment=false style + local in_array_assignment=false # true between 'a=(' and the matching ')' + # in_alias is an array of integers with each element equal to the number + # of shifts needed until arg=args[1] pops an arg from the next level up + # alias or from BUFFER. + # in_param is analogous for parameter expansions + integer in_param=0 len=$#buf + local -a in_alias match mbegin mend list_highlights + # seen_alias is a map of aliases already seen to avoid loops like alias a=b b=a + local -A seen_alias + # Pattern for parameter names + readonly parameter_name_pattern='([A-Za-z_][A-Za-z0-9_]*|[0-9]+)' + list_highlights=() + + # "R" for round + # "Q" for square + # "Y" for curly + # "T" for [[ ]] + # "S" for $( ), =( ), <( ), >( ) + # "D" for do/done + # "$" for 'end' (matches 'foreach' always; also used with cshjunkiequotes in repeat/while) + # "?" for 'if'/'fi'; also checked by 'elif'/'else' + # ":" for 'then' + local braces_stack=$2 + + # State machine + # + # The states are: + # - :start: Command word + # - :start_of_pipeline: Start of a 'pipeline' as defined in zshmisc(1). + # Only valid when :start: is present + # - :sudo_opt: A leading-dash option to a precommand, whether it takes an + # argument or not. (Example: sudo's "-u" or "-i".) + # - :sudo_arg: The argument to a precommand's leading-dash option, + # when given as a separate word; i.e., "foo" in "-u foo" (two + # words) but not in "-ufoo" (one word). + # Note: :sudo_opt: and :sudo_arg: are used for any precommand + # declared in ${precommand_options}, not just for sudo(8). + # The naming is historical. + # - :regular: "Not a command word", and command delimiters are permitted. + # Mainly used to detect premature termination of commands. + # - :always: The word 'always' in the «{ foo } always { bar }» syntax. + # + # When the kind of a word is not yet known, $this_word / $next_word may contain + # multiple states. For example, after "sudo -i", the next word may be either + # another --flag or a command name, hence the state would include both ':start:' + # and ':sudo_opt:'. + # + # The tokens are always added with both leading and trailing colons to serve as + # word delimiters (an improvised array); [[ $x == *':foo:'* ]] and x=${x//:foo:/} + # will DTRT regardless of how many elements or repetitions $x has. + # + # Handling of redirections: upon seeing a redirection token, we must stall + # the current state --- that is, the value of $this_word --- for two iterations + # (one for the redirection operator, one for the word following it representing + # the redirection target). Therefore, we set $in_redirection to 2 upon seeing a + # redirection operator, decrement it each iteration, and stall the current state + # when it is non-zero. Thus, upon reaching the next word (the one that follows + # the redirection operator and target), $this_word will still contain values + # appropriate for the word immediately following the word that preceded the + # redirection operator. + # + # The "the previous word was a redirection operator" state is not communicated + # to the next iteration via $next_word/$this_word as usual, but via + # $in_redirection. The value of $next_word from the iteration that processed + # the operator is discarded. + # + # $in_redirection is currently used for: + # - comments + # - aliases + # - redirections + # - parameter elision in command position + # - 'repeat' loops + # + local this_word next_word=':start::start_of_pipeline:' + integer in_redirection + # Processing buffer + local proc_buf="$buf" + local -a args + if [[ $zsyh_user_options[interactivecomments] == on ]]; then + args=(${(zZ+c+)buf}) + else + args=(${(z)buf}) + fi + + # Special case: $(<*) isn't globbing. + if [[ $braces_stack == 'S' ]] && (( $+args[3] && ! $+args[4] )) && [[ $args[3] == $'\x29' ]] && + [[ $args[1] == *'<'* ]] && _zsh_highlight_main__is_redirection $args[1]; then + highlight_glob=false + fi + + while (( $#args )); do + last_arg=$arg + arg=$args[1] + shift args + if (( $#in_alias )); then + (( in_alias[1]-- )) + # Remove leading 0 entries + in_alias=($in_alias[$in_alias[(i)<1->],-1]) + if (( $#in_alias == 0 )); then + seen_alias=() + # start_pos and end_pos are of the alias (previous $arg) here + _zsh_highlight_main_add_region_highlight $start_pos $end_pos $alias_style + else + # We can't unset keys that contain special characters (] \ and some others). + # More details: https://www.zsh.org/workers/43269 + (){ + local alias_name + for alias_name in ${(k)seen_alias[(R)<$#in_alias->]}; do + seen_alias=("${(@kv)seen_alias[(I)^$alias_name]}") + done + } + fi + fi + if (( in_param )); then + (( in_param-- )) + if (( in_param == 0 )); then + # start_pos and end_pos are of the '$foo' word (previous $arg) here + _zsh_highlight_main_add_region_highlight $start_pos $end_pos $param_style + param_style="" + fi + fi + + # Initialize this_word and next_word. + if (( in_redirection == 0 )); then + this_word=$next_word + next_word=':regular:' + elif (( !in_param )); then + # Stall $next_word. + (( --in_redirection )) + fi + + # Initialize per-"simple command" [zshmisc(1)] variables: + # + # $style how to highlight $arg + # $in_array_assignment boolean flag for "between '(' and ')' of array assignment" + # $highlight_glob boolean flag for "'noglob' is in effect" + # $saw_assignment boolean flag for "was preceded by an assignment" + # + style=unknown-token + if [[ $this_word == *':start:'* ]]; then + in_array_assignment=false + if [[ $arg == 'noglob' ]]; then + highlight_glob=false + fi + fi + + if (( $#in_alias == 0 && in_param == 0 )); then + # Compute the new $start_pos and $end_pos, skipping over whitespace in $buf. + [[ "$proc_buf" = (#b)(#s)(''([ $'\t']|[\\]$'\n')#)(?|)* ]] + # The first, outer parenthesis + integer offset="${#match[1]}" + (( start_pos = end_pos + offset )) + (( end_pos = start_pos + $#arg )) + + # The zsh lexer considers ';' and newline to be the same token, so + # ${(z)} converts all newlines to semicolons. Convert them back here to + # make later processing simpler. + [[ $arg == ';' && ${match[3]} == $'\n' ]] && arg=$'\n' + + # Compute the new $proc_buf. We advance it + # (chop off characters from the beginning) + # beyond what end_pos points to, by skipping + # as many characters as end_pos was advanced. + # + # end_pos was advanced by $offset (via start_pos) + # and by $#arg. Note the `start_pos=$end_pos` + # below. + # + # As for the [,len]. We could use [,len-start_pos+offset] + # here, but to make it easier on eyes, we use len and + # rely on the fact that Zsh simply handles that. The + # length of proc_buf is len-start_pos+offset because + # we're chopping it to match current start_pos, so its + # length matches the previous value of start_pos. + # + # Why [,-1] is slower than [,length] isn't clear. + proc_buf="${proc_buf[offset + $#arg + 1,len]}" + fi + + # Handle the INTERACTIVE_COMMENTS option. + # + # We use the (Z+c+) flag so the entire comment is presented as one token in $arg. + if [[ $zsyh_user_options[interactivecomments] == on && $arg[1] == $histchars[3] ]]; then + if [[ $this_word == *(':regular:'|':start:')* ]]; then + style=comment + else + style=unknown-token # prematurely terminated + fi + _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style + # Stall this arg + in_redirection=1 + continue + fi + + if [[ $this_word == *':start:'* ]] && ! (( in_redirection )); then + # Expand aliases. + # An alias is ineligible for expansion while it's being expanded (see #652/#653). + _zsh_highlight_main__type "$arg" "$(( ! ${+seen_alias[$arg]} ))" + local res="$REPLY" + if [[ $res == "alias" ]]; then + # Mark insane aliases as unknown-token (cf. #263). + if [[ $arg == ?*=* ]]; then + _zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token + continue + fi + seen_alias[$arg]=$#in_alias + _zsh_highlight_main__resolve_alias $arg + local -a alias_args + # Elision is desired in case alias x='' + if [[ $zsyh_user_options[interactivecomments] == on ]]; then + alias_args=(${(zZ+c+)REPLY}) + else + alias_args=(${(z)REPLY}) + fi + args=( $alias_args $args ) + if (( $#in_alias == 0 )); then + alias_style=alias + else + # Transfer the count of this arg to the new element about to be appended. + (( in_alias[1]-- )) + fi + # Add one because we will in_alias[1]-- on the next loop iteration so + # this iteration should be considered in in_alias as well + in_alias=( $(($#alias_args + 1)) $in_alias ) + (( in_redirection++ )) # Stall this arg + continue + else + _zsh_highlight_main_highlighter_expand_path $arg + _zsh_highlight_main__type "$REPLY" 0 + res="$REPLY" + fi + fi + + # Analyse the current word. + if _zsh_highlight_main__is_redirection $arg ; then + if (( in_redirection == 1 )); then + # Two consecutive redirection operators is an error. + _zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token + else + in_redirection=2 + _zsh_highlight_main_add_region_highlight $start_pos $end_pos redirection + fi + continue + elif [[ $arg == '{'${~parameter_name_pattern}'}' ]] && _zsh_highlight_main__is_redirection $args[1]; then + # named file descriptor: {foo}>&2 + in_redirection=3 + _zsh_highlight_main_add_region_highlight $start_pos $end_pos named-fd + continue + fi + + # Expand parameters. + if (( ! in_param )) && _zsh_highlight_main_highlighter__try_expand_parameter "$arg"; then + # That's not entirely correct --- if the parameter's value happens to be a reserved + # word, the parameter expansion will be highlighted as a reserved word --- but that + # incorrectness is outweighed by the usability improvement of permitting the use of + # parameters that refer to commands, functions, and builtins. + () { + local -a words; words=( "${reply[@]}" ) + if (( $#words == 0 )) && (( ! in_redirection )); then + # Parameter elision is happening + (( ++in_redirection )) + _zsh_highlight_main_add_region_highlight $start_pos $end_pos comment + continue + else + (( in_param = 1 + $#words )) + args=( $words $args ) + arg=$args[1] + _zsh_highlight_main__type "$arg" 0 + res=$REPLY + fi + } + fi + + # Parse the sudo command line + if (( ! in_redirection )); then + if [[ $this_word == *':sudo_opt:'* ]]; then + if [[ -n $flags_with_argument ]] && + { + # Trenary + if [[ -n $flags_sans_argument ]] + then [[ $arg == '-'[$flags_sans_argument]#[$flags_with_argument] ]] + else [[ $arg == '-'[$flags_with_argument] ]] + fi + } then + # Flag that requires an argument + this_word=${this_word//:start:/} + next_word=':sudo_arg:' + elif [[ -n $flags_with_argument ]] && + { + # Trenary + if [[ -n $flags_sans_argument ]] + then [[ $arg == '-'[$flags_sans_argument]#[$flags_with_argument]* ]] + else [[ $arg == '-'[$flags_with_argument]* ]] + fi + } then + # Argument attached in the same word + this_word=${this_word//:start:/} + next_word+=':start:' + next_word+=':sudo_opt:' + elif [[ -n $flags_sans_argument ]] && + [[ $arg == '-'[$flags_sans_argument]# ]]; then + # Flag that requires no argument + this_word=':sudo_opt:' + next_word+=':start:' + next_word+=':sudo_opt:' + elif [[ -n $flags_solo ]] && + { + # Trenary + if [[ -n $flags_sans_argument ]] + then [[ $arg == '-'[$flags_sans_argument]#[$flags_solo]* ]] + else [[ $arg == '-'[$flags_solo]* ]] + fi + } then + # Solo flags + this_word=':sudo_opt:' + next_word=':regular:' # no :start:, nor :sudo_opt: since we don't know whether the solo flag takes an argument or not + elif [[ $arg == '-'* ]]; then + # Unknown flag. We don't know whether it takes an argument or not, + # so modify $next_word as we do for flags that require no argument. + # With that behaviour, if the flag in fact takes no argument we'll + # highlight the inner command word correctly, and if it does take an + # argument we'll highlight the command word correctly if the argument + # was given in the same shell word as the flag (as in '-uphy1729' or + # '--user=phy1729' without spaces). + this_word=':sudo_opt:' + next_word+=':start:' + next_word+=':sudo_opt:' + else + # Not an option flag; nothing to do. (If the command line is + # syntactically valid, ${this_word//:sudo_opt:/} should be + # non-empty now.) + this_word=${this_word//:sudo_opt:/} + fi + elif [[ $this_word == *':sudo_arg:'* ]]; then + next_word+=':sudo_opt:' + next_word+=':start:' + fi + fi + + # The Great Fork: is this a command word? Is this a non-command word? + if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]] && + [[ $braces_stack != *T* || $arg != ('||'|'&&') ]]; then + + # First, determine the style of the command separator itself. + if _zsh_highlight_main__stack_pop T || _zsh_highlight_main__stack_pop Q; then + # Missing closing square bracket(s) + style=unknown-token + elif $in_array_assignment; then + case $arg in + # Literal newlines are just fine. + ($'\n') style=commandseparator;; + # Semicolons are parsed the same way as literal newlines. Nevertheless, + # highlight them as errors since they're probably unintended. Compare + # issue #691. + (';') style=unknown-token;; + # Other command separators aren't allowed. + (*) style=unknown-token;; + esac + elif [[ $this_word == *':regular:'* ]]; then + style=commandseparator + elif [[ $this_word == *':start:'* ]] && [[ $arg == $'\n' ]]; then + style=commandseparator + elif [[ $this_word == *':start:'* ]] && [[ $arg == ';' ]] && (( $#in_alias )); then + style=commandseparator + else + # Empty commands (semicolon follows nothing) are valid syntax. + # However, in interactive use they are likely to be erroneous; + # therefore, we highlight them as errors. + # + # Alias definitions are exempted from this check to allow multiline aliases + # with explicit (redundant) semicolons: «alias foo=$'bar;\nbaz'» (issue #677). + # + # See also #691 about possibly changing the style used here. + style=unknown-token + fi + + # Second, determine the style of next_word. + if [[ $arg == $'\n' ]] && $in_array_assignment; then + # literal newline inside an array assignment + next_word=':regular:' + elif [[ $arg == ';' ]] && $in_array_assignment; then + # literal semicolon inside an array assignment + next_word=':regular:' + else + next_word=':start:' + highlight_glob=true + saw_assignment=false + (){ + local alias_name + for alias_name in ${(k)seen_alias[(R)<$#in_alias->]}; do + # We can't unset keys that contain special characters (] \ and some others). + # More details: https://www.zsh.org/workers/43269 + seen_alias=("${(@kv)seen_alias[(I)^$alias_name]}") + done + } + if [[ $arg != '|' && $arg != '|&' ]]; then + next_word+=':start_of_pipeline:' + fi + fi + + elif ! (( in_redirection)) && [[ $this_word == *':always:'* && $arg == 'always' ]]; then + # try-always construct + style=reserved-word # de facto a reserved word, although not de jure + highlight_glob=true + saw_assignment=false + next_word=':start::start_of_pipeline:' # only left brace is allowed, apparently + elif ! (( in_redirection)) && [[ $this_word == *':start:'* ]]; then # $arg is the command word + if (( ${+precommand_options[$arg]} )) && _zsh_highlight_main__is_runnable $arg; then + style=precommand + () { + set -- "${(@s.:.)precommand_options[$arg]}" + flags_with_argument=$1 + flags_sans_argument=$2 + flags_solo=$3 + } + next_word=${next_word//:regular:/} + next_word+=':sudo_opt:' + next_word+=':start:' + if [[ $arg == 'exec' || $arg == 'env' ]]; then + # To allow "exec 2>&1;" and "env | grep" where there's no command word + next_word+=':regular:' + fi + else + case $res in + (reserved) # reserved word + style=reserved-word + # Match braces and handle special cases. + case $arg in + (time|nocorrect) + next_word=${next_word//:regular:/} + next_word+=':start:' + ;; + ($'\x7b') + braces_stack='Y'"$braces_stack" + ;; + ($'\x7d') + # We're at command word, so no need to check $right_brace_is_recognised_everywhere + _zsh_highlight_main__stack_pop 'Y' reserved-word + if [[ $style == reserved-word ]]; then + next_word+=':always:' + fi + ;; + ($'\x5b\x5b') + braces_stack='T'"$braces_stack" + ;; + ('do') + braces_stack='D'"$braces_stack" + ;; + ('done') + _zsh_highlight_main__stack_pop 'D' reserved-word + ;; + ('if') + braces_stack=':?'"$braces_stack" + ;; + ('then') + _zsh_highlight_main__stack_pop ':' reserved-word + ;; + ('elif') + if [[ ${braces_stack[1]} == '?' ]]; then + braces_stack=':'"$braces_stack" + else + style=unknown-token + fi + ;; + ('else') + if [[ ${braces_stack[1]} == '?' ]]; then + : + else + style=unknown-token + fi + ;; + ('fi') + _zsh_highlight_main__stack_pop '?' + ;; + ('foreach') + braces_stack='$'"$braces_stack" + ;; + ('end') + _zsh_highlight_main__stack_pop '$' reserved-word + ;; + ('repeat') + # skip the repeat-count word + in_redirection=2 + # The redirection mechanism assumes $this_word describes the word + # following the redirection. Make it so. + # + # That word can be a command word with shortloops (`repeat 2 ls`) + # or a command separator (`repeat 2; ls` or `repeat 2; do ls; done`). + # + # The repeat-count word will be handled like a redirection target. + this_word=':start::regular:' + ;; + ('!') + if [[ $this_word != *':start_of_pipeline:'* ]]; then + style=unknown-token + else + # '!' reserved word at start of pipeline; style already set above + fi + ;; + esac + if $saw_assignment && [[ $style != unknown-token ]]; then + style=unknown-token + fi + ;; + ('suffix alias') + style=suffix-alias + ;; + ('global alias') + style=global-alias + ;; + (alias) :;; + (builtin) style=builtin + [[ $arg == $'\x5b' ]] && braces_stack='Q'"$braces_stack" + ;; + (function) style=function;; + (command) style=command;; + (hashed) style=hashed-command;; + (none) if (( ! in_param )) && _zsh_highlight_main_highlighter_check_assign; then + _zsh_highlight_main_add_region_highlight $start_pos $end_pos assign + local i=$(( arg[(i)=] + 1 )) + saw_assignment=true + if [[ $arg[i] == '(' ]]; then + in_array_assignment=true + _zsh_highlight_main_add_region_highlight start_pos+i-1 start_pos+i reserved-word + else + # assignment to a scalar parameter. + # (For array assignments, the command doesn't start until the ")" token.) + # + # Discard :start_of_pipeline:, if present, as '!' is not valid + # after assignments. + next_word+=':start:' + if (( i <= $#arg )); then + () { + local highlight_glob=false + [[ $zsyh_user_options[globassign] == on ]] && highlight_glob=true + _zsh_highlight_main_highlighter_highlight_argument $i + } + fi + fi + continue + elif (( ! in_param )) && + [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then + style=history-expansion + elif (( ! in_param )) && + [[ $arg[0,1] == $histchars[2,2] ]]; then + style=history-expansion + elif (( ! in_param )) && + ! $saw_assignment && + [[ $arg[1,2] == '((' ]]; then + # Arithmetic evaluation. + # + # Note: prior to zsh-5.1.1-52-g4bed2cf (workers/36669), the ${(z)...} + # splitter would only output the '((' token if the matching '))' had + # been typed. Therefore, under those versions of zsh, BUFFER="(( 42" + # would be highlighted as an error until the matching "))" are typed. + # + # We highlight just the opening parentheses, as a reserved word; this + # is how [[ ... ]] is highlighted, too. + _zsh_highlight_main_add_region_highlight $start_pos $((start_pos + 2)) reserved-word + if [[ $arg[-2,-1] == '))' ]]; then + _zsh_highlight_main_add_region_highlight $((end_pos - 2)) $end_pos reserved-word + fi + continue + elif (( ! in_param )) && + [[ $arg == '()' ]]; then + # anonymous function + style=reserved-word + elif (( ! in_param )) && + ! $saw_assignment && + [[ $arg == $'\x28' ]]; then + # subshell + style=reserved-word + braces_stack='R'"$braces_stack" + elif (( ! in_param )) && + [[ $arg == $'\x29' ]]; then + # end of subshell or command substitution + if _zsh_highlight_main__stack_pop 'S'; then + REPLY=$start_pos + reply=($list_highlights) + return 0 + fi + _zsh_highlight_main__stack_pop 'R' reserved-word + else + if _zsh_highlight_main_highlighter_check_path $arg 1; then + style=$REPLY + else + style=unknown-token + fi + fi + ;; + (*) _zsh_highlight_main_add_region_highlight $start_pos $end_pos arg0_$res + continue + ;; + esac + fi + if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW:#"$arg"} ]]; then + next_word=':start::start_of_pipeline:' + fi + elif _zsh_highlight_main__is_global_alias "$arg"; then # $arg is a global alias that isn't in command position + style=global-alias + else # $arg is a non-command word + case $arg in + ($'\x29') + # subshell or end of array assignment + if $in_array_assignment; then + _zsh_highlight_main_add_region_highlight $start_pos $end_pos assign + _zsh_highlight_main_add_region_highlight $start_pos $end_pos reserved-word + in_array_assignment=false + next_word+=':start:' + continue + elif (( in_redirection )); then + style=unknown-token + else + if _zsh_highlight_main__stack_pop 'S'; then + REPLY=$start_pos + reply=($list_highlights) + return 0 + fi + _zsh_highlight_main__stack_pop 'R' reserved-word + fi + ;; + ($'\x28\x29') + # possibly a function definition + if (( in_redirection )) || $in_array_assignment; then + style=unknown-token + else + if [[ $zsyh_user_options[multifuncdef] == on ]] || false # TODO: or if the previous word was a command word + then + next_word+=':start::start_of_pipeline:' + fi + style=reserved-word + fi + ;; + (*) if false; then + elif [[ $arg = $'\x7d' ]] && $right_brace_is_recognised_everywhere; then + # Parsing rule: { + # + # Additionally, `tt(})' is recognized in any position if neither the + # tt(IGNORE_BRACES) option nor the tt(IGNORE_CLOSE_BRACES) option is set. + if (( in_redirection )) || $in_array_assignment; then + style=unknown-token + else + _zsh_highlight_main__stack_pop 'Y' reserved-word + if [[ $style == reserved-word ]]; then + next_word+=':always:' + fi + fi + elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then + style=history-expansion + elif [[ $arg == $'\x5d\x5d' ]] && _zsh_highlight_main__stack_pop 'T' reserved-word; then + : + elif [[ $arg == $'\x5d' ]] && _zsh_highlight_main__stack_pop 'Q' builtin; then + : + else + _zsh_highlight_main_highlighter_highlight_argument 1 $(( 1 != in_redirection )) + continue + fi + ;; + esac + fi + _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style + done + (( $#in_alias )) && in_alias=() _zsh_highlight_main_add_region_highlight $start_pos $end_pos $alias_style + (( in_param == 1 )) && in_param=0 _zsh_highlight_main_add_region_highlight $start_pos $end_pos $param_style + [[ "$proc_buf" = (#b)(#s)(([[:space:]]|\\$'\n')#) ]] + REPLY=$(( end_pos + ${#match[1]} - 1 )) + reply=($list_highlights) + return $(( $#braces_stack > 0 )) +} + +# Check if $arg is variable assignment +_zsh_highlight_main_highlighter_check_assign() +{ + setopt localoptions extended_glob + [[ $arg == [[:alpha:]_][[:alnum:]_]#(|\[*\])(|[+])=* ]] || + [[ $arg == [0-9]##(|[+])=* ]] +} + +_zsh_highlight_main_highlighter_highlight_path_separators() +{ + local pos style_pathsep + style_pathsep=$1_pathseparator + reply=() + [[ -z "$ZSH_HIGHLIGHT_STYLES[$style_pathsep]" || "$ZSH_HIGHLIGHT_STYLES[$1]" == "$ZSH_HIGHLIGHT_STYLES[$style_pathsep]" ]] && return 0 + for (( pos = start_pos; $pos <= end_pos; pos++ )) ; do + if [[ $BUFFER[pos] == / ]]; then + reply+=($((pos - 1)) $pos $style_pathsep) + fi + done +} + +# Check if $1 is a path. +# If yes, return 0 and in $REPLY the style to use. +# Else, return non-zero (and the contents of $REPLY is undefined). +# +# $2 should be non-zero iff we're in command position. +_zsh_highlight_main_highlighter_check_path() +{ + _zsh_highlight_main_highlighter_expand_path "$1" + local expanded_path="$REPLY" tmp_path + integer in_command_position=$2 + + if [[ $zsyh_user_options[autocd] == on ]]; then + integer autocd=1 + else + integer autocd=0 + fi + + if (( in_command_position )); then + # ### Currently, this value is never returned: either it's overwritten + # ### below, or the return code is non-zero + REPLY=arg0 + else + REPLY=path + fi + + if [[ ${1[1]} == '=' && $1 == ??* && ${1[2]} != $'\x28' && $zsyh_user_options[equals] == 'on' && $expanded_path[1] != '/' ]]; then + REPLY=unknown-token # will error out if executed + return 0 + fi + + [[ -z $expanded_path ]] && return 1 + + # Check if this is a blacklisted path + if [[ $expanded_path[1] == / ]]; then + tmp_path=$expanded_path + else + tmp_path=$PWD/$expanded_path + fi + tmp_path=$tmp_path:a + + while [[ $tmp_path != / ]]; do + [[ -n ${(M)ZSH_HIGHLIGHT_DIRS_BLACKLIST:#$tmp_path} ]] && return 1 + tmp_path=$tmp_path:h + done + + if (( in_command_position )); then + if [[ -x $expanded_path ]]; then + if (( autocd )); then + if [[ -d $expanded_path ]]; then + REPLY=autodirectory + fi + return 0 + elif [[ ! -d $expanded_path ]]; then + # ### This seems unreachable for the current callers + return 0 + fi + fi + else + if [[ -L $expanded_path || -e $expanded_path ]]; then + return 0 + fi + fi + + # Search the path in CDPATH + if [[ $expanded_path != /* ]] && (( autocd || ! in_command_position )); then + # TODO: When we've dropped support for pre-5.0.6 zsh, use the *(Y1) glob qualifier here. + local cdpath_dir + for cdpath_dir in $cdpath ; do + if [[ -d "$cdpath_dir/$expanded_path" && -x "$cdpath_dir/$expanded_path" ]]; then + if (( in_command_position && autocd )); then + REPLY=autodirectory + fi + return 0 + fi + done + fi + + # If dirname($1) doesn't exist, neither does $1. + [[ ! -d ${expanded_path:h} ]] && return 1 + + # If this word ends the buffer, check if it's the prefix of a valid path. + if (( has_end && (len == end_pos) )) && + (( ! $#in_alias )) && + [[ $WIDGET != zle-line-finish ]]; then + # TODO: When we've dropped support for pre-5.0.6 zsh, use the *(Y1) glob qualifier here. + local -a tmp + if (( in_command_position )); then + # We include directories even when autocd is enabled, because those + # directories might contain executable files: e.g., BUFFER="/bi" en route + # to typing "/bin/sh". + tmp=( ${expanded_path}*(N-*,N-/) ) + else + tmp=( ${expanded_path}*(N) ) + fi + (( ${+tmp[1]} )) && REPLY=path_prefix && return 0 + fi + + # It's not a path. + return 1 +} + +# Highlight an argument and possibly special chars in quotes starting at $1 in $arg +# This command will at least highlight $1 to end_pos with the default style +# If $2 is set to 0, the argument cannot be highlighted as an option. +# +# This function currently assumes it's never called for the command word. +_zsh_highlight_main_highlighter_highlight_argument() +{ + local base_style=default i=$1 option_eligible=${2:-1} path_eligible=1 ret start style + local -a highlights + + local -a match mbegin mend + local MATCH; integer MBEGIN MEND + + case "$arg[i]" in + '%') + if [[ $arg[i+1] == '?' ]]; then + (( i += 2 )) + fi + ;; + '-') + if (( option_eligible )); then + if [[ $arg[i+1] == - ]]; then + base_style=double-hyphen-option + else + base_style=single-hyphen-option + fi + path_eligible=0 + fi + ;; + '=') + if [[ $arg[i+1] == $'\x28' ]]; then + (( i += 2 )) + _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] + ret=$? + (( i += REPLY )) + highlights+=( + $(( start_pos + $1 - 1 )) $(( start_pos + i )) process-substitution + $(( start_pos + $1 - 1 )) $(( start_pos + $1 + 1 )) process-substitution-delimiter + $reply + ) + if (( ret == 0 )); then + highlights+=($(( start_pos + i - 1 )) $(( start_pos + i )) process-substitution-delimiter) + fi + fi + esac + + # This loop is a hot path. Keep it fast! + (( --i )) + while (( ++i <= $#arg )); do + i=${arg[(ib.i.)[\\\'\"\`\$\<\>\*\?]]} + case "$arg[$i]" in + "") break;; + "\\") (( i += 1 )); continue;; + "'") + _zsh_highlight_main_highlighter_highlight_single_quote $i + (( i = REPLY )) + highlights+=($reply) + ;; + '"') + _zsh_highlight_main_highlighter_highlight_double_quote $i + (( i = REPLY )) + highlights+=($reply) + ;; + '`') + _zsh_highlight_main_highlighter_highlight_backtick $i + (( i = REPLY )) + highlights+=($reply) + ;; + '$') + if [[ $arg[i+1] != "'" ]]; then + path_eligible=0 + fi + if [[ $arg[i+1] == "'" ]]; then + _zsh_highlight_main_highlighter_highlight_dollar_quote $i + (( i = REPLY )) + highlights+=($reply) + continue + elif [[ $arg[i+1] == $'\x28' ]]; then + if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i; then + # Arithmetic expansion + (( i = REPLY )) + highlights+=($reply) + continue + fi + start=$i + (( i += 2 )) + _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] + ret=$? + (( i += REPLY )) + highlights+=( + $(( start_pos + start - 1)) $(( start_pos + i )) command-substitution-unquoted + $(( start_pos + start - 1)) $(( start_pos + start + 1)) command-substitution-delimiter-unquoted + $reply + ) + if (( ret == 0 )); then + highlights+=($(( start_pos + i - 1)) $(( start_pos + i )) command-substitution-delimiter-unquoted) + fi + continue + fi + while [[ $arg[i+1] == [=~#+'^'] ]]; do + (( i += 1 )) + done + if [[ $arg[i+1] == [*@#?$!-] ]]; then + (( i += 1 )) + fi;; + [\<\>]) + if [[ $arg[i+1] == $'\x28' ]]; then # \x28 = open paren + start=$i + (( i += 2 )) + _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] + ret=$? + (( i += REPLY )) + highlights+=( + $(( start_pos + start - 1)) $(( start_pos + i )) process-substitution + $(( start_pos + start - 1)) $(( start_pos + start + 1 )) process-substitution-delimiter + $reply + ) + if (( ret == 0 )); then + highlights+=($(( start_pos + i - 1)) $(( start_pos + i )) process-substitution-delimiter) + fi + continue + fi + ;| + *) + if $highlight_glob && + [[ $zsyh_user_options[multios] == on || $in_redirection -eq 0 ]] && + [[ ${arg[$i]} =~ ^[*?] || ${arg:$i-1} =~ ^\<[0-9]*-[0-9]*\> ]]; then + highlights+=($(( start_pos + i - 1 )) $(( start_pos + i + $#MATCH - 1)) globbing) + (( i += $#MATCH - 1 )) + path_eligible=0 + else + continue + fi + ;; + esac + done + + if (( path_eligible )); then + if (( in_redirection )) && [[ $last_arg == *['<>']['&'] && $arg[$1,-1] == (<0->|p|-) ]]; then + if [[ $arg[$1,-1] == (p|-) ]]; then + base_style=redirection + else + base_style=numeric-fd + fi + # This function is currently never called for the command word, so $2 is hard-coded as 0. + elif _zsh_highlight_main_highlighter_check_path $arg[$1,-1] 0; then + base_style=$REPLY + _zsh_highlight_main_highlighter_highlight_path_separators $base_style + highlights+=($reply) + fi + fi + + highlights=($(( start_pos + $1 - 1 )) $end_pos $base_style $highlights) + _zsh_highlight_main_add_many_region_highlights $highlights +} + +# Quote Helper Functions +# +# $arg is expected to be set to the current argument +# $start_pos is expected to be set to the start of $arg in $BUFFER +# $1 is the index in $arg which starts the quote +# $REPLY is returned as the end of quote index in $arg +# $reply is returned as an array of region_highlight additions + +# Highlight single-quoted strings +_zsh_highlight_main_highlighter_highlight_single_quote() +{ + local arg1=$1 i q=\' style + i=$arg[(ib:arg1+1:)$q] + reply=() + + if [[ $zsyh_user_options[rcquotes] == on ]]; then + while [[ $arg[i+1] == "'" ]]; do + reply+=($(( start_pos + i - 1 )) $(( start_pos + i + 1 )) rc-quote) + (( i++ )) + i=$arg[(ib:i+1:)$q] + done + fi + + if [[ $arg[i] == "'" ]]; then + style=single-quoted-argument + else + # If unclosed, i points past the end + (( i-- )) + style=single-quoted-argument-unclosed + fi + reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style $reply) + REPLY=$i +} + +# Highlight special chars inside double-quoted strings +_zsh_highlight_main_highlighter_highlight_double_quote() +{ + local -a breaks match mbegin mend saved_reply + local MATCH; integer last_break=$(( start_pos + $1 - 1 )) MBEGIN MEND + local i j k ret style + reply=() + + for (( i = $1 + 1 ; i <= $#arg ; i += 1 )) ; do + (( j = i + start_pos - 1 )) + (( k = j + 1 )) + case "$arg[$i]" in + ('"') break;; + ('`') saved_reply=($reply) + _zsh_highlight_main_highlighter_highlight_backtick $i + (( i = REPLY )) + reply=($saved_reply $reply) + continue + ;; + ('$') style=dollar-double-quoted-argument + # Look for an alphanumeric parameter name. + if [[ ${arg:$i} =~ ^([A-Za-z_][A-Za-z0-9_]*|[0-9]+) ]] ; then + (( k += $#MATCH )) # highlight the parameter name + (( i += $#MATCH )) # skip past it + elif [[ ${arg:$i} =~ ^[{]([A-Za-z_][A-Za-z0-9_]*|[0-9]+)[}] ]] ; then + (( k += $#MATCH )) # highlight the parameter name and braces + (( i += $#MATCH )) # skip past it + elif [[ $arg[i+1] == '$' ]]; then + # $$ - pid + (( k += 1 )) # highlight both dollar signs + (( i += 1 )) # don't consider the second one as introducing another parameter expansion + elif [[ $arg[i+1] == [-#*@?] ]]; then + # $#, $*, $@, $?, $- - like $$ above + (( k += 1 )) # highlight both dollar signs + (( i += 1 )) # don't consider the second one as introducing another parameter expansion + elif [[ $arg[i+1] == $'\x28' ]]; then + saved_reply=($reply) + if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i; then + # Arithmetic expansion + (( i = REPLY )) + reply=($saved_reply $reply) + continue + fi + + breaks+=( $last_break $(( start_pos + i - 1 )) ) + (( i += 2 )) + _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] + ret=$? + (( i += REPLY )) + last_break=$(( start_pos + i )) + reply=( + $saved_reply + $j $(( start_pos + i )) command-substitution-quoted + $j $(( j + 2 )) command-substitution-delimiter-quoted + $reply + ) + if (( ret == 0 )); then + reply+=($(( start_pos + i - 1 )) $(( start_pos + i )) command-substitution-delimiter-quoted) + fi + continue + else + continue + fi + ;; + "\\") style=back-double-quoted-argument + if [[ \\\`\"\$${histchars[1]} == *$arg[$i+1]* ]]; then + (( k += 1 )) # Color following char too. + (( i += 1 )) # Skip parsing the escaped char. + else + continue + fi + ;; + ($histchars[1]) # ! - may be a history expansion + if [[ $arg[i+1] != ('='|$'\x28'|$'\x7b'|[[:blank:]]) ]]; then + style=history-expansion + else + continue + fi + ;; + *) continue ;; + + esac + reply+=($j $k $style) + done + + if [[ $arg[i] == '"' ]]; then + style=double-quoted-argument + else + # If unclosed, i points past the end + (( i-- )) + style=double-quoted-argument-unclosed + fi + (( last_break != start_pos + i )) && breaks+=( $last_break $(( start_pos + i )) ) + saved_reply=($reply) + reply=() + for 1 2 in $breaks; do + (( $1 != $2 )) && reply+=($1 $2 $style) + done + reply+=($saved_reply) + REPLY=$i +} + +# Highlight special chars inside dollar-quoted strings +_zsh_highlight_main_highlighter_highlight_dollar_quote() +{ + local -a match mbegin mend + local MATCH; integer MBEGIN MEND + local i j k style + local AA + integer c + reply=() + + for (( i = $1 + 2 ; i <= $#arg ; i += 1 )) ; do + (( j = i + start_pos - 1 )) + (( k = j + 1 )) + case "$arg[$i]" in + "'") break;; + "\\") style=back-dollar-quoted-argument + for (( c = i + 1 ; c <= $#arg ; c += 1 )); do + [[ "$arg[$c]" != ([0-9xXuUa-fA-F]) ]] && break + done + AA=$arg[$i+1,$c-1] + # Matching for HEX and OCT values like \0xA6, \xA6 or \012 + if [[ "$AA" =~ "^(x|X)[0-9a-fA-F]{1,2}" + || "$AA" =~ "^[0-7]{1,3}" + || "$AA" =~ "^u[0-9a-fA-F]{1,4}" + || "$AA" =~ "^U[0-9a-fA-F]{1,8}" + ]]; then + (( k += $#MATCH )) + (( i += $#MATCH )) + else + if (( $#arg > $i+1 )) && [[ $arg[$i+1] == [xXuU] ]]; then + # \x not followed by hex digits is probably an error + style=unknown-token + fi + (( k += 1 )) # Color following char too. + (( i += 1 )) # Skip parsing the escaped char. + fi + ;; + *) continue ;; + + esac + reply+=($j $k $style) + done + + if [[ $arg[i] == "'" ]]; then + style=dollar-quoted-argument + else + # If unclosed, i points past the end + (( i-- )) + style=dollar-quoted-argument-unclosed + fi + reply=($(( start_pos + $1 - 1 )) $(( start_pos + i )) $style $reply) + REPLY=$i +} + +# Highlight backtick substitutions +_zsh_highlight_main_highlighter_highlight_backtick() +{ + # buf is the contents of the backticks with a layer of backslashes removed. + # last is the index of arg for the start of the string to be copied into buf. + # It is either one past the beginning backtick or one past the last backslash. + # offset is a count of consumed \ (the delta between buf and arg). + # offsets is an array indexed by buf offset of when the delta between buf and arg changes. + # It is sparse, so search backwards to the last value + local buf highlight style=back-quoted-argument-unclosed style_end + local -i arg1=$1 end_ i=$1 last offset=0 start subshell_has_end=0 + local -a highlight_zone highlights offsets + reply=() + + last=$(( arg1 + 1 )) + # Remove one layer of backslashes and find the end + while i=$arg[(ib:i+1:)[\\\\\`]]; do # find the next \ or ` + if (( i > $#arg )); then + buf=$buf$arg[last,i] + offsets[i-arg1-offset]='' # So we never index past the end + (( i-- )) + subshell_has_end=$(( has_end && (start_pos + i == len) )) + break + fi + + if [[ $arg[i] == '\' ]]; then + (( i++ )) + # POSIX XCU 2.6.3 + if [[ $arg[i] == ('$'|'`'|'\') ]]; then + buf=$buf$arg[last,i-2] + (( offset++ )) + # offsets is relative to buf, so adjust by -arg1 + offsets[i-arg1-offset]=$offset + else + buf=$buf$arg[last,i-1] + fi + else # it's an unquoted ` and this is the end + style=back-quoted-argument + style_end=back-quoted-argument-delimiter + buf=$buf$arg[last,i-1] + offsets[i-arg1-offset]='' # So we never index past the end + break + fi + last=$i + done + + _zsh_highlight_main_highlighter_highlight_list 0 '' $subshell_has_end $buf + + # Munge the reply to account for removed backslashes + for start end_ highlight in $reply; do + start=$(( start_pos + arg1 + start + offsets[(Rb:start:)?*] )) + end_=$(( start_pos + arg1 + end_ + offsets[(Rb:end_:)?*] )) + highlights+=($start $end_ $highlight) + if [[ $highlight == back-quoted-argument-unclosed && $style == back-quoted-argument ]]; then + # An inner backtick command substitution is unclosed, but this level is closed + style_end=unknown-token + fi + done + + reply=( + $(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style + $(( start_pos + arg1 - 1 )) $(( start_pos + arg1 )) back-quoted-argument-delimiter + $highlights + ) + if (( $#style_end )); then + reply+=($(( start_pos + i - 1)) $(( start_pos + i )) $style_end) + fi + REPLY=$i +} + +# Highlight special chars inside arithmetic expansions +_zsh_highlight_main_highlighter_highlight_arithmetic() +{ + local -a saved_reply + local style + integer i j k paren_depth ret + reply=() + + for (( i = $1 + 3 ; i <= end_pos - start_pos ; i += 1 )) ; do + (( j = i + start_pos - 1 )) + (( k = j + 1 )) + case "$arg[$i]" in + [\'\"\\@{}]) + style=unknown-token + ;; + '(') + (( paren_depth++ )) + continue + ;; + ')') + if (( paren_depth )); then + (( paren_depth-- )) + continue + fi + [[ $arg[i+1] == ')' ]] && { (( i++ )); break; } + # Special case ) at the end of the buffer to avoid flashing command substitution for a character + (( has_end && (len == k) )) && break + # This is a single paren and there are no open parens, so this isn't an arithmetic expansion + return 1 + ;; + '`') + saved_reply=($reply) + _zsh_highlight_main_highlighter_highlight_backtick $i + (( i = REPLY )) + reply=($saved_reply $reply) + continue + ;; + '$' ) + if [[ $arg[i+1] == $'\x28' ]]; then + saved_reply=($reply) + if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i; then + # Arithmetic expansion + (( i = REPLY )) + reply=($saved_reply $reply) + continue + fi + + (( i += 2 )) + _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] + ret=$? + (( i += REPLY )) + reply=( + $saved_reply + $j $(( start_pos + i )) command-substitution-quoted + $j $(( j + 2 )) command-substitution-delimiter-quoted + $reply + ) + if (( ret == 0 )); then + reply+=($(( start_pos + i - 1 )) $(( start_pos + i )) command-substitution-delimiter) + fi + continue + else + continue + fi + ;; + ($histchars[1]) # ! - may be a history expansion + if [[ $arg[i+1] != ('='|$'\x28'|$'\x7b'|[[:blank:]]) ]]; then + style=history-expansion + else + continue + fi + ;; + *) + continue + ;; + + esac + reply+=($j $k $style) + done + + if [[ $arg[i] != ')' ]]; then + # If unclosed, i points past the end + (( i-- )) + fi + style=arithmetic-expansion + reply=($(( start_pos + $1 - 1)) $(( start_pos + i )) arithmetic-expansion $reply) + REPLY=$i +} + + +# Called with a single positional argument. +# Perform filename expansion (tilde expansion) on the argument and set $REPLY to the expanded value. +# +# Does not perform filename generation (globbing). +_zsh_highlight_main_highlighter_expand_path() +{ + (( $# == 1 )) || print -r -- >&2 "zsh-syntax-highlighting: BUG: _zsh_highlight_main_highlighter_expand_path: called without argument" + + # The $~1 syntax normally performs filename generation, but not when it's on the right-hand side of ${x:=y}. + setopt localoptions nonomatch + unset REPLY + : ${REPLY:=${(Q)${~1}}} +} + +# ------------------------------------------------------------------------------------------------- +# Main highlighter initialization +# ------------------------------------------------------------------------------------------------- + +_zsh_highlight_main__precmd_hook() { + # Unset the WARN_NESTED_VAR option, taking care not to error if the option + # doesn't exist (zsh older than zsh-5.3.1-test-2). + setopt localoptions + if eval '[[ -o warnnestedvar ]]' 2>/dev/null; then + unsetopt warnnestedvar + fi + + _zsh_highlight_main__command_type_cache=() +} + +autoload -Uz add-zsh-hook +if add-zsh-hook precmd _zsh_highlight_main__precmd_hook 2>/dev/null; then + # Initialize command type cache + typeset -gA _zsh_highlight_main__command_type_cache +else + print -r -- >&2 'zsh-syntax-highlighting: Failed to load add-zsh-hook. Some speed optimizations will not be used.' + # Make sure the cache is unset + unset _zsh_highlight_main__command_type_cache +fi +typeset -ga ZSH_HIGHLIGHT_DIRS_BLACKLIST diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position1.zsh new file mode 100644 index 00000000..cfc12a5f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position1.zsh @@ -0,0 +1,35 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'/' + +expected_region_highlight=( + '1 1 path_prefix' # / +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position1b.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position1b.zsh new file mode 100644 index 00000000..88fe60c9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position1b.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt autocd +BUFFER=$'/' + +expected_region_highlight=( + '1 1 autodirectory' # / +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position2.zsh new file mode 100644 index 00000000..5033d2c4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position2.zsh @@ -0,0 +1,35 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'/bi' + +expected_region_highlight=( + '1 3 path_prefix' # /bi +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position3.zsh new file mode 100644 index 00000000..415e3167 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position3.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'/bin; /bin' + +expected_region_highlight=( + '1 4 unknown-token' # /bin (in middle) + '5 5 commandseparator' # ; + '7 10 path_prefix' # /bin (at end) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position3b.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position3b.zsh new file mode 100644 index 00000000..0e65c98a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position3b.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt autocd +BUFFER=$'/bin; /bin' + +expected_region_highlight=( + '1 4 autodirectory' # /bin (in middle) + '5 5 commandseparator' # ; + '7 10 autodirectory' # /bin (at end) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position4.zsh new file mode 100644 index 00000000..9e935bf1 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position4.zsh @@ -0,0 +1,35 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'/bin/s' + +expected_region_highlight=( + '1 6 path_prefix' # /bin/s +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position5.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position5.zsh new file mode 100644 index 00000000..e428b1a0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/abspath-in-command-position5.zsh @@ -0,0 +1,35 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'/bin/sh' + +expected_region_highlight=( + '1 7 command' # /bin/sh +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-assignment1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-assignment1.zsh new file mode 100644 index 00000000..0c101c8e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-assignment1.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Issue #263 (more-pathological case): aliases[x=y]=z works; the ${(z)} splitter considers +# that a single word; but it's not looked up as an alias. Hence, highlight it as an error. +aliases[x=y]='lorem ipsum dolor sit amet' +BUFFER='x=y ls' + +expected_region_highlight=( + "1 3 unknown-token" # x=y + "5 6 default" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-basic.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-basic.zsh new file mode 100644 index 00000000..7af8b7cd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-basic.zsh @@ -0,0 +1,35 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias foo="echo hello world" +BUFFER="foo" + +expected_region_highlight+=( + "1 3 alias" # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-brackets.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-brackets.zsh new file mode 100644 index 00000000..ede6c9a9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-brackets.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2021 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Have to use cat here as it must be a command that exists. +# Otherwise, the test would fail with the first token being recognized +# as an "unknown-token". +alias ]=cat + +BUFFER='] /' + +expected_region_highlight=( + '1 1 alias' # ] + '3 3 path' # / +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-command-substitution.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-command-substitution.zsh new file mode 100644 index 00000000..a7b77dfa --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-command-substitution.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Alias must be at least 4 characters to test the regression +# cf. 139ea2b189819c43cc251825981c116959b15cc3 +alias foobar='echo "$(echo foobar)"' +BUFFER='foobar' + +expected_region_highlight=( + "1 6 alias" # foobar +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-comment1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-comment1.zsh new file mode 100644 index 00000000..bae7ef6f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-comment1.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# see alias-comment2.zsh and comment-followed.zsh +setopt interactivecomments +alias x=$'# foo\npwd' +BUFFER='x' + +expected_region_highlight=( + '1 1 alias' # x +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-comment2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-comment2.zsh new file mode 100644 index 00000000..5a498229 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-comment2.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# see alias-comment1.zsh +setopt NO_interactivecomments +alias x=$'# foo\npwd' +BUFFER='x' + +expected_region_highlight=( + '1 1 unknown-token' # x (#) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-complex.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-complex.zsh new file mode 100644 index 00000000..5ad7c0a9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-complex.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias x='echo && ls; >' + +BUFFER='x file echo' + +expected_region_highlight=( + '1 1 alias' # x + '3 6 default' # file + '8 11 builtin' # echo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-empty.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-empty.zsh new file mode 100644 index 00000000..535fccc9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-empty.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias x='' + +BUFFER='x echo foo' + +expected_region_highlight=( + '1 1 alias' # x + '3 6 builtin' # echo + '8 10 default' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-eponymous1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-eponymous1.zsh new file mode 100644 index 00000000..2642e14f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-eponymous1.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias ls='command ls' + +BUFFER='ls' + +expected_region_highlight=( + "1 2 alias" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-eponymous2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-eponymous2.zsh new file mode 100644 index 00000000..dcd85653 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-eponymous2.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias ls=tmp tmp='command ls' + +BUFFER='ls' + +expected_region_highlight=( + "1 2 alias" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-in-cmdsubst.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-in-cmdsubst.zsh new file mode 100644 index 00000000..b3cf777a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-in-cmdsubst.zsh @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias p='print -r --' + +BUFFER=$'s=$(p foo)' + +expected_region_highlight=( + '1 10 assign' # s=$(p foo) + '3 10 default' # $(p foo) + '3 10 command-substitution-unquoted' # $(p foo) + '3 4 command-substitution-delimiter-unquoted' # $( + '5 5 alias' # p + '7 9 default' # foo + '10 10 command-substitution-delimiter-unquoted' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-loop.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-loop.zsh new file mode 100644 index 00000000..83992dbf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-loop.zsh @@ -0,0 +1,44 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +function b() {} # beware of ALIAS_FUNC_DEF +alias a=b b=c c=b + +BUFFER='a foo; :' + +expected_region_highlight=( + # An alias is ineligible for expansion whilst it's being expanded. + # Therefore, the "b" in the expansion of the alias "c" is not considered + # as an alias. + '1 1 alias' # a + '3 5 default' # foo + '6 6 commandseparator' # ; + '8 8 builtin' # : +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-loop2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-loop2.zsh new file mode 100644 index 00000000..29e04ace --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-loop2.zsh @@ -0,0 +1,35 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias ls="ls" +BUFFER="ls" + +expected_region_highlight+=( + "1 2 alias" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-nested-precommand.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-nested-precommand.zsh new file mode 100644 index 00000000..6d4172bc --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-nested-precommand.zsh @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=b b=sudo +sudo(){} + +BUFFER='a -u phy1729 echo; :' + +expected_region_highlight=( + '1 1 alias' # a + '3 4 single-hyphen-option' # -u + '6 12 default' # phy1729 + '14 17 builtin' # echo + '18 18 commandseparator' # ; + '20 20 builtin' # : +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-nested.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-nested.zsh new file mode 100644 index 00000000..b24b4967 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-nested.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=b b=: + +BUFFER='a foo; :' + +expected_region_highlight=( + '1 1 alias' # a + '3 5 default' # foo + '6 6 commandseparator' # ; + '8 8 builtin' # : +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-parameter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-parameter.zsh new file mode 100644 index 00000000..21bc6b32 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-parameter.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias '$foo'='echo alias' +local foo; foo=(echo param) + +BUFFER='$foo' + +expected_region_highlight=( + '1 4 alias' # $foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument1.zsh new file mode 100644 index 00000000..2d1f35c6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument1.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# See also param-precommand-option-argument1.zsh +alias sudo_u='sudo -u' +sudo(){} + +BUFFER='sudo_u phy1729 echo foo' + +expected_region_highlight=( + '1 6 alias' # sudo_u + '8 14 default' # phy1729 + '17 19 command "issue #540"' # echo (not builtin) + '21 23 default' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument2.zsh new file mode 100644 index 00000000..fbc6eec7 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument2.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias sudo_b='sudo -b' +alias sudo_b_u='sudo_b -u' +sudo(){} + +BUFFER='sudo_b_u phy1729 echo foo' + +expected_region_highlight=( + '1 8 alias' # sudo_b_u + '10 16 default' # phy1729 + '18 21 command "issue #540"' # echo (not builtin) + '23 25 default' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument3.zsh new file mode 100644 index 00000000..373f12b6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument3.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# See also param-precommand-option-argument3.zsh +alias sudo_u='sudo -u' +sudo(){} + +BUFFER='sudo_u phy1729 ls foo' + +expected_region_highlight=( + '1 6 alias' # sudo_u + '8 14 default' # phy1729 + '16 17 command' # ls + '19 21 default' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument4.zsh new file mode 100644 index 00000000..d47dccb8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-precommand-option-argument4.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias sudo_b='sudo -b' +alias sudo_b_u='sudo_b -u' +sudo(){} + +BUFFER='sudo_b_u phy1729 ls foo' + +expected_region_highlight=( + '1 8 alias' # sudo_b_u + '10 16 default' # phy1729 + '18 19 command' # ls + '21 23 default' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-quoted.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-quoted.zsh new file mode 100644 index 00000000..e42e2f0a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-quoted.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) YYYY zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=: ls='ls -l' +BUFFER='"a" foo; \ls' + +expected_region_highlight=( + '1 3 unknown-token' # "a" + '5 7 default' # foo + '8 8 commandseparator' # ; + '10 12 command' # \ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-redirect.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-redirect.zsh new file mode 100644 index 00000000..acc3dcbe --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-redirect.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias x=\> +BUFFER='x foo echo bar' + +expected_region_highlight=( + '1 1 alias' # x + '3 5 default' # foo + '7 10 builtin' # echo + '12 14 default' # bar +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse1.zsh new file mode 100644 index 00000000..1fd61a0b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse1.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=: b='a | a' + +BUFFER='b | b' + +expected_region_highlight=( + '1 1 alias' # b + '3 3 commandseparator' # | + '5 5 alias' # b +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse2.zsh new file mode 100644 index 00000000..37251fb9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse2.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=: b='a && a' + +BUFFER='b && b' + +expected_region_highlight=( + '1 1 alias' # b + '3 4 commandseparator' # && + '6 6 alias' # b +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse3.zsh new file mode 100644 index 00000000..5d7150a1 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse3.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=: b='a; a' + +BUFFER='b; b' + +expected_region_highlight=( + '1 1 alias' # b + '2 2 commandseparator' # ; + '4 4 alias' # b +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse4.zsh new file mode 100644 index 00000000..7ad7038c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse4.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=: b='a $(a)' + +BUFFER='b $(b)' + +expected_region_highlight=( + '1 1 alias' # b + '3 6 default' # $(b) + '3 6 command-substitution-unquoted' # $(b) + '3 4 command-substitution-delimiter-unquoted' # $( + '5 5 alias' # b + '6 6 command-substitution-delimiter-unquoted' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse5.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse5.zsh new file mode 100644 index 00000000..881401b2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-reuse5.zsh @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=: b='a < <(a)' + +BUFFER='b < <(b)' + +expected_region_highlight=( + '1 1 alias' # b + '3 3 redirection' # < + '5 8 default' # <(b) + '5 8 process-substitution' # <(b) + '5 6 process-substitution-delimiter' # <( + '7 7 alias' # b + '8 8 process-substitution-delimiter' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-self.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-self.zsh new file mode 100644 index 00000000..c6f12b1a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-self.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias echo='echo foo' + +BUFFER='echo bar' + +expected_region_highlight=( + '1 4 alias' # echo + '6 8 default' # bar +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-self2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-self2.zsh new file mode 100644 index 00000000..fd6ae03f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-self2.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias cat='cat | cat' + +BUFFER='cat' + +expected_region_highlight=( + '1 3 alias' # cat +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-to-dir.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-to-dir.zsh new file mode 100644 index 00000000..30390d42 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-to-dir.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias x=/ +BUFFER=$'x' + +expected_region_highlight=( + '1 1 unknown-token' # x (/) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-to-dir1b.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-to-dir1b.zsh new file mode 100644 index 00000000..62ec5213 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-to-dir1b.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt autocd +alias x=/ +BUFFER=$'x' + +expected_region_highlight=( + '1 1 alias' # x +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-unknown-token1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-unknown-token1.zsh new file mode 100644 index 00000000..9c996bfe --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-unknown-token1.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=b b=foo + +BUFFER='a ' + +expected_region_highlight=( + '1 1 unknown-token' # a +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-unknown-token2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-unknown-token2.zsh new file mode 100644 index 00000000..ab9facd6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias-unknown-token2.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a='() { ls "$@" ; foo }' + +BUFFER='a ' + +expected_region_highlight=( + '1 1 unknown-token' # a +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias.zsh new file mode 100644 index 00000000..4cafa804 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/alias.zsh @@ -0,0 +1,53 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias alias1="ls" +alias -s alias2="echo" +function alias1() {} # to check that it's highlighted as an alias, not as a function + +BUFFER='x.alias2; alias1; alias2' + +# Set expected_region_highlight as a function of zsh version. +# +# Highlight of suffix alias requires zsh-5.1.1 or newer; see issue #126, +# and commit 36403 to zsh itself. Therefore, check if the requisite zsh +# functionality is present, and skip verifying suffix-alias highlighting +# if it isn't. +expected_region_highlight=() +if zmodload -e zsh/parameter || [[ "$(type -w x.alias2)" == *suffix* ]]; then + expected_region_highlight+=( + "1 8 suffix-alias" # x.alias2 + ) +fi +expected_region_highlight+=( + "9 9 commandseparator" # ; + "11 16 alias" # alias1 + "17 17 commandseparator" # ; + "19 24 unknown-token" # alias2 +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always1.zsh new file mode 100644 index 00000000..ae40a72f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always1.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='{ ls } always { pwd }' + +expected_region_highlight=( + '1 1 reserved-word' # { + '3 4 command' # ls + '6 6 reserved-word' # } + '8 13 reserved-word' # always + '15 15 reserved-word' # { + '17 19 builtin' # pwd + '21 21 reserved-word' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always2.zsh new file mode 100644 index 00000000..991137c2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always2.zsh @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'{\nls\n} always { pwd }' + +expected_region_highlight=( + '1 1 reserved-word' # { + '2 2 commandseparator' # \n + '3 4 command' # ls + '5 5 commandseparator' # \n + '6 6 reserved-word' # } + '8 13 reserved-word' # always + '15 15 reserved-word' # { + '17 19 builtin' # pwd + '21 21 reserved-word' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always3.zsh new file mode 100644 index 00000000..d41beeb5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/always3.zsh @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt ignorebraces +BUFFER='echo { foo } always { bar }' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 6 default' # { + '8 10 default' # foo + '12 12 default' # } + '14 19 default' # always + '21 21 default' # { + '23 25 default' # bar + '27 27 default' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/anonymous-function.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/anonymous-function.zsh new file mode 100644 index 00000000..9d67fb1d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/anonymous-function.zsh @@ -0,0 +1,44 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='() echo hello; () { echo world } "argument"' + +expected_region_highlight=( + "1 2 reserved-word" # () + "4 7 builtin" # echo + "9 13 default" # hello + "14 14 commandseparator" # ; + "16 17 reserved-word" # () + "19 19 reserved-word" # { + "21 24 builtin" # echo + "26 30 default" # world + "32 32 reserved-word" # } + "34 43 default" # "argument" + "34 43 double-quoted-argument" # "argument" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arg0-colon.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arg0-colon.zsh new file mode 100644 index 00000000..8955bd28 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arg0-colon.zsh @@ -0,0 +1,35 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=''\''x: /' + +expected_region_highlight=( + '1 5 unknown-token' # \'x: / +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith-cmdsubst-mess.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith-cmdsubst-mess.zsh new file mode 100644 index 00000000..82268ac1 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith-cmdsubst-mess.zsh @@ -0,0 +1,46 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $((ls); (ls))' + +expected_region_highlight=( + '1 1 builtin' # : + '3 15 default' # $((ls); (ls)) + '3 15 command-substitution-unquoted' # $((ls); (ls)) + '3 4 command-substitution-delimiter-unquoted' # $( + '5 5 reserved-word' # ( + '6 7 command' # ls + '8 8 reserved-word' # ) + '9 9 commandseparator' # ; + '11 11 reserved-word' # ( + '12 13 command' # ls + '14 14 reserved-word' # ) + '15 15 command-substitution-delimiter-unquoted' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith1.zsh new file mode 100644 index 00000000..0462f738 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith1.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(( 6 * 9 ))' + +expected_region_highlight=( + '1 1 builtin' # : + '3 14 default' # $(( 6 * 9 )) + '3 14 arithmetic-expansion' # $(( 6 * 9 )) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith2.zsh new file mode 100644 index 00000000..af981d7c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arith2.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': "$(( 6 * 9 ))"' + +expected_region_highlight=( + '1 1 builtin' # : + '3 16 default' # "$(( 6 * 9 ))" + '3 16 double-quoted-argument' # "$(( 6 * 9 ))" + '4 15 arithmetic-expansion' # $(( 6 * 9 )) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-command-substitution.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-command-substitution.zsh new file mode 100644 index 00000000..07db0fb2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-command-substitution.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(( $(echo 2) + 2 ))' + +expected_region_highlight=( + '1 1 builtin' # : + '3 22 default' # $(( $(echo 2) + 2 )) + '3 22 arithmetic-expansion' # $(( $(echo 2) + 2 )) + '7 15 command-substitution-quoted' # $(echo 2) + '7 8 command-substitution-delimiter-quoted' # $( + '9 12 builtin' # echo + '14 14 default' # 2 + '15 15 command-substitution-delimiter' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-doubled-parens.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-doubled-parens.zsh new file mode 100644 index 00000000..d582d67c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-doubled-parens.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(( ((42)) ))' + +expected_region_highlight=( + '1 1 builtin' # : + '3 15 default' # $(( ((42)) )) + '3 15 arithmetic-expansion' # $(( ((42)) )) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-empty.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-empty.zsh new file mode 100644 index 00000000..bd759966 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-empty.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': "foo"$(())"bar"' + +expected_region_highlight=( + '1 1 builtin' # : + '3 17 default' # "foo"$(())"bar" + '3 7 double-quoted-argument' # "foo" + '8 12 arithmetic-expansion' # $(()) + '13 17 double-quoted-argument' # "bar" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-evaluation.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-evaluation.zsh new file mode 100644 index 00000000..e0eb6e75 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-evaluation.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Must be at command word, since the word following 'if' isn't currently considered +# a command word (issue #207). +# +# An opening '((' without matching '))' is highlighted correctly under zsh-5.1.1-52-g4bed2cf +# or newer, only (issue #188). +BUFFER='(( x == 42 ))' + +expected_region_highlight=( + "1 2 reserved-word" # (( + "12 13 reserved-word" # )) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-hist-expn.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-hist-expn.zsh new file mode 100644 index 00000000..79af7233 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-hist-expn.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(( \!\! ))' + +expected_region_highlight=( + '1 1 builtin' # : + '3 11 default' # $(( !! )) + '3 11 arithmetic-expansion' # $(( !! )) + '7 8 history-expansion "issue #713"' # !! +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-invalid-chars.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-invalid-chars.zsh new file mode 100644 index 00000000..9ace4383 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-invalid-chars.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(( 0 * 1\'\'000 ))' + +expected_region_highlight=( + '1 1 builtin' # : + '3 19 default' # $(( 0 * 1\'\'000 )) + '3 19 arithmetic-expansion' # $(( 0 * 1\'\'000 )) + '12 12 unknown-token' # \' + '13 13 unknown-token' # \' +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-multiplication.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-multiplication.zsh new file mode 100644 index 00000000..65df0c9f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-multiplication.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': foo*$(( 42 * 1729 ))*bar' + +expected_region_highlight=( + '1 1 builtin' # : + '3 26 default' # foo*$(( 42 * 1729 ))*bar + '6 6 globbing' # * + '7 22 arithmetic-expansion' # $(( 42 * 1729 )) + '23 23 globbing' # * +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-nested.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-nested.zsh new file mode 100644 index 00000000..d734cd34 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-nested.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(( $(( 1 + 2 )) * 3 ))' + +expected_region_highlight=( + '1 1 builtin' # : + '3 25 default' # $(( $(( 1 + 2 )) * 3 )) + '3 25 arithmetic-expansion' # $(( $(( 1 + 2 )) * 3 )) + '7 18 arithmetic-expansion' # $(( 1 + 2 )) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-quoted.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-quoted.zsh new file mode 100644 index 00000000..917ddf78 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-quoted.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': "$(( 1 + 1 ))"' + +expected_region_highlight=( + '1 1 builtin' # : + '3 16 default' # "$(( 1 + 1 ))" + '3 16 double-quoted-argument' # "$(( 1 + 1 ))" + '4 15 arithmetic-expansion' # $(( 1 + 1 )) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-unclosed.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-unclosed.zsh new file mode 100644 index 00000000..aa4eac7a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-unclosed.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(( 1' + +expected_region_highlight=( + '1 1 builtin' # : + '3 7 default' # $(( 1 + '3 7 arithmetic-expansion' # $(( 1 +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-unfinished.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-unfinished.zsh new file mode 100644 index 00000000..916c3dad --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/arithmetic-unfinished.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(( 1729 )' + +expected_region_highlight=( + '1 1 builtin' # : + '3 12 default' # $(( 1729 ) + '3 12 arithmetic-expansion' # $(( 1729 ) +) + +if [[ ${(z):-'$('} == '$( ' ]]; then # ignore zsh 5.0.8 bug + expected_region_highlight[2]='3 13 default' # $(( 1729 ) +fi diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep1.zsh new file mode 100644 index 00000000..2fd55c03 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep1.zsh @@ -0,0 +1,45 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'a=( foo | bar )' +bar(){} + +expected_region_highlight=( + '1 3 assign' # a=( + '3 3 reserved-word' # ( + '5 7 default' # foo + '9 9 unknown-token' # | + # zsh reports a parse error at this point. Nevertheless, we test how we + # highlight the remainder of $BUFFER. Currently we recover by treating the pipe + # as a command separator. That's not the only reasonable behaviour, though; if + # we change the behaviour, we should adjust the following expectations accordingly. + '11 13 function' # bar + '15 15 unknown-token' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep2.zsh new file mode 100644 index 00000000..0bda6761 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep2.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'a=( foo ; bar )' + +expected_region_highlight=( + '1 3 assign' # a=( + '3 3 reserved-word' # ( + '5 7 default' # foo + '9 9 unknown-token' # ; (not commandseparator; see highlighter source code) + '11 13 default' # bar + '15 15 assign' # ) + '15 15 reserved-word' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep3.zsh new file mode 100644 index 00000000..b4b3687c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/array-cmdsep3.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'a=( foo \n bar )' + +expected_region_highlight=( + '1 3 assign' # a=( + '3 3 reserved-word' # ( + '5 7 default' # foo + '9 9 commandseparator' # \n + '11 13 default' # bar + '15 15 assign' # ) + '15 15 reserved-word' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-append.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-append.zsh new file mode 100644 index 00000000..feb68e53 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-append.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='a+=(lorem ipsum)' + +expected_region_highlight=( + "1 4 assign" # a+=( + "4 4 reserved-word" # ( + "5 9 default" # lorem + "11 15 default" # ipsum + "16 16 assign" # ) + "16 16 reserved-word" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-argv.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-argv.zsh new file mode 100644 index 00000000..ec5acc24 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-argv.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch foo +BUFFER='42=foo 43+=bar' + +expected_region_highlight=( + "1 6 assign" # 42=foo + "4 6 path" # foo + "8 14 assign" # 43+=bar + "12 14 default" # bar +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array.zsh new file mode 100644 index 00000000..ef0a6669 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='(A=(hello world))' + +expected_region_highlight=( + "1 1 reserved-word" # ( + "2 4 assign" # A=( + "4 4 reserved-word" # ( + "5 9 default" # hello + "11 15 default" # world + "16 16 assign" # ) + "16 16 reserved-word" # ) + "17 17 reserved-word" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array2.zsh new file mode 100644 index 00000000..2d487211 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array2.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='A=(hello world) ls' + +expected_region_highlight=( + "1 3 assign" # A=( + "3 3 reserved-word" # ( + "4 8 default" # hello + "10 14 default" # world + "15 15 assign" # ) + "15 15 reserved-word" # ) + "17 18 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array3.zsh new file mode 100644 index 00000000..5eb645e6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-array3.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='A=(hello world) b=42' + +expected_region_highlight=( + "1 3 assign" # A=( + "3 3 reserved-word" # ( + "4 8 default" # hello + "10 14 default" # world + "15 15 assign" # ) + "15 15 reserved-word" # ) + "17 20 assign" # b=42 + "19 20 default" # 42 +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-invalid-command.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-invalid-command.zsh new file mode 100644 index 00000000..557327e8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-invalid-command.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'x=y nosuchcommand' + +expected_region_highlight=( + '1 3 assign' # x=y + '3 3 default' # y + '5 17 unknown-token' # nosuchcommand +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-not-array.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-not-array.zsh new file mode 100644 index 00000000..651ab80a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-not-array.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='a=foo( bar ) :' + +expected_region_highlight=( + '1 12 assign' # a=foo( bar ) + '3 12 default' # foo( bar ) + '14 14 builtin' # : +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-not-array2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-not-array2.zsh new file mode 100644 index 00000000..dfda106e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-not-array2.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='a=foo\( :' + +expected_region_highlight=( + '1 7 assign' # a=foo\( + '3 7 default' # foo\( + '9 9 builtin' # : +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-quoted-cmdsubst.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-quoted-cmdsubst.zsh new file mode 100644 index 00000000..d4a62dfa --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-quoted-cmdsubst.zsh @@ -0,0 +1,45 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'x="$(ls x y z)"' + +expected_region_highlight=( + '1 15 assign' # x="$(ls x y z)" + '3 15 default' # "$(ls x y z)" + '3 3 double-quoted-argument' # " + '15 15 double-quoted-argument' # " + '4 14 command-substitution-quoted' # $(ls x y z) + '4 5 command-substitution-delimiter-quoted' # $( + '6 7 command' # ls + '9 9 default' # x + '11 11 default' # y + '13 13 default' # z + '14 14 command-substitution-delimiter-quoted' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-semicolon.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-semicolon.zsh new file mode 100644 index 00000000..f748c94e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-semicolon.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='A=1; echo hello world' + +expected_region_highlight=( + "1 3 assign" # A=1 + "3 3 default" # 1 + "4 4 commandseparator" # ; + "6 9 builtin" # echo + "11 15 default" # hello + "17 21 default" # world +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-subshell.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-subshell.zsh new file mode 100644 index 00000000..20228893 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-subshell.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='(A=1)' + +expected_region_highlight=( + "1 1 reserved-word" # ( + "2 4 assign" # A=1 + "4 4 default" # 1 + "5 5 reserved-word" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-value-quote1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-value-quote1.zsh new file mode 100644 index 00000000..b6d04fe0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-value-quote1.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'s="foo\'bar"' + +expected_region_highlight=( + '1 11 assign' # s="foo'bar" + '3 11 default' # "foo'bar" + '3 11 double-quoted-argument' # "foo'bar" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-value-quote2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-value-quote2.zsh new file mode 100644 index 00000000..3c5f93b4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign-value-quote2.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'s="foo \'\' bar"' + +expected_region_highlight=( + '1 14 assign' # s="foo '' bar" + '3 14 default' # "foo '' bar" + '3 14 double-quoted-argument' # "foo '' bar" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign.zsh new file mode 100644 index 00000000..c6e8532d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assign.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='A=1 b=("foo" bar)' + +expected_region_highlight=( + "1 3 assign" # A=1 + "3 3 default" # 1 + "5 7 assign" # b=( + "7 7 reserved-word" # ( + "8 12 default" # "foo" + "8 12 double-quoted-argument" # "foo" + "14 16 default" # bar + "17 17 assign" # ) + "17 17 reserved-word" # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword1.zsh new file mode 100644 index 00000000..b271d4aa --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword1.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=bar { :; }' + +expected_region_highlight=( + '1 7 assign' # foo=bar + '5 7 default' # bar + '9 9 unknown-token' # { + '11 11 builtin' # : + '12 12 commandseparator' # ; + '14 14 reserved-word' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword2.zsh new file mode 100644 index 00000000..247e41eb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword2.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=bar ( :; )' + +expected_region_highlight=( + '1 7 assign' # foo=bar + '5 7 default' # bar + '9 9 unknown-token' # ( + '11 11 builtin' # : + '12 12 commandseparator' # ; + '14 14 unknown-token' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword3.zsh new file mode 100644 index 00000000..52041895 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword3.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=bar (( foo ))' + +expected_region_highlight=( + '1 7 assign' # foo=bar + '5 7 default' # bar + '9 17 unknown-token' # (( foo )) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword4.zsh new file mode 100644 index 00000000..cc3d5231 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword4.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=bar [[ -n foo ]]' + +expected_region_highlight=( + '1 7 assign' # foo=bar + '5 7 default' # bar + '9 10 unknown-token' # [[ + '12 13 single-hyphen-option' # -n + '15 17 default' # foo + '19 20 reserved-word' # ]] +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword5.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword5.zsh new file mode 100644 index 00000000..33f1ed14 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-before-resword5.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=bar \! :' + +expected_region_highlight=( + '1 7 assign' # foo=bar + '5 7 default' # bar + '9 9 unknown-token' # \! + '11 11 builtin' # : +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-quoted.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-quoted.zsh new file mode 100644 index 00000000..18638adb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/assignment-quoted.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'1="foo"' + +expected_region_highlight=( + '1 7 assign' # 1="foo" + '3 7 default' # "foo" + '3 7 double-quoted-argument' # "foo" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/back-quoted-argument.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/back-quoted-argument.zsh new file mode 100644 index 00000000..d504a2c7 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/back-quoted-argument.zsh @@ -0,0 +1,58 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo `echo \`42\`` "is `echo equal` to" `echo 6 times 9' + +expected_region_highlight=( + "1 4 builtin" # echo + "6 18 default" # `echo \`42\`` + "6 18 back-quoted-argument" # `echo \`42\`` + "6 6 back-quoted-argument-delimiter" # ` + "7 10 builtin" # echo + "12 17 default" # \`42\` + "12 17 back-quoted-argument" # \`42\` + "12 13 back-quoted-argument-delimiter" # \` + "14 15 unknown-token" # 42 + "16 17 back-quoted-argument-delimiter" # \` + "18 18 back-quoted-argument-delimiter" # ` + "20 39 default" # "is `echo equal` to" + "20 39 double-quoted-argument" # "is `echo equal` to" + "24 35 back-quoted-argument" # `echo equal` + "24 24 back-quoted-argument-delimiter" # ` + "25 28 builtin" # echo + "30 34 default" # equal + "35 35 back-quoted-argument-delimiter" # ` + "41 55 default" # `echo 6 times 9 + "41 55 back-quoted-argument-unclosed" # `echo 6 times 9 + "41 41 back-quoted-argument-delimiter" # ` + "42 45 builtin" # echo + "47 47 default" # 6 + "49 53 default" # times + "55 55 default" # 9 +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/back-quoted-open.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/back-quoted-open.zsh new file mode 100644 index 00000000..f188d811 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/back-quoted-open.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch foo +BUFFER=$': `ls fo' + +expected_region_highlight=( + '1 1 builtin' # : + '3 8 default' # `ls fo + '3 8 back-quoted-argument-unclosed' # `ls fo + '3 3 back-quoted-argument-delimiter' # ` + '4 5 command' # ls + '7 8 path_prefix' # fo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-continuation.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-continuation.zsh new file mode 100644 index 00000000..ebcf2e17 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-continuation.zsh @@ -0,0 +1,35 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +PREBUFFER=$'echo \\\n' +BUFFER='noglob' + +expected_region_highlight=( + "1 6 default" # 'noglob' highlighted as a string, not as a precomand +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-continuation2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-continuation2.zsh new file mode 100644 index 00000000..9e2ca623 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-continuation2.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'echo foo\\\nbar"baz"' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 18 default "issue #705"' # foo\\\nbar"baz" + '14 18 double-quoted-argument "issue #705"' # "baz" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-space.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-space.zsh new file mode 100644 index 00000000..0d8a63c1 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash-space.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'echo \\ \'foo\' ; ls' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 12 default' # \ \'foo\' + '8 12 single-quoted-argument' # 'foo' + '14 14 commandseparator' # ; + '16 17 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash.zsh new file mode 100644 index 00000000..ea0977f6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/backslash.zsh @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'\\' + +expected_region_highlight=( + '1 1 unknown-token' # \\ +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-assign-array.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-assign-array.zsh new file mode 100644 index 00000000..a54cf2d0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-assign-array.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=(bar abaz) \! ls' + +expected_region_highlight=( + '1 5 assign' # foo=( + '5 5 reserved-word' # ( + '6 8 default' # bar + '10 13 default' # abaz + '14 14 assign' # ) + '14 14 reserved-word' # ) + '16 16 unknown-token' # \! + '18 19 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-assign-scalar.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-assign-scalar.zsh new file mode 100644 index 00000000..e9190500 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-assign-scalar.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=bar \! ls' + +expected_region_highlight=( + '1 7 assign' # foo=bar + '5 7 default' # bar + '9 9 unknown-token' # \! + '11 12 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-pipeline.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-pipeline.zsh new file mode 100644 index 00000000..fef25f10 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/bang-pipeline.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'\! ls | \! ls' + +expected_region_highlight=( + '1 1 reserved-word' # \! + '3 4 command' # ls + '6 6 commandseparator' # | + '8 8 unknown-token' # \! + '10 11 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/block-assignment-no-command.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/block-assignment-no-command.zsh new file mode 100644 index 00000000..ec52c987 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/block-assignment-no-command.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2022 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'{ a=42 }' + +expected_region_highlight=( + '1 1 reserved-word' # { + '3 6 assign' # a=42 + '5 6 default' # 42 + '8 8 reserved word "issue #854"' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/braces1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/braces1.zsh new file mode 100644 index 00000000..3c5b1f0f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/braces1.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'() { echo }\n}' +# no special setopts + +expected_region_highlight=( + '1 2 reserved-word' # () + '4 4 reserved-word' # { + '6 9 builtin' # echo + '11 11 reserved-word' # } + '12 12 commandseparator' # \n + '13 13 unknown-token' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/braces2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/braces2.zsh new file mode 100644 index 00000000..a3ea7c95 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/braces2.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'() { echo }\n}' +setopt ignorebraces + +expected_region_highlight=( + '1 2 reserved-word' # () + '4 4 reserved-word' # { + '6 9 builtin' # echo + '11 11 default' # } + '12 12 commandseparator' # \n + '13 13 reserved-word' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-matching1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-matching1.zsh new file mode 100644 index 00000000..7cc6de54 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-matching1.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='[[ -n foo ]]' + +expected_region_highlight=( + '1 2 reserved-word' # [[ + '4 5 single-hyphen-option' # -n + '7 9 default' # foo + '11 12 reserved-word' # ]] +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-matching2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-matching2.zsh new file mode 100644 index 00000000..19c7f0d7 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-matching2.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='[ -n foo ]' + +expected_region_highlight=( + '1 1 builtin' # [ + '3 4 single-hyphen-option' # -n + '6 8 default' # foo + '10 10 builtin' # ] +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch1.zsh new file mode 100644 index 00000000..5e6e80f2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch1.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='() { echo foo )' + +expected_region_highlight=( + '1 2 reserved-word' # () + '4 4 reserved-word' # { + '6 9 builtin' # echo + '11 13 default' # foo + '15 15 unknown-token' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch10-if-negative.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch10-if-negative.zsh new file mode 100644 index 00000000..9d0b53c6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch10-if-negative.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='elif true; then echo two; fi' + +expected_region_highlight=( + '1 4 unknown-token' # elif + '6 9 builtin' # true + '10 10 commandseparator' # ; + '12 15 unknown-token' # then + '17 20 builtin' # echo + '22 24 default' # two + '25 25 commandseparator' # ; + '27 28 unknown-token' # fi +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch2.zsh new file mode 100644 index 00000000..2d98ac21 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch2.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='() ( echo foo }' + +expected_region_highlight=( + '1 2 reserved-word' # () + '4 4 reserved-word' # ( + '6 9 builtin' # echo + '11 13 default' # foo + '15 15 unknown-token' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch3.zsh new file mode 100644 index 00000000..e33040a8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch3.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo )' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 6 unknown-token' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch4.zsh new file mode 100644 index 00000000..a9b15dcd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch4.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo }' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 6 unknown-token' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch5.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch5.zsh new file mode 100644 index 00000000..21e8bb2b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch5.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo { }' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 6 default' # { + '8 8 unknown-token' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch6.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch6.zsh new file mode 100644 index 00000000..9df83883 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch6.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='(repeat 1; do)' + +expected_region_highlight=( + '1 1 reserved-word' # ( + '2 7 reserved-word' # repeat + '9 9 default' # 1 + '10 10 commandseparator' # ; + '12 13 reserved-word' # do + '14 14 unknown-token' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch7.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch7.zsh new file mode 100644 index 00000000..1caa936c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch7.zsh @@ -0,0 +1,45 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2012 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='for n in *; do echo $n; end' + +expected_region_highlight=( + '1 3 reserved-word' # for + '5 5 default' # n + '7 8 default' # in + '10 10 default' # * + '10 10 globbing' # * + '11 11 commandseparator' # ; + '13 14 reserved-word' # do + '16 19 builtin' # echo + '21 22 default' # $n + '23 23 commandseparator' # ; + '25 27 unknown-token' # end +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch8-if-positive.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch8-if-positive.zsh new file mode 100644 index 00000000..d6838f00 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch8-if-positive.zsh @@ -0,0 +1,53 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='if false; then echo one; elif true; then echo two; else echo three; fi' + +expected_region_highlight=( + '1 2 reserved-word' # if + '4 8 builtin' # false + '9 9 commandseparator' # ; + '11 14 reserved-word' # then + '16 19 builtin' # echo + '21 23 default' # one + '24 24 commandseparator' # ; + '26 29 reserved-word' # elif + '31 34 builtin' # true + '35 35 commandseparator' # ; + '37 40 reserved-word' # then + '42 45 builtin' # echo + '47 49 default' # two + '50 50 commandseparator' # ; + '52 55 reserved-word' # else + '57 60 builtin' # echo + '62 66 default' # three + '67 67 commandseparator' # ; + '69 70 reserved-word' # fi +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch8.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch8.zsh new file mode 100644 index 00000000..07a42e36 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch8.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='(ls&)' + +expected_region_highlight=( + '1 1 reserved-word' # ( + '2 3 command' # ls + '4 4 commandseparator' # & + '5 5 reserved-word' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch9-if-positive.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch9-if-positive.zsh new file mode 100644 index 00000000..87c1ba79 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-mismatch9-if-positive.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='if false; then echo one; fi' + +expected_region_highlight=( + '1 2 reserved-word' # if + '4 8 builtin' # false + '9 9 commandseparator' # ; + '11 14 reserved-word' # then + '16 19 builtin' # echo + '21 23 default' # one + '24 24 commandseparator' # ; + '26 27 reserved-word' # fi +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-premature-termination.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-premature-termination.zsh new file mode 100644 index 00000000..fa813da9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/brackets-premature-termination.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='[[ -n foo; echo ]]' + +expected_region_highlight=( + '1 2 reserved-word' # [[ + '4 5 single-hyphen-option' # -n + '7 9 default' # foo + '10 10 unknown-token' # ; + '12 15 builtin' # echo + '17 18 default' # ]] +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cdpath-abspath.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cdpath-abspath.zsh new file mode 100644 index 00000000..64707b2f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cdpath-abspath.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +cdpath=( $PWD ) +mkdir foo foo/bar + +BUFFER="/foo" + +expected_region_highlight=( + '1 4 unknown-token' # x (/) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cmdpos-elision-partial.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cmdpos-elision-partial.zsh new file mode 100644 index 00000000..6eda0d74 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cmdpos-elision-partial.zsh @@ -0,0 +1,44 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Test elision of some, but not all of the words +# See issue #667 for the case of eliding all words +local -a x; x=(sudo "") + +sudo(){} +BUFFER=$'$x -u phy1729 ls' + +expected_region_highlight=( + '1 2 precommand' # $x + # The "" is elided. If it weren't elided, the «ls» would be highlighted as an ordinary argument. + '4 5 single-hyphen-option' # -u + '7 13 default' # phy1729 + '15 16 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-adjacent.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-adjacent.zsh new file mode 100644 index 00000000..3d5c0b9e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-adjacent.zsh @@ -0,0 +1,45 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo "$(echo)$(echo)' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 20 default' # "$(echo)$(echo) + '6 6 double-quoted-argument-unclosed' # " + '7 13 command-substitution-quoted' # $(echo) + '7 8 command-substitution-delimiter-quoted' # $( + '9 12 builtin' # echo + '13 13 command-substitution-delimiter-quoted' # ) + '14 20 command-substitution-quoted' # $(echo) + '14 15 command-substitution-delimiter-quoted' # $( + '16 19 builtin' # echo + '20 20 command-substitution-delimiter-quoted' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-in-assignment.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-in-assignment.zsh new file mode 100644 index 00000000..fafda49c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-in-assignment.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=$(echo bar) :' + +expected_region_highlight=( + '1 15 assign' # foo=$(echo bar) + '5 15 default' # $(echo bar) + '5 15 command-substitution-unquoted' # $(echo bar) + '5 6 command-substitution-delimiter-unquoted' # $( + '7 10 builtin' # echo + '12 14 default' # bar + '15 15 command-substitution-delimiter-unquoted' # ) + '17 17 builtin' # : +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-unclosed.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-unclosed.zsh new file mode 100644 index 00000000..3229dfcf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/command-substitution-unclosed.zsh @@ -0,0 +1,45 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': foo$(echo bar' + +expected_region_highlight=( + '1 1 builtin' # : + '3 15 default' # foo$(echo bar + '6 15 command-substitution-unquoted' # $(echo bar + '6 7 command-substitution-delimiter-unquoted' # $( + '8 11 builtin' # echo + '13 15 default' # bar +) + +if [[ ${(z):-'$('} == '$( ' ]]; then # ignore zsh 5.0.8 bug + expected_region_highlight[2]='3 16 default' # foo$(echo bar + expected_region_highlight[3]='6 16 command-substitution-unquoted' # $(echo bar +fi diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/commandseparator.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/commandseparator.zsh new file mode 100644 index 00000000..f504847c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/commandseparator.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=':; pwd &! ls' + +expected_region_highlight=( + "1 1 builtin" # : + "2 2 commandseparator" # ; + "4 6 builtin" # pwd + "8 9 commandseparator" # &! + "11 12 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-followed.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-followed.zsh new file mode 100644 index 00000000..044f2830 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-followed.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# see alias-comment1.zsh +setopt interactivecomments +BUFFER=$'# foo\ntrue' + +expected_region_highlight=( + '1 5 comment' # # foo + '6 6 commandseparator' # \n + '7 10 builtin' # true +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-leading.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-leading.zsh new file mode 100644 index 00000000..b4c99105 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-leading.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt interactive_comments + +BUFFER='# echo foo' + +expected_region_highlight=( + "1 10 comment" # # echo foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-off.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-off.zsh new file mode 100644 index 00000000..0381bdb0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comment-off.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsetopt interactive_comments + +BUFFER='# echo foo' + +expected_region_highlight=( + "1 1 unknown-token" # # + "3 6 default" # " echo foo" + "8 10 default" # " echo foo" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comments.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comments.zsh new file mode 100644 index 00000000..f3cc57e4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/comments.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt interactive_comments + +BUFFER='echo "foo #bar" #baz # quux' + +expected_region_highlight=( + "1 4 builtin" # echo + "6 15 default" # "foo #bar" + "6 15 double-quoted-argument" # "foo #bar" + "17 27 comment" # #baz # quux +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/commmand-parameter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/commmand-parameter.zsh new file mode 100644 index 00000000..48d20ba8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/commmand-parameter.zsh @@ -0,0 +1,45 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +local x=/usr/bin/env +local y=sudo +local -a z; z=(zsh -f) +sudo(){} + +BUFFER='$x "argument"; $y; $z' + +expected_region_highlight=( + "1 2 command" # $x + "4 13 default" # "argument" + "4 13 double-quoted-argument" # "argument" + "14 14 commandseparator" # ; + "16 17 precommand" # $y (sudo) + "18 18 unknown-token" # ; + "20 21 command" # $z - 'zsh' being the command +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow.zsh new file mode 100644 index 00000000..a610bdc3 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow.zsh @@ -0,0 +1,57 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='while if echo Hello; then ls /; else ls; fi; do stat "x"; done; repeat 10 ls' + +expected_region_highlight+=( + "1 5 reserved-word" # while + "7 8 reserved-word" # if + "10 13 builtin" # echo + "15 19 default" # Hello + "20 20 commandseparator" # ; + "22 25 reserved-word" # then + "27 28 command" # ls + "30 30 path" # / + "31 31 commandseparator" # ; + "33 36 reserved-word" # else + "38 39 command" # ls + "40 40 commandseparator" # ; + "42 43 reserved-word" # fi + "44 44 commandseparator" # ; + "46 47 reserved-word" # do + "49 52 command" # stat + "54 56 default" # "x" + "54 56 double-quoted-argument" # "x" + "57 57 commandseparator" # ; + "59 62 reserved-word" # done + "63 63 commandseparator" # ; + "65 70 reserved-word" # repeat + "72 73 default" # 10 + "75 76 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow2.zsh new file mode 100644 index 00000000..acf99e1d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow2.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='repeat 42; do ls; done' + +expected_region_highlight+=( + "1 6 reserved-word" # repeat + "8 9 default" # 42 + "10 10 commandseparator" # ; + "12 13 reserved-word" # do + "15 16 command" # ls + "17 17 commandseparator" # ; + "19 22 reserved-word" # done +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow3.zsh new file mode 100644 index 00000000..58f507f9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/control-flow3.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='repeat 42; ls; pwd' + +expected_region_highlight+=( + "1 6 reserved-word" # repeat + "8 9 default" # 42 + "10 10 commandseparator" # ; + "12 13 command" # ls + "14 14 commandseparator" # ; + "16 18 builtin" # pwd +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cthulhu.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cthulhu.zsh new file mode 100644 index 00000000..c8119a84 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/cthulhu.zsh @@ -0,0 +1,70 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# 0000000 0 01111111111222222 222233333 3 333344 4 4 444444555555555 5 6 6666 6 6 6667777777777888 8 8 88888999 9 9999 9 9 00 00 0000001111 +# 1234567 8 90123456789012345 678901234 5 678901 2 3 456789012345678 9 0 1234 5 6 7890123456789012 3 4 56789012 3 4567 8 9 01 23 4567890123 +BUFFER=$'echo Ph\\\'ng`echo lui "mg"\\`echo lw\\\'nafh \\\\\\`echo Cthu"lhu\\\\\\` R\\\\\'ly$(echo eh wag\\\\\\`echo h\\\'nag\\\\\\`\'l\' fht)agn`' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 113 default' # Ph\'ng`echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn` + '12 113 back-quoted-argument' # `echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn` + '12 12 back-quoted-argument-delimiter' # ` + '13 16 builtin' # echo + '18 20 default' # lui + '22 112 default' # "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn + '22 25 double-quoted-argument' # "mg" + '26 112 back-quoted-argument-unclosed' # \`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn + '26 27 back-quoted-argument-delimiter' # \` + '28 31 builtin' # echo + '33 40 default' # lw\'nafh + '42 62 default' # \\\`echo Cthu"lhu\\\` + '42 62 back-quoted-argument' # \\\`echo Cthu"lhu\\\` + '42 45 back-quoted-argument-delimiter' # \\\` + '46 49 builtin' # echo + '51 58 default' # Cthu"lhu + '55 58 double-quoted-argument-unclosed' # "lhu + '59 62 back-quoted-argument-delimiter' # \\\` + '64 112 default' # R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn + '70 109 command-substitution-unquoted' # $(echo eh wag\\\`echo h\'nag\\\`'l' fht) + '70 71 command-substitution-delimiter-unquoted' # $( + '72 75 builtin' # echo + '77 78 default' # eh + '80 104 default' # wag\\\`echo h\'nag\\\`'l' + '83 101 back-quoted-argument' # \\\`echo h\'nag\\\` + '83 86 back-quoted-argument-delimiter' # \\\` + '87 90 builtin' # echo + '92 97 default' # h\'nag + '98 101 back-quoted-argument-delimiter' # \\\` + '102 104 single-quoted-argument' # 'l' + '106 108 default' # fht + '109 109 command-substitution-delimiter-unquoted' # ) + '113 113 unknown-token' # ` +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dinbrack1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dinbrack1.zsh new file mode 100644 index 00000000..e2279d6b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dinbrack1.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'[[ foo && bar || baz ]]' + +expected_region_highlight=( + '1 2 reserved-word' # [[ + '4 6 default' # foo + '8 9 default' # && + '11 13 default' # bar + '15 16 default' # || + '18 20 default' # baz + '22 23 reserved-word' # ]] +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dirs_blacklist.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dirs_blacklist.zsh new file mode 100644 index 00000000..2d0222f0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dirs_blacklist.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +mkdir foo +touch foo/bar +BUFFER=": foo/bar $PWD/foo foo/b" +ZSH_HIGHLIGHT_DIRS_BLACKLIST=($PWD/foo $PWD/bar) + +expected_region_highlight=( + '1 1 builtin' # : + '3 9 default' # foo/bar + "11 $(( 14 + $#PWD )) default" # $PWD/foo + "$(( 16 + $#PWD )) $(( 20 + $#PWD )) default" # foo/b +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-dollar.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-dollar.zsh new file mode 100644 index 00000000..e3f387ce --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-dollar.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': "$$ $$foo"' + +expected_region_highlight=( + '1 1 builtin' # : + '3 12 default' # "$$ $$foo" + '3 12 double-quoted-argument' # "$$ $$foo" + '4 5 dollar-double-quoted-argument' # $$ + '7 8 dollar-double-quoted-argument' # $$ +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-noise.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-noise.zsh new file mode 100644 index 00000000..9bb11bd8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-noise.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': "$- $# $* $@ $?"' + +expected_region_highlight=( + '1 1 builtin' # : + '3 18 default' # "$- $# $* $@ $?" + '3 18 double-quoted-argument' # "$- $# $* $@ $?" + '4 5 dollar-double-quoted-argument' # $- + '7 8 dollar-double-quoted-argument' # $# + '10 11 dollar-double-quoted-argument' # $* + '13 14 dollar-double-quoted-argument' # $@ + '16 17 dollar-double-quoted-argument' # $? +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-paren.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-paren.zsh new file mode 100644 index 00000000..2bbcef18 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-paren.zsh @@ -0,0 +1,49 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': "$(:)" "foo$(:)bar' + +expected_region_highlight=( + '1 1 builtin' # : + '3 8 default' # "$(:)" + '3 3 double-quoted-argument' # "$(:)" + '8 8 double-quoted-argument' # "$(:)" + '4 7 command-substitution-quoted' # $(:) + '4 5 command-substitution-delimiter-quoted' # $( + '6 6 builtin' # : + '7 7 command-substitution-delimiter-quoted' # ) + '10 20 default' # "foo$(:)bar + '10 13 double-quoted-argument-unclosed' # "foo + '18 20 double-quoted-argument-unclosed' # bar + '14 17 command-substitution-quoted' # $(:) + '14 15 command-substitution-delimiter-quoted' # $( + '16 16 builtin' # : + '17 17 command-substitution-delimiter-quoted' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted.zsh new file mode 100644 index 00000000..081a365b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=": \$'*' 'foo'" + +expected_region_highlight=( + "1 1 builtin" # : + "3 6 default" # $'*' + "3 6 dollar-quoted-argument" # $'*' - not a glob + "8 12 default" # 'foo' + "8 12 single-quoted-argument" # 'foo' +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted2.zsh new file mode 100644 index 00000000..ed7428bd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted2.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=": \$'foo\xbar\udeadbeef\uzzzz'" + +expected_region_highlight=( + "1 1 builtin" # : + "3 29 default" # $'foo\xbar\udeadbeef\uzzzz' + "3 29 dollar-quoted-argument" # $'foo\xbar\udeadbeef\uzzzz' + "8 11 back-dollar-quoted-argument" # \xba + "13 18 back-dollar-quoted-argument" # \dead + "23 24 unknown-token" # \u +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted3.zsh new file mode 100644 index 00000000..365f3519 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/dollar-quoted3.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Similar to double-quoted2.zsh +# This test checks that the '1' gets highlighted correctly. Do not append to the BUFFER. +BUFFER=": \$'\xa1" + +expected_region_highlight=( + "1 1 builtin" # : + "3 8 default" # $'\xa1 + "3 8 dollar-quoted-argument-unclosed" # $'\xa1 + "5 8 back-dollar-quoted-argument" # \xa1 +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-hyphen-option.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-hyphen-option.zsh new file mode 100644 index 00000000..e5cacd37 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-hyphen-option.zsh @@ -0,0 +1,35 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='hello --world' + +expected_region_highlight=( + "1 5 unknown-token" # hello + "7 13 double-hyphen-option" # --world +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted.zsh new file mode 100644 index 00000000..0a4336ca --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': "foo$bar:\`:\":\$:' +BUFFER+=\\\\:\" + +expected_region_highlight=( + "1 1 builtin" # : + "3 24 default" # "foo$bar:\`:\":\$:\\:" + "3 24 double-quoted-argument" # "foo$bar:\`:\":\$:\\:" + "7 10 dollar-double-quoted-argument" # $bar + "12 13 back-double-quoted-argument" # \` + "15 16 back-double-quoted-argument" # \$ + "18 19 back-double-quoted-argument" # \" + "21 22 back-double-quoted-argument" # \\ +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted2.zsh new file mode 100644 index 00000000..c400e543 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted2.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Similar to dollar-quoted3.zsh +# This test checks that the 'r' gets highlighted correctly. Do not append to the BUFFER. +BUFFER=': "foo$bar' + +expected_region_highlight=( + "1 1 builtin" # : + "3 10 default" # "foo$bar + "3 10 double-quoted-argument-unclosed" # "foo$bar + "7 10 dollar-double-quoted-argument" # $bar +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted3.zsh new file mode 100644 index 00000000..86e3ced6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted3.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': "$" "$42foo"' +BUFFER+=\ \"\\\'\\x\" + +expected_region_highlight=( + "1 1 builtin" # : + "3 5 default" # "$" + "3 5 double-quoted-argument" # "$" + "7 14 default" # "$42foo" + "7 14 double-quoted-argument" # "$42foo" + "8 10 dollar-double-quoted-argument" # $42 + "16 21 default" # "\'\x" + "16 21 double-quoted-argument" # "\'\x" - \' and \x are not escape sequences +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted4.zsh new file mode 100644 index 00000000..c59d5d8e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/double-quoted4.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': "${foo}bar"' + +expected_region_highlight=( + "1 1 builtin" # : + "3 13 default" # "${foo}bar" + "3 13 double-quoted-argument" # "${foo}bar" + "4 9 dollar-double-quoted-argument" # ${foo} +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command-newline.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command-newline.zsh new file mode 100644 index 00000000..4b7b35c6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command-newline.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Newline after semicolon isn't unknown-token +BUFFER=$':;\n:' + +expected_region_highlight=( + '1 1 builtin' # : + '2 2 commandseparator' # ; + '3 3 commandseparator' # \n + '4 4 builtin' # : +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command.zsh new file mode 100644 index 00000000..5831464d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo; ;' + +expected_region_highlight=( + "1 4 builtin" # echo + "5 5 commandseparator" # ; + "7 7 unknown-token" # ; +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command2.zsh new file mode 100644 index 00000000..dcb4e6f7 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-command2.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Same test data and expectations as empty-command.zsh; the only difference is: +touch ';' + +BUFFER='echo; ;' + +expected_region_highlight=( + "1 4 builtin" # echo + "5 5 commandseparator" # ; + "7 7 unknown-token" # ; +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-line.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-line.zsh new file mode 100644 index 00000000..a4d6685b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/empty-line.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'\\\n; ls' + +expected_region_highlight=( + '3 3 unknown-token' # ; + '5 6 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals1.zsh new file mode 100644 index 00000000..77f46e8d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals1.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': =ls' + +expected_region_highlight=( + '1 1 builtin' # : + '3 5 path' # =ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals2.zsh new file mode 100644 index 00000000..bd59ff75 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals2.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsetopt equals + +BUFFER=$': =nosuchcommand' + +expected_region_highlight=( + '1 1 builtin' # : + '3 16 default' # =nosuchcommand +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals3.zsh new file mode 100644 index 00000000..8c107890 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals3.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': =nosuchcommand' + +expected_region_highlight=( + '1 1 builtin' # : + '3 16 unknown-token' # =nosuchcommand +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals4.zsh new file mode 100644 index 00000000..28bc2148 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/equals4.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': =' + +expected_region_highlight=( + '1 1 builtin' # : + '3 3 default' # = +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/escaped-single-quote.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/escaped-single-quote.zsh new file mode 100644 index 00000000..4b2fe4bc --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/escaped-single-quote.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': \'foo\'\\\'\'bar\'' # <<<: 'foo'\''bar'>>> + +expected_region_highlight=( + '1 1 builtin' # : + '3 14 default' # 'foo'\''bar' + '3 7 single-quoted-argument' # 'foo' + '10 14 single-quoted-argument' # 'bar' +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/exec-redirection1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/exec-redirection1.zsh new file mode 100644 index 00000000..78a0c623 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/exec-redirection1.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='exec {foo}>&/tmp ls' + +expected_region_highlight=( + "1 4 precommand" # exec + "6 10 named-fd" # {foo} + "11 12 redirection" # >& + "13 16 path" # /tmp + "18 19 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/fd-target-not-filename.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/fd-target-not-filename.zsh new file mode 100644 index 00000000..5c3cd089 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/fd-target-not-filename.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch 2 + +BUFFER=$'echo foo>&2' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 8 default' # foo + '9 10 redirection' # >& + '11 11 numeric-fd' # 2 (not path) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-altsyntax.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-altsyntax.zsh new file mode 100644 index 00000000..0f9a8339 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-altsyntax.zsh @@ -0,0 +1,45 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Define named and anonymous function using the alternative syntax +BUFFER=$'function f { pwd }; function { pwd }' + +expected_region_highlight=( + '1 8 reserved-word' # function + '10 10 default' # f + '12 12 reserved-word "issue #237"' # { + '14 16 command "issue #237"' # pwd + '18 18 reserved-word "issue #237"' # } + '19 19 commandseparator' # ; + '21 28 reserved-word' # function + '30 30 reserved-word "issue #237"' # { + '32 34 command "issue #237"' # pwd + '36 36 reserved-word "issue #237"' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-named1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-named1.zsh new file mode 100644 index 00000000..c962ddbb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-named1.zsh @@ -0,0 +1,44 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='f() pwd; f() { balanced braces }' + +expected_region_highlight=( + '1 1 TBD "issue #223"' # f + '2 3 reserved-word' # () + '5 7 builtin' # pwd + '8 8 commandseparator' # ; + '10 10 TBD "issue #223"' # f + '11 12 reserved-word' # () + '14 14 reserved-word' # { + '16 23 unknown-token' # balanced + '25 30 default' # braces + '32 32 reserved-word' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-named2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-named2.zsh new file mode 100644 index 00000000..e12fce6a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function-named2.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='f g h () pwd' + +expected_region_highlight=( + '1 1 TBD "issue #223"' # f + '3 3 TBD "issue #223"' # g + '5 5 TBD "issue #223"' # h + '7 8 reserved-word' # () + '10 12 builtin' # pwd +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function.zsh new file mode 100644 index 00000000..b1be8539 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/function.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +cd() { + builtin cd "$@" +} +ls() { + command ls "$@" +} +BUFFER='cd;ls' + +expected_region_highlight=( + "1 2 function" # cd + "3 3 commandseparator" # ; + "4 5 function" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/glob.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/glob.zsh new file mode 100644 index 00000000..2ff1022e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/glob.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': foo* bar? *baz qux\?' + +expected_region_highlight=( + "1 1 builtin" # : + "3 6 default" # foo* + "6 6 globbing" # * + "8 11 default" # bar? + "11 11 globbing" # ? + "13 16 default" # *baz + "13 13 globbing" # * + "18 22 default" # qux\? +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/global-alias1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/global-alias1.zsh new file mode 100644 index 00000000..0022de3c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/global-alias1.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias -g foo=bar + +BUFFER=$'foo foo' + +expected_region_highlight=( + '1 3 global-alias' # foo + '5 7 global-alias' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/globs-with-quoting.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/globs-with-quoting.zsh new file mode 100644 index 00000000..d7d74bc4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/globs-with-quoting.zsh @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': "foo"*\'bar\'?"baz?"<17-29>"qu*ux"' + +expected_region_highlight=( + '1 1 builtin' # : + '3 34 default' # "foo"*'bar'?"baz?"<17-29>"qu*ux" + '3 7 double-quoted-argument' # "foo" + '8 8 globbing' # * + '9 13 single-quoted-argument' # 'bar' + '14 14 globbing' # ? + '15 20 double-quoted-argument' # "baz?" + '21 27 globbing' # <17-29> + '28 34 double-quoted-argument' # "qu*ux" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/hashed-command.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/hashed-command.zsh new file mode 100644 index 00000000..2983ef8d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/hashed-command.zsh @@ -0,0 +1,35 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +hash zsh_syntax_highlighting_hash=/doesnotexist +BUFFER='zsh_syntax_highlighting_hash' + +expected_region_highlight=( + "1 28 hashed-command 'zsh/parameter cannot distinguish between hashed and command'" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-escaped.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-escaped.zsh new file mode 100644 index 00000000..7807cc06 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-escaped.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo "Hello\!"' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 14 default' # "Hello\!" + '6 14 double-quoted-argument' # "Hello\!" + '12 13 back-double-quoted-argument' # \! +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-followed.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-followed.zsh new file mode 100644 index 00000000..6421ceda --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-followed.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': !!= "!!="' + +expected_region_highlight=( + '1 1 builtin' # : + '3 4 history-expansion "issue #713"' # !! + '7 11 default' # "!!=" + '7 11 double-quoted-argument' # "!!=" + '8 9 history-expansion "issue #713' # !! +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-no.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-no.zsh new file mode 100644 index 00000000..e082dbcf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-no.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo "foo != bar !{baz}"' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 24 default' # "foo != bar !{baz}" + '6 24 double-quoted-argument' # "foo != bar !{baz}" - no history expansions +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-unescaped.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-unescaped.zsh new file mode 100644 index 00000000..cfe6a11d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-unescaped.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo "Hello!"' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 13 default' # "Hello!" + '6 13 double-quoted-argument' # "Hello!" + '12 12 history-expansion' # ! +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-yes.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-yes.zsh new file mode 100644 index 00000000..e963c3b9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-double-quoted-yes.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='echo "foo !bar"' + +expected_region_highlight=( + '1 4 builtin' # echo + '6 15 default' # "foo !bar" + '6 15 double-quoted-argument' # "foo !bar" + '11 11 history-expansion' # ! +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-expansion.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-expansion.zsh new file mode 100644 index 00000000..05e20fc1 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-expansion.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='!foo bar !baz ! ; !' + +expected_region_highlight=( + "1 4 history-expansion" # !foo + "6 8 default" # bar + "10 13 history-expansion" # !baz + "15 15 default" # ! + "17 17 commandseparator" # ; + "19 19 reserved-word" # ! +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-expansion2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-expansion2.zsh new file mode 100644 index 00000000..386d0df9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/history-expansion2.zsh @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='^foo^bar' + +expected_region_highlight=( + "1 8 history-expansion" # ^foo^bar +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/inheritance.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/inheritance.zsh new file mode 100644 index 00000000..e851ca3e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/inheritance.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +_zsh_highlight_add_highlight() +{ + region_highlight+=("$1 $2 ${(j.,.)argv[3,-1]}") +} + +BUFFER='type' + +expected_region_highlight=( + '1 4 builtin,arg0' # type +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/jobsubst-isnt-glob.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/jobsubst-isnt-glob.zsh new file mode 100644 index 00000000..3a7e325a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/jobsubst-isnt-glob.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018.9958 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': %? %?foo' + +expected_region_highlight=( + '1 1 builtin' # : + '3 4 default' # %? + '6 10 default' # %?foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/jobsubst-isnt-glob2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/jobsubst-isnt-glob2.zsh new file mode 100644 index 00000000..51930bfb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/jobsubst-isnt-glob2.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': foo%?bar' + +expected_region_highlight=( + '1 1 builtin' # : + '3 10 default' # foo%?bar + '7 7 globbing' # ? +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/loop-newline.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/loop-newline.zsh new file mode 100644 index 00000000..d39ee112 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/loop-newline.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'for i in \\\n; do done' + +expected_region_highlight=( + '1 3 reserved-word' # for + '5 5 default' # i + '7 8 default' # in + '12 12 commandseparator' # ; + '14 15 reserved-word' # do + '17 20 reserved-word' # done +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/meta-no-eval1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/meta-no-eval1.zsh new file mode 100644 index 00000000..bb040777 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/meta-no-eval1.zsh @@ -0,0 +1,49 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $(kill -9 $$) ${:-$(kill -9 $$)}' + +expected_region_highlight=( + '1 1 builtin' # : + '3 15 default' # $(kill -9 $$) + '3 15 command-substitution-unquoted' # $(kill -9 $$) + '3 4 command-substitution-delimiter-unquoted' # $( + '5 8 builtin' # kill + '10 11 single-hyphen-option' # -9 + '13 14 default' # $$ + '15 15 command-substitution-delimiter-unquoted' # ) + '17 34 default' # ${:-$(kill -9 $$)} + '21 33 command-substitution-unquoted' # $(kill -9 $$) + '21 22 command-substitution-delimiter-unquoted' # $( + '23 26 builtin' # kill + '28 29 single-hyphen-option' # -9 + '31 32 default' # $$ + '33 33 command-substitution-delimiter-unquoted' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/meta-no-eval2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/meta-no-eval2.zsh new file mode 100644 index 00000000..61ef0892 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/meta-no-eval2.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# We aren't testing how this is highlighted; we're testing that it's not +# evaluated. If it gets evaluated, the test suite will die. +BUFFER=$': /(e*exit 42*)' + +expected_region_highlight=( + '1 1 builtin' # : + '3 15 default' # /(e*exit 42*) + '6 6 globbing' # * + '14 14 globbing' # * +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-array-assignment1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-array-assignment1.zsh new file mode 100644 index 00000000..8906cfde --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-array-assignment1.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'foo=(\nbar) env' + +expected_region_highlight=( + '1 5 assign' # foo=( + '5 5 reserved-word' # ( + '6 6 commandseparator' # \n + '7 9 default' # bar + '10 10 assign' # ) + '10 10 reserved-word' # ) + '12 14 precommand' # env +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-string.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-string.zsh new file mode 100644 index 00000000..0127b4bf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-string.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +PREBUFFER=$'echo "foo1\n' +BUFFER='foo2" ./' + +expected_region_highlight=( + "1 5 default" # 'foo2"' + "1 5 double-quoted-argument" # 'foo2"' + "7 8 path" # './' +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-string2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-string2.zsh new file mode 100644 index 00000000..3a90dce8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiline-string2.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'echo \'foo1\n' + +expected_region_highlight=( + "1 4 builtin" # echo + "6 11 default" # 'foo1\n + "6 11 single-quoted-argument-unclosed" # 'foo1\n +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multios-negates-globbing.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multios-negates-globbing.zsh new file mode 100644 index 00000000..7ece6708 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multios-negates-globbing.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +unsetopt multios + +BUFFER=$'cat < *' + +expected_region_highlight=( + '1 3 command' # cat + '5 5 redirection' # < + '7 7 default' # * - not globbing +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multios-negates-globbing2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multios-negates-globbing2.zsh new file mode 100644 index 00000000..b6db983d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multios-negates-globbing2.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'cat < *' + +expected_region_highlight=( + '1 3 command' # cat + '5 5 redirection' # < + '7 7 default' # * + '7 7 globbing' # * +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiple-quotes.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiple-quotes.zsh new file mode 100644 index 00000000..dabf70c8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiple-quotes.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': \'foo\'bar"baz$quux/foo\\\\bar"baz$\'quux\\nfoo\\001bar\'baz' + +expected_region_highlight=( + "1 1 builtin" # : + "3 54 default" # 'foo'bar"baz$quux/foo\\bar"baz$'quux\nfoo\001'baz + "3 7 single-quoted-argument" # 'foo' + "11 29 double-quoted-argument" #"baz + "15 19 dollar-double-quoted-argument" # $quux + "24 25 back-double-quoted-argument" # \\ + "33 51 dollar-quoted-argument" # $'quux\nfoo\001bar' + "39 40 back-dollar-quoted-argument" # \n + "44 47 back-dollar-quoted-argument" # \001 +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiple-redirections.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiple-redirections.zsh new file mode 100644 index 00000000..1545c1b6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/multiple-redirections.zsh @@ -0,0 +1,46 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='id bob | grep java | sort | uniq | tail | head' + +expected_region_highlight=( + "1 2 command" # ps + "4 6 default" # aux + "8 8 commandseparator" # | + "10 13 command" # grep + "15 18 default" # java + "20 20 commandseparator" # | + "22 25 command" # sort + "27 27 commandseparator" # | + "29 32 command" # uniq + "34 34 commandseparator" # | + "36 39 command" # tail + "41 41 commandseparator" # | + "43 46 command" # head +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob-alias.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob-alias.zsh new file mode 100644 index 00000000..2f96445e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob-alias.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias x=command +BUFFER='x ls' + +expected_region_highlight=( + "1 1 alias" # x + "3 4 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob-always.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob-always.zsh new file mode 100644 index 00000000..6d550489 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob-always.zsh @@ -0,0 +1,45 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'{ noglob echo * } always { echo * }' + +expected_region_highlight=( + '1 1 reserved-word' # { + '3 8 precommand' # noglob + '10 13 builtin' # echo + '15 15 default' # * + '17 17 reserved-word' # } + '19 24 reserved-word' # always + '26 26 reserved-word' # { + '28 31 builtin' # echo + '33 33 default' # * + '33 33 globbing' # * + '35 35 reserved-word' # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob1.zsh new file mode 100644 index 00000000..1857db0c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob1.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=':; noglob echo *' + +expected_region_highlight=( + "1 1 builtin" # : + "2 2 commandseparator" # ; + "4 9 precommand" # noglob + "11 14 builtin" # echo + "16 16 default" # * +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob2.zsh new file mode 100644 index 00000000..3b4fcd76 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob2.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='noglob echo *; echo *' + +expected_region_highlight=( + "1 6 precommand" # noglob + "8 11 builtin" # echo + "13 13 default" # * + "14 14 commandseparator" # ; + "16 19 builtin" # echo + "21 21 default" # * + "21 21 globbing" # * +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob3.zsh new file mode 100644 index 00000000..c404aaac --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob3.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch \* + +BUFFER='noglob echo *' + +expected_region_highlight=( + "1 6 precommand" # noglob + "8 11 builtin" # echo + "13 13 path" # * +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob4.zsh new file mode 100644 index 00000000..cc7065f5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/noglob4.zsh @@ -0,0 +1,45 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'noglob cat <(print -r -- *)' + +expected_region_highlight=( + '1 6 precommand' # noglob + '8 10 command' # cat + '12 27 default' # <(print -r -- *) + '12 27 process-substitution' # <(print -r -- *) + '12 13 process-substitution-delimiter' # <( + '14 18 builtin' # print + '20 21 single-hyphen-option' # -r + '23 24 double-hyphen-option' # -- + '26 26 default' # * + '26 26 globbing' # * + '27 27 process-substitution-delimiter' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/null-exec.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/null-exec.zsh new file mode 100644 index 00000000..be1e3064 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/null-exec.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'exec >/dev/null;' + +expected_region_highlight=( + '1 4 precommand' # exec + '6 6 redirection' # > + '7 15 path' # /dev/null + '16 16 commandseparator' # ; +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/null-exec2-printenv.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/null-exec2-printenv.zsh new file mode 100644 index 00000000..59a2cef7 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/null-exec2-printenv.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2021 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'env | grep $needle' + +expected_region_highlight=( + '1 3 precommand' # env + '5 5 commandseparator' # | + '7 10 command' # grep + '12 18 default' # $needle +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/number_range-glob.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/number_range-glob.zsh new file mode 100644 index 00000000..c8409510 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/number_range-glob.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='print <-> x<->y ' + +expected_region_highlight=( + '1 5 builtin' # print + '7 9 default' # <-> + '7 9 globbing' # <-> + '11 15 default' # x<->y + '12 14 globbing' # <-> + '17 17 redirection' # < + '18 23 default' # foo2-3 (the filename) + '24 24 redirection' # > +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/off-by-one.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/off-by-one.zsh new file mode 100644 index 00000000..872143af --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/off-by-one.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +alias a=: +f() {} + +BUFFER='a;f;' + +expected_region_highlight=( + "1 1 alias" # a + "2 2 commandseparator" # ; + "3 3 function" # f + "4 4 commandseparator" # ; +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/opt-shwordsplit1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/opt-shwordsplit1.zsh new file mode 100644 index 00000000..4a7689be --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/opt-shwordsplit1.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt shwordsplit +local EDITOR='ed -s' + +ed() { command ed "$@" } + +BUFFER=$'$EDITOR' + +expected_region_highlight=( + '1 7 function' # $EDITOR +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/optimized-cmdsubst-input.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/optimized-cmdsubst-input.zsh new file mode 100644 index 00000000..ca55ef83 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/optimized-cmdsubst-input.zsh @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# See getoutput() and getoutputfile() in zsh's C source code. + +BUFFER=$': $(<*)' + +expected_region_highlight=( + '1 1 builtin' # : + '3 7 default' # $(<*) + '3 7 command-substitution-unquoted' # $(<*) + '3 4 command-substitution-delimiter-unquoted' # $( + '5 5 redirection' # < + '6 6 default' # * - not globbing! + '7 7 command-substitution-delimiter-unquoted' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-dollar-quote-isnt-filename.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-dollar-quote-isnt-filename.zsh new file mode 100644 index 00000000..897a02e6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-dollar-quote-isnt-filename.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': -$\'n\'' + +touch ./-n + +expected_region_highlight=( + '1 1 builtin' # : + '3 7 single-hyphen-option' # -$'n' + '4 7 dollar-quoted-argument' # $'n' +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-path_dirs.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-path_dirs.zsh new file mode 100644 index 00000000..0300c7e5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-path_dirs.zsh @@ -0,0 +1,44 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +if [[ $OSTYPE == msys ]]; then + skip_test='Cannot chmod +x in msys2' +else + setopt PATH_DIRS + mkdir -p foo/bar + touch foo/bar/testing-issue-228 + chmod +x foo/bar/testing-issue-228 + path+=( "$PWD"/foo ) + + BUFFER='bar/testing-issue-228' + + expected_region_highlight=( + "1 21 command" # bar/testing-issue-228 + ) +fi diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-with-quotes.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-with-quotes.zsh new file mode 100644 index 00000000..6286f034 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/option-with-quotes.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': --user="phy1729"' + +expected_region_highlight=( + '1 1 builtin' # : + '3 18 double-hyphen-option' # --user="phy1729" + '10 18 double-quoted-argument' # "phy1729" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/order-path-after-dollar.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/order-path-after-dollar.zsh new file mode 100644 index 00000000..773c1838 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/order-path-after-dollar.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch '$foo' +BUFFER=': $foo \$foo' + +expected_region_highlight=( + '1 1 builtin' # : + '3 6 default' # $foo - if we add a "unquoted parameter expansion" style then this expectation should change + '8 12 path' # \$foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/order-path-before-globbing.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/order-path-before-globbing.zsh new file mode 100644 index 00000000..8456b181 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/order-path-before-globbing.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch '*' +BUFFER=': * \*' + +expected_region_highlight=( + '1 1 builtin' # : + '3 3 default' # * + '3 3 globbing' # * + '5 6 path' # \* +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-positional-in-array-append.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-positional-in-array-append.zsh new file mode 100644 index 00000000..bd39e021 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-positional-in-array-append.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# This used to be an infinite loop. + +BUFFER=$'l+=( $1' + +expected_region_highlight=( + '1 4 assign' # l+=( + '4 4 reserved-word' # ( + '6 7 default' # $1 +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-precommand-option-argument1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-precommand-option-argument1.zsh new file mode 100644 index 00000000..84cf03ac --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-precommand-option-argument1.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# See also alias-precommand-option-argument1.zsh +local -a sudo_u; sudo_u=(sudo -u) +sudo(){} + +BUFFER='$sudo_u phy1729 echo foo' + +expected_region_highlight=( + '1 7 precommand' # $sudo_u + '9 15 default' # phy1729 + '18 20 command "issue #540"' # echo (not builtin) + '22 24 default' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-precommand-option-argument3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-precommand-option-argument3.zsh new file mode 100644 index 00000000..9a8dde28 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/param-precommand-option-argument3.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# See also alias-precommand-option-argument3.zsh +local -a sudo_u; sudo_u=(sudo -u) +sudo(){} + +BUFFER='$sudo_u phy1729 ls foo' + +expected_region_highlight=( + '1 7 precommand' # sudo_u + '9 15 default' # phy1729 + '17 18 command' # ls + '20 22 default' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-elision-command-word.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-elision-command-word.zsh new file mode 100644 index 00000000..25f649a2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-elision-command-word.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='$x ls' + +expected_region_highlight=( + '1 2 comment' # $x + '4 5 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-shwordsplit.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-shwordsplit.zsh new file mode 100644 index 00000000..0bf6f4c0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-shwordsplit.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2021 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt sh_word_split +local foo='echo foo' + +BUFFER='$foo' + +expected_region_highlight=( + '1 4 builtin' # $foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-untokenized1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-untokenized1.zsh new file mode 100644 index 00000000..8b8b5e4c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-untokenized1.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +local x="()" + +BUFFER=$'$x ls' + +expected_region_highlight=( + '1 2 unknown-token' # $x + '4 5 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-untokenized2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-untokenized2.zsh new file mode 100644 index 00000000..d23a1f21 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-expansion-untokenized2.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +local x="^foo^bar" + +BUFFER=$'$x ls' + +expected_region_highlight=( + '1 2 unknown-token' # $x + '4 5 default' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-star.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-star.zsh new file mode 100644 index 00000000..2311be07 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-star.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='() { : $* }' + +# This tests that $* isn't highlighted as a glob. +# If we ever add a "unquoted parameter" style, the expectation may change. +expected_region_highlight=( + "1 2 reserved-word" # () + "4 4 reserved-word" # { + "6 6 builtin" # : + "8 9 default" # $* + "11 11 reserved-word" # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-to-global-alias.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-to-global-alias.zsh new file mode 100644 index 00000000..63f95da7 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-to-global-alias.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +if type global_alias >/dev/null; then + skip_test="Test is written on the assumption that 'global_alias' is not a valid command name, but that assumption does not hold" + return 0 +fi +alias -g global_alias=y +local s=global_alias + +BUFFER=$'$s' + +expected_region_highlight=( + '1 2 unknown-token' # $s +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-value-contains-command-position1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-value-contains-command-position1.zsh new file mode 100644 index 00000000..05ea1bfa --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-value-contains-command-position1.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +local foobar='x=$(ls)' + +BUFFER=$'$foobar' + +expected_region_highlight=( + # Used to highlight the "ba" as 'command' because the 'ls' showed through; issues #670 and #674 + '1 7 unknown-token' # $foobar (not an assignment) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-value-contains-command-position2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-value-contains-command-position2.zsh new file mode 100644 index 00000000..5042e899 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/parameter-value-contains-command-position2.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +local y='x=$(ls)' + +BUFFER=$'$y' + +expected_region_highlight=( + # Used to trigger a "BUG" message on stderr - issues #670 and #674 + '1 2 unknown-token' # $y (not an assignment) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/pasted-quotes.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/pasted-quotes.zsh new file mode 100644 index 00000000..f37f21b3 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/pasted-quotes.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2013 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': \'foo\'bar"baz"' + +expected_region_highlight=( + '1 1 builtin' # : + '3 15 default' # \'foo\'bar"baz" + '3 7 single-quoted-argument' # \'foo\' + '11 15 double-quoted-argument' # "baz" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-broken-symlink.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-broken-symlink.zsh new file mode 100644 index 00000000..baebee36 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-broken-symlink.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +if [[ $OSTYPE == msys ]]; then + skip_test='Cannot create symlinks in msys2' +else + ln -s /nonexistent broken-symlink + BUFFER=': broken-symlink' + CURSOR=5 # to make path_prefix ineligible + + expected_region_highlight=( + "1 1 builtin" # : + "3 16 path" # broken-symlink + ) +fi diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word.zsh new file mode 100644 index 00000000..99055da9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word.zsh @@ -0,0 +1,45 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +if [[ $OSTYPE == msys ]]; then + skip_test='Cannot chmod +x in msys2' # cargo culted from option-path_dirs.zsh +else + mkdir kappa + touch kappa.exe + chmod +x kappa.exe + cd kappa + + BUFFER='$PWD.exe; ${PWD}.exe' + + expected_region_highlight=( + "1 8 unknown-token" # $PWD.exe - not eval'd; issue #328 + "9 9 commandseparator" # ; + "11 20 unknown-token" # ${PWD}.exe + ) +fi diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word2.zsh new file mode 100644 index 00000000..f404d5d0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word2.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +local lambda="''" +touch \$lambda +BUFFER=': \$lambda' + +expected_region_highlight=( + "1 1 builtin" # : + "3 10 path" # \$lambda +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word3.zsh new file mode 100644 index 00000000..ec981b1e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word3.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# «/usr» at this point would be highlighted as path_prefix; so should +# a parameter that expands to an equivalent string be highlighted. +# +# More complicated parameter substitutions aren't eval'd; issue #328. +BUFFER='$PWD; ${PWD}' + +expected_region_highlight=( + "1 4 unknown-token" # $PWD (without AUTO_CD) + "5 5 commandseparator" # ; + "7 12 path_prefix" # ${PWD} +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word3b.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word3b.zsh new file mode 100644 index 00000000..72a2f7c4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word3b.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt autocd +BUFFER=$'$PWD; ${PWD}' + +expected_region_highlight=( + '1 4 autodirectory' # $PWD + '5 5 commandseparator' # ; + '7 12 autodirectory' # ${PWD} +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word4.zsh new file mode 100644 index 00000000..e29182cc --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-dollared-word4.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# This tests for a regression during development of issue #328: an interim version +# of that branch failed that test with "Bail out! output on stderr". +BUFFER='${' + +expected_region_highlight=( + "1 2 unknown-token" # ${ +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-mixed-quoting.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-mixed-quoting.zsh new file mode 100644 index 00000000..cbd0b38e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-mixed-quoting.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch foo + +BUFFER=$': \'f\'oo' + +expected_region_highlight=( + '1 1 builtin' # : + '3 7 path' # \'f\'oo + '3 5 single-quoted-argument' # \'f\' +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-separators.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-separators.zsh new file mode 100644 index 00000000..52749b79 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-separators.zsh @@ -0,0 +1,53 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# ZSH_HIGHLIGHT_STYLES is empty in tests. The path-separator code however compares its values. +# Make sure the relevant ones are set to something. +ZSH_HIGHLIGHT_STYLES[path_pathseparator]=set +ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]=set + +mkdir A +touch A/mu +BUFFER='ls /bin/ / A/mu A/m' + +expected_region_highlight=( + "1 2 command" # ls + "4 8 path" # /bin/ + "4 4 path_pathseparator" # / + "8 8 path_pathseparator" # / + + "10 10 path" # / + "10 10 path_pathseparator" # / + + "12 15 path" # A/mu + "13 13 path_pathseparator" # / + + "17 19 path_prefix" # A/m + "18 18 path_prefix_pathseparator" # / +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-separators2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-separators2.zsh new file mode 100644 index 00000000..bc885a06 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-separators2.zsh @@ -0,0 +1,40 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# ZSH_HIGHLIGHT_STYLES is empty in tests. The path-separator code however compares its values. +# For this test, make sure both these styles are set and identical: +ZSH_HIGHLIGHT_STYLES[path]=value +ZSH_HIGHLIGHT_STYLES[path_pathseparator]=value + +BUFFER='ls /bin/' + +expected_region_highlight=( + "1 2 command" # ls + "4 8 path" # /bin/ +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-space.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-space.zsh new file mode 100644 index 00000000..87cc22f9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-space.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +mkdir A +touch "A/mu with spaces" +BUFFER='ls A/mu\ with\ spaces' + +expected_region_highlight=( + "1 2 command" # ls + "4 21 path" # A/mu\ with\ spaces +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home.zsh new file mode 100644 index 00000000..8b1c6805 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +HOME="." +BUFFER='ls ~' + +expected_region_highlight=( + "1 2 command" # ls + "4 4 path" # ~ +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home2.zsh new file mode 100644 index 00000000..3f7b8200 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home2.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +HOME="/nonexistent" +BUFFER='ls ~' + +expected_region_highlight=( + "1 2 command" # ls + "4 4 default" # ~ +) + diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home3.zsh new file mode 100644 index 00000000..5c076e88 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-home3.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +HOME="." +BUFFER='ls \~' + +expected_region_highlight=( + "1 2 command" # ls + "4 5 default" # \~ +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-named.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-named.zsh new file mode 100644 index 00000000..335b3fdf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path-tilde-named.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +mkdir mydir +touch mydir/path-tilde-named.test +hash -d D=mydir + +BUFFER='ls ~D/path-tilde-named.test' + +expected_region_highlight=( + "1 2 command" # ls + "4 27 path" # ~D/path-tilde-named.test +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path.zsh new file mode 100644 index 00000000..d387eff3 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +mkdir A +touch A/mu +BUFFER='ls A/mu' + +expected_region_highlight=( + "1 2 command" # ls + "4 7 path" # A/mu +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix.zsh new file mode 100644 index 00000000..3303bfb4 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Assumes that '/bin/sh' exists and '/bin/s' does not exist. +# Related to path_prefix2.zsh + +BUFFER='ls /bin/s' + +expected_region_highlight=( + "1 2 command" # ls + "4 9 path_prefix" # /bin/s +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix2.zsh new file mode 100644 index 00000000..4f40f7e9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix2.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Assumes that '/bin/sh' exists and '/bin/s' does not exist. +# Related to path_prefix.zsh + +BUFFER='ls /bin/s' +WIDGET=zle-line-finish + +expected_region_highlight=( + "1 2 command" # ls + "4 9 default" # /bin/s +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix3.zsh new file mode 100644 index 00000000..9f34f943 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/path_prefix3.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Assumes that '/bin/sh' exists and '/bin/s' does not exist. +# Related to path_prefix.zsh + +PREBUFFER=$'ls \\\n' +BUFFER='/bin/s' + +expected_region_highlight=( + '1 6 path_prefix' # /bin/s +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/plain-file-in-command-position.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/plain-file-in-command-position.zsh new file mode 100644 index 00000000..141fface --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/plain-file-in-command-position.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch foo +chmod -x foo +BUFFER=$'./foo; ./foo' + +expected_region_highlight=( + '1 5 unknown-token' # ./foo (in middle) + '6 6 commandseparator' # ; + '8 12 unknown-token' # ./foo (at end) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-killing1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-killing1.zsh new file mode 100644 index 00000000..75983460 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-killing1.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +hash sudo=false +touch foo + +BUFFER='sudo -e ./foo' + +expected_region_highlight=( + '1 4 precommand' # sudo + '6 7 single-hyphen-option' # -e + '9 13 path' # ./foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-killing2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-killing2.zsh new file mode 100644 index 00000000..bc6fc866 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-killing2.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +hash sudo=false + +BUFFER='sudo -e /does/not/exist' + +expected_region_highlight=( + '1 4 precommand' # sudo + '6 7 single-hyphen-option' # -e + '9 23 default' # /does/not/exist +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-then-assignment.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-then-assignment.zsh new file mode 100644 index 00000000..f0bb75ff --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-then-assignment.zsh @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'nice x=y ls' + +expected_region_highlight=( + '1 4 precommand' # nice + '6 8 unknown-token "issue #641.5"' # x=y + '10 11 default "issue #641.5 (fallout)"' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type1.zsh new file mode 100644 index 00000000..4ce817c2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type1.zsh @@ -0,0 +1,61 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Test the behaviour of a builtin that exists as a command as well. +# The spaces in $BUFFER are to align precommand-type*.zsh test files. +BUFFER=$'test ; builtin test ; builtin command test ; nice test ' + +# Our expectations assumes that a 'test' external command exists (in addition +# to the 'test' builtin). Let's verify that, using the EQUALS option (which +# is on by default). If there's no 'test' command, the expansion will fail, +# diagnose a message on stdout, and the harness will detect a failure. +# +# This seems to work on all platforms, insofar as no one ever reported a bug +# about their system not having a 'test' binary in PATH. That said, if someone +# ever does see this test fail for this reason, we should explicitly create +# a 'test' executable in cwd and 'rehash'. +: =test + +expected_region_highlight=( + '1 4 builtin' # test + '7 7 commandseparator' # ; + + '9 15 precommand' # builtin + '17 20 builtin' # test + '23 23 commandseparator' # ; + + '25 31 precommand' # builtin + '33 39 precommand' # command + '41 44 command "issue #608"' # test + '47 47 commandseparator' # ; + + '49 52 precommand' # nice + '54 57 command "issue #608"' # test +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type2.zsh new file mode 100644 index 00000000..bf75f4b5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type2.zsh @@ -0,0 +1,55 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Test the behaviour of a builtin that does not exist as a command. +# The spaces in $BUFFER are to align precommand-type*.zsh test files. +BUFFER=$'zstyle; builtin zstyle; builtin command zstyle; nice zstyle' + +# Verify that no $^path/zstyle(N) binary exists. +if (disable zstyle; type zstyle >/dev/null); then + echo >&2 "precommand-type2: error: 'zstyle' exists not only as a builtin" +fi + +expected_region_highlight=( + '1 6 builtin' # zstyle + '7 7 commandseparator' # ; + + '9 15 precommand' # builtin + '17 22 builtin' # zstyle + '23 23 commandseparator' # ; + + '25 31 precommand' # builtin + '33 39 precommand' # command + '41 46 unknown-token "issue #608"' # zstyle + '47 47 commandseparator' # ; + + '49 52 precommand' # nice + '54 59 unknown-token "issue #608"' # zstyle +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type3.zsh new file mode 100644 index 00000000..7fc7e4c5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-type3.zsh @@ -0,0 +1,55 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Test an external command that does not exist as a builtin. +# The spaces in $BUFFER are to align precommand-type*.zsh test files. +BUFFER=$'ls ; builtin ls ; builtin command ls ; nice ls ' + +# Verify that the 'ls' command isn't shadowed. +if [[ $(type -w ls) != "ls: command" ]]; then + echo >&2 "precommand-type3: error: the 'ls' command is shadowed (or possibly missing altogether)" +fi + +expected_region_highlight=( + '1 2 command' # ls + '7 7 commandseparator' # ; + + '9 15 precommand' # builtin + '17 18 unknown-token "issue #608"' # ls + '23 23 commandseparator' # ; + + '25 31 precommand' # builtin + '33 39 precommand' # command + '41 42 command' # ls + '47 47 commandseparator' # ; + + '49 52 precommand' # nice + '54 55 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-uninstalled.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-uninstalled.zsh new file mode 100644 index 00000000..03c8a75a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-uninstalled.zsh @@ -0,0 +1,44 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Simulate sudo not being installed. +# +# The 'hash' step is because, if sudo _really_ isn't installed, 'unhash sudo' +# would error out and break the test. +hash sudo=/usr/bin/env && unhash sudo + +local PATH + +BUFFER=$'sudo ls' + +expected_region_highlight=( + '1 4 unknown-token' # sudo + '6 7 default' # ls - not 'command', since sudo isn't installed +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-unknown-option.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-unknown-option.zsh new file mode 100644 index 00000000..6baf9ff5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand-unknown-option.zsh @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +sudo(){} + +BUFFER='sudo -ux ls; sudo -x ls' + +expected_region_highlight=( + '1 4 precommand' # sudo + '6 8 single-hyphen-option' # -ux + '10 11 command' # ls + '12 12 commandseparator' # ; + '14 17 precommand' # sudo + '19 20 single-hyphen-option' # -x + '22 23 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand.zsh new file mode 100644 index 00000000..a03b3317 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': command zzzzzz' + +expected_region_highlight=( + "1 1 builtin" # : + "3 9 default" # not precommand + "11 16 default" # not unknown-token (since 'zzzzzz' is not a command) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand2.zsh new file mode 100644 index 00000000..75dceabe --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand2.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='command -v ls' + +expected_region_highlight=( + "1 7 precommand" # command + "9 10 single-hyphen-option" # -v + "12 13 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand3.zsh new file mode 100644 index 00000000..f8b0c780 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand3.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='nice -n10 ls; nice -n 10 ls' + +expected_region_highlight=( + "1 4 precommand" # nice + "6 9 single-hyphen-option" # -n10 + "11 12 command" # ls + "13 13 commandseparator" # ; + "15 18 precommand" # nice + "20 21 single-hyphen-option" # -n + "23 24 default" # 10 + "26 27 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand4.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand4.zsh new file mode 100644 index 00000000..b9e6119d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/precommand4.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +doas(){} +BUFFER=$'doas -nu phy1729 ls' + +expected_region_highlight=( + '1 4 precommand' # doas + '6 8 single-hyphen-option' # -nu + '10 16 default' # phy1729 + '18 19 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/prefix-redirection.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/prefix-redirection.zsh new file mode 100644 index 00000000..a0f0ed5a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/prefix-redirection.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='>/tmp >/tmp command echo >/tmp foo' + +expected_region_highlight=( + "1 1 redirection" # > + "2 5 path" # /tmp + "7 7 redirection" # > + "8 11 path" # /tmp + "13 19 precommand" # command + "21 24 builtin" # echo + "26 26 redirection" # > + "27 30 path" # /tmp + "32 34 default" # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution-after-redirection.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution-after-redirection.zsh new file mode 100644 index 00000000..2d58016f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution-after-redirection.zsh @@ -0,0 +1,46 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017, 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'< <(pwd) > >(nl)' + +expected_region_highlight=( + '1 1 redirection' # < + '3 8 default' # <(pwd) + '3 8 process-substitution' # <(pwd) + '3 4 process-substitution-delimiter' # <( + '5 7 builtin' # pwd + '8 8 process-substitution-delimiter' # ) + '10 10 redirection' # > + '12 16 default' # >(nl) + '12 16 process-substitution' # >(nl) + '12 13 process-substitution-delimiter' # >( + '14 15 command' # nl + '16 16 process-substitution-delimiter' # ) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh new file mode 100644 index 00000000..f8dbd6ba --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': =(" foo ls' + +expected_region_highlight=( + '1 3 unknown-token' # ">" - not "redirection" + '5 7 default' # foo + '9 10 default' # ls - not "command" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/rc-quotes.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/rc-quotes.zsh new file mode 100644 index 00000000..8cd427ae --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/rc-quotes.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt RC_QUOTES + +BUFFER=": 'foo''bar'baz" + +expected_region_highlight=( + "1 1 builtin" # : + "3 15 default" # 'foo''bar'baz + "3 12 single-quoted-argument" # 'foo''bar' + "7 8 rc-quote" # '' +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-all.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-all.zsh new file mode 100644 index 00000000..e8ffb5dd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-all.zsh @@ -0,0 +1,95 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2024 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': foo 9<>foo >foo 9>foo >|foo >\!foo >>foo >>|foo >>\!foo <<&9 <&- >&- <&p >&p >&foo &>foo >&|foo >&\!foo &>|foo &>\!foo >>&foo &>>foo >>&|foo >>&\!foo &>>|foo &>>\!foo' + +expected_region_highlight=( + '1 1 builtin' # : + '3 3 redirection' # < + '4 6 default' # foo + '8 9 redirection' # 9< + '10 12 default' # foo + '14 15 redirection' # <> + '16 18 default' # foo + '20 22 redirection' # 9<> + '23 25 default' # foo + '27 27 redirection' # > + '28 30 default' # foo + '32 33 redirection' # 9> + '34 36 default' # foo + '38 39 redirection' # >| + '40 42 default' # foo + '44 45 redirection' # >\! + '46 48 default' # foo + '50 51 redirection' # >> + '52 54 default' # foo + '56 58 redirection' # >>| + '59 61 default' # foo + '63 65 redirection' # >>\! + '66 68 default' # foo + '70 72 redirection' # <<< + '73 75 default' # foo + '77 78 redirection' # <& + '79 79 numeric-fd' # 9 + '81 82 redirection' # >& + '83 83 numeric-fd' # 9 + '85 86 redirection' # <& + '87 87 redirection' # - + '89 90 redirection' # >& + '91 91 redirection' # - + '93 94 redirection' # <& + '95 95 redirection' # p + '97 98 redirection' # >& + '99 99 redirection' # p + '101 102 redirection' # >& + '103 105 default' # foo + '107 108 redirection' # &> + '109 111 default' # foo + '113 115 redirection' # >&| + '116 118 default' # foo + '120 122 redirection' # >&\! + '123 125 default' # foo + '127 129 redirection' # &>| + '130 132 default' # foo + '134 136 redirection' # &>\! + '137 139 default' # foo + '141 143 redirection' # >>& + '144 146 default' # foo + '148 150 redirection' # &>> + '151 153 default' # foo + '155 158 redirection' # >>&| + '159 161 default' # foo + '163 166 redirection' # >>&\! + '167 169 default' # foo + '171 174 redirection' # &>>| + '175 177 default' # foo + '179 182 redirection' # &>>\! + '183 185 default' # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-comment.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-comment.zsh new file mode 100644 index 00000000..a019100c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-comment.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +setopt interactive_comments + +BUFFER=': <<#foo' + +expected_region_highlight=( + "1 1 builtin" # : + "3 4 redirection" # << + "5 8 comment" # #foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-from-param.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-from-param.zsh new file mode 100644 index 00000000..42ae6380 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-from-param.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +touch file +local fn=$PWD/file + +BUFFER=$'<$fn cat' + +expected_region_highlight=( + '1 1 redirection' # < + '2 4 path' # $fn + '6 8 command' # cat +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-in-cmdsubst.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-in-cmdsubst.zsh new file mode 100644 index 00000000..ed5eaef8 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-in-cmdsubst.zsh @@ -0,0 +1,41 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$': $( -x >> --yy' + +expected_region_highlight=( + '1 1 builtin' # : + '3 3 redirection' # > + '5 6 default' # -x + '8 9 redirection' # >> + '11 14 default' # --yy +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-special-cases.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-special-cases.zsh new file mode 100644 index 00000000..733cf6bd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection-special-cases.zsh @@ -0,0 +1,44 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# See xpandredir() in the zsh source. + +BUFFER=$'cat <&p; exec {myfd}>&-' + +expected_region_highlight=( + '1 3 command' # cat + '5 6 redirection' # <& + '7 7 redirection' # p + '8 8 commandseparator' # ; + '10 13 precommand' # exec + '15 20 named-fd' # {myfd} + '21 22 redirection' # >& + '23 23 redirection' # - +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection.zsh new file mode 100644 index 00000000..6a25971a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Redirection before and after the command word are implemented differently; test both. +BUFFER='<<>&!bar' + +expected_region_highlight=( + "1 3 redirection" # <<< + "4 6 default" # foo + "8 11 builtin" # echo + "13 16 redirection" # >>&! + "17 19 default" # bar +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection2.zsh new file mode 100644 index 00000000..d44c8e7a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection2.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='ls >(wc) | nl' + +expected_region_highlight=( + "1 2 command" # ls + "4 8 default" # >(wc) + "4 8 process-substitution" # >(wc) + "4 5 process-substitution-delimiter" # >( + "6 7 command" # wc + "8 8 process-substitution-delimiter" # ) + "10 10 commandseparator" # | + "12 13 command" # nl +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection3.zsh new file mode 100644 index 00000000..bf062cfb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/redirection3.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=': >>>; : <>\<<<> + "5 5 unknown-token" # > + "6 6 commandseparator" # ; + "8 8 builtin" # : + "10 11 redirection" # <> + "12 13 default" # \< + "14 16 redirection" # <<< + "17 19 default" # EOF +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/reserved-word.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/reserved-word.zsh new file mode 100644 index 00000000..aca3796d --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/reserved-word.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='repeat "1" do done' + +expected_region_highlight=( + "1 6 reserved-word" # repeat + "8 10 default" # "1" + "8 10 double-quoted-argument" # "1" + "12 13 reserved-word" # do + "15 18 reserved-word" # done +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/simple-command.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/simple-command.zsh new file mode 100644 index 00000000..8bb41fd0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/simple-command.zsh @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='ls' + +expected_region_highlight=( + "1 2 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/simple-redirection.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/simple-redirection.zsh new file mode 100644 index 00000000..fb06f19c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/simple-redirection.zsh @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='id bob | grep java' + +expected_region_highlight=( + "1 2 command" # ps + "4 6 default" # aux + "8 8 commandseparator" # | + "10 13 command" # grep + "15 18 default" # java +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/subshell.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/subshell.zsh new file mode 100644 index 00000000..c068013e --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/subshell.zsh @@ -0,0 +1,51 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='tar cf - * | (cd /target; tar xfp -) | { cat }' + +expected_region_highlight=( + "1 3 command" # tar + "5 6 default" # cf + "8 8 single-hyphen-option" # - + "10 10 default" # * + "10 10 globbing" # * + "12 12 commandseparator" # | + "14 14 reserved-word" # ( + "15 16 builtin" # cd + "18 24 default" # /target + "25 25 commandseparator" # ; + "27 29 command" # tar + "31 33 default" # xfp + "35 35 single-hyphen-option" # - + "36 36 reserved-word" # ) + "38 38 commandseparator" # | + "40 40 reserved-word" # { + "42 44 command" # cat + "46 46 reserved-word" # } +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-command.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-command.zsh new file mode 100644 index 00000000..941349a0 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-command.zsh @@ -0,0 +1,54 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +sudo(){} + +# Tests three codepaths: +# * -i (no argument) +# * -C3 (pasted argument) +# * -u otheruser (non-pasted argument) +BUFFER='sudo -C3 -u otheruser -i ls /; sudo ; sudo -u ; sudo notacommand' + +expected_region_highlight=( + "1 4 precommand" # sudo + "6 8 single-hyphen-option" # -C3 + "10 11 single-hyphen-option" # -u + "13 21 default" # otheruser + "23 24 single-hyphen-option" # -i + "26 27 command" # ls + "29 29 path" # / + "30 30 commandseparator" # ; + "32 35 precommand" # sudo + "37 37 unknown-token" # ;, error because empty command + "39 42 precommand" # sudo + "44 45 single-hyphen-option" # -u + "47 47 unknown-token" # ;, error because incomplete command + "49 52 precommand" # sudo + "54 64 unknown-token" # notacommand - doesn't falls back to "not a command word" codepath +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-comment.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-comment.zsh new file mode 100644 index 00000000..74cd905a --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-comment.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +sudo(){} + +setopt interactive_comments +BUFFER='sudo -u # comment' + +expected_region_highlight=( + "1 4 precommand" # sudo + "6 7 single-hyphen-option" # -u + "9 17 unknown-token" # "# comment" - error because argument missed +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-longopt.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-longopt.zsh new file mode 100644 index 00000000..ef768bfb --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-longopt.zsh @@ -0,0 +1,38 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +hash sudo='false' +BUFFER='sudo --askpass ls' + +expected_region_highlight=( + '1 4 precommand' # sudo + '6 14 double-hyphen-option' # --askpass + '16 17 command' # ls (we don't know whether --askpass takes an argument) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection.zsh new file mode 100644 index 00000000..c675d7d2 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection.zsh @@ -0,0 +1,48 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +sudo(){} + +BUFFER='sudo -u >/tmp otheruser ls; sudo ls; sudo -i ls' + +expected_region_highlight=( + "1 4 precommand" # sudo + "6 7 single-hyphen-option" # -u + "9 9 redirection" # > + "10 13 path" # /tmp + "15 23 default" # otheruser + "25 26 command" # ls + "27 27 commandseparator" # ; + "29 32 precommand" # sudo + "34 35 command" # ls + "36 36 commandseparator" # ; + "38 41 precommand" # sudo + "43 44 single-hyphen-option" # -i + "46 47 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection2.zsh new file mode 100644 index 00000000..23ada53c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection2.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +sudo(){} + +BUFFER='sudo >/tmp -u otheruser ls' + +expected_region_highlight=( + "1 4 precommand" # sudo + "6 6 redirection" # > + "7 10 path" # /tmp + "12 13 single-hyphen-option" # -u + "15 23 default" # otheruser + "25 26 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection3.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection3.zsh new file mode 100644 index 00000000..80e55b55 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/sudo-redirection3.zsh @@ -0,0 +1,41 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +sudo(){} + +BUFFER='sudo 2>./. -u otheruser ls' + +expected_region_highlight=( + "1 4 precommand" # sudo + "6 7 redirection" # 2> + "8 10 path" # ./. # a 3-character path, for alignment with sudo-redirection2.zsh + "12 13 single-hyphen-option" # -u + "15 23 default" # otheruser + "25 26 command" # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/tilde-command-word.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/tilde-command-word.zsh new file mode 100644 index 00000000..67c996c9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/tilde-command-word.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +hash -d D=/usr/bin + +BUFFER='~D/env foo' + +expected_region_highlight=( + "1 6 command" # ~D/env [= /usr/bin/env + "8 10 default" # foo +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/time-and-nocorrect1.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/time-and-nocorrect1.zsh new file mode 100644 index 00000000..fb398edf --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/time-and-nocorrect1.zsh @@ -0,0 +1,39 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'time ls; nocorrect ls' + +expected_region_highlight=( + '1 4 reserved-word' # time + '6 7 command' # ls + '8 8 commandseparator' # ; + '10 18 reserved-word' # nocorrect + '20 21 command' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/time-and-nocorrect2.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/time-and-nocorrect2.zsh new file mode 100644 index 00000000..5549ee92 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/time-and-nocorrect2.zsh @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2019 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER=$'time ls; nocorrect ls' +alias time=':' nocorrect=':' + +expected_region_highlight=( + '1 4 alias' # time + '6 7 default' # ls + '8 8 commandseparator' # ; + '10 18 alias' # nocorrect + '20 21 default' # ls +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/unbackslash.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/unbackslash.zsh new file mode 100644 index 00000000..c8dfbd4c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/unbackslash.zsh @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='\sh' + +expected_region_highlight=( + "1 3 command" # \sh (runs 'sh', bypassing aliases) +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/unknown-command.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/unknown-command.zsh new file mode 100644 index 00000000..e71faec5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/unknown-command.zsh @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='azertyuiop' + +expected_region_highlight=( + "1 10 unknown-token" # azertyuiop +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/vanilla-newline.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/vanilla-newline.zsh new file mode 100644 index 00000000..bd60ad4c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/vanilla-newline.zsh @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +PREBUFFER=$'echo foo; echo bar\n\n\n' +BUFFER=' echo baz; echo qux' + +expected_region_highlight=( + "2 5 builtin" # echo + "7 9 default" # baz + "10 10 commandseparator" # semicolon + "12 15 builtin" # echo + "17 19 default" # qux +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/vi-linewise-mode.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/vi-linewise-mode.zsh new file mode 100644 index 00000000..7003c49c --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/main/test-data/vi-linewise-mode.zsh @@ -0,0 +1,43 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# See issue #267 for the magic numbers +BUFFER=$'foo foo\nbar bar' +REGION_ACTIVE=2 +CURSOR=4 +MARK=12 + +expected_region_highlight=( + "1 3 unknown-token" # foo + "5 7 default" # foo + "8 8 commandseparator" # \n + "9 11 unknown-token" # bar + "13 15 default" # bar + "1 15 standout" # foo foo\nbar bar +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/README.md new file mode 120000 index 00000000..5ff00e64 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/README.md @@ -0,0 +1 @@ +../../docs/highlighters/pattern.md \ No newline at end of file diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/pattern-highlighter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/pattern-highlighter.zsh new file mode 100644 index 00000000..e0422d08 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/pattern-highlighter.zsh @@ -0,0 +1,60 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +# List of keyword and color pairs. +typeset -gA ZSH_HIGHLIGHT_PATTERNS + +# Whether the pattern highlighter should be called or not. +_zsh_highlight_highlighter_pattern_predicate() +{ + _zsh_highlight_buffer_modified +} + +# Pattern syntax highlighting function. +_zsh_highlight_highlighter_pattern_paint() +{ + setopt localoptions extendedglob + local pattern + for pattern in ${(k)ZSH_HIGHLIGHT_PATTERNS}; do + _zsh_highlight_pattern_highlighter_loop "$BUFFER" "$pattern" + done +} + +_zsh_highlight_pattern_highlighter_loop() +{ + # This does *not* do its job syntactically, sorry. + local buf="$1" pat="$2" + local -a match mbegin mend + local MATCH; integer MBEGIN MEND + if [[ "$buf" == (#b)(*)(${~pat})* ]]; then + region_highlight+=("$((mbegin[2] - 1)) $mend[2] $ZSH_HIGHLIGHT_PATTERNS[$pat], memo=zsh-syntax-highlighting") + "$0" "$match[1]" "$pat"; return $? + fi +} diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/test-data/rm-rf.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/test-data/rm-rf.zsh new file mode 100644 index 00000000..2f769294 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/pattern/test-data/rm-rf.zsh @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') + +BUFFER='rm -rf /' + +expected_region_highlight=( + "1 8 fg=white,bold,bg=red" # rm -rf / +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/README.md new file mode 120000 index 00000000..9f2522d5 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/README.md @@ -0,0 +1 @@ +../../docs/highlighters/regexp.md \ No newline at end of file diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/regexp-highlighter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/regexp-highlighter.zsh new file mode 100644 index 00000000..0d43aacd --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/regexp-highlighter.zsh @@ -0,0 +1,62 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +# List of keyword and color pairs. +typeset -gA ZSH_HIGHLIGHT_REGEXP + +# Whether the pattern highlighter should be called or not. +_zsh_highlight_highlighter_regexp_predicate() +{ + _zsh_highlight_buffer_modified +} + +# Pattern syntax highlighting function. +_zsh_highlight_highlighter_regexp_paint() +{ + setopt localoptions extendedglob + local pattern + for pattern in ${(k)ZSH_HIGHLIGHT_REGEXP}; do + _zsh_highlight_regexp_highlighter_loop "$BUFFER" "$pattern" + done +} + +_zsh_highlight_regexp_highlighter_loop() +{ + local buf="$1" pat="$2" + integer OFFSET=0 + local MATCH; integer MBEGIN MEND + local -a match mbegin mend + while true; do + [[ "$buf" =~ "$pat" ]] || return; + region_highlight+=("$((MBEGIN - 1 + OFFSET)) $((MEND + OFFSET)) $ZSH_HIGHLIGHT_REGEXP[$pat], memo=zsh-syntax-highlighting") + buf="$buf[$(($MEND+1)),-1]" + OFFSET=$((MEND+OFFSET)); + done +} diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/complex.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/complex.zsh new file mode 100644 index 00000000..4e0089b9 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/complex.zsh @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +ZSH_HIGHLIGHT_REGEXP+=('[0-9\+\-]+' 'fg=white,bold,bg=red') + +BUFFER='echo 1+9-3 7+2' + +expected_region_highlight=( + "6 10 fg=white,bold,bg=red" + "12 14 fg=white,bold,bg=red" +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/subexpression.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/subexpression.zsh new file mode 100644 index 00000000..308cb413 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/subexpression.zsh @@ -0,0 +1,36 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2018 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +BUFFER='ls foo' +ZSH_HIGHLIGHT_REGEXP=('(^| )(ls|cd)($| )' 'fg=green') + +expected_region_highlight=( + '1 3 fg=green' # "ls " +) diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/word-boundary.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/word-boundary.zsh new file mode 100644 index 00000000..1f4f6665 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/regexp/test-data/word-boundary.zsh @@ -0,0 +1,42 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +if zmodload zsh/pcre 2>/dev/null; then + setopt RE_MATCH_PCRE + + ZSH_HIGHLIGHT_REGEXP+=('\bsudo\b' 'fg=white,bold,bg=red') + + BUFFER='sudo ls' + + expected_region_highlight=( + "1 4 fg=white,bold,bg=red" + ) +else + skip_test='Test requires zsh/pcre' +fi diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/root/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/root/README.md new file mode 120000 index 00000000..ca6799d6 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/root/README.md @@ -0,0 +1 @@ +../../docs/highlighters/root.md \ No newline at end of file diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/root/root-highlighter.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/root/root-highlighter.zsh new file mode 100644 index 00000000..3718c449 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/highlighters/root/root-highlighter.zsh @@ -0,0 +1,44 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +# Define default styles. +: ${ZSH_HIGHLIGHT_STYLES[root]:=standout} + +# Whether the root highlighter should be called or not. +_zsh_highlight_highlighter_root_predicate() +{ + _zsh_highlight_buffer_modified +} + +# root highlighting function. +_zsh_highlight_highlighter_root_paint() +{ + if (( EUID == 0 )) { _zsh_highlight_add_highlight 0 $#BUFFER root } +} diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after1-smaller.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after1-smaller.png new file mode 100644 index 0000000000000000000000000000000000000000..768294c3b3cdee1b8bb60849faad86aaa05b4ab9 GIT binary patch literal 2517 zcmV;`2`cu9P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 CzYNL% literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after2-smaller.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after2-smaller.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5b1f8f21d923c80a7d4c787e66774f4d9a170f GIT binary patch literal 4386 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 YHT?f46ttxI-x2`2ng$w8YKZv%0pxfk^#A|> literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after2.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after2.png new file mode 100644 index 0000000000000000000000000000000000000000..ddcbfad70bbb9e76d1a259408a4ac34870d922e9 GIT binary patch literal 10228 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 Km#dHghW-~yIMN{i literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after3-smaller.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after3-smaller.png new file mode 100644 index 0000000000000000000000000000000000000000..d6aaa7bdf30aea607d98d8fa23f715534cb3bea7 GIT binary patch literal 1673 zcmV;426p+0P)00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rb3KRf4I9uyJ?EnA;jY&j7R9M69SZhpEXBd7; zOIxrtT$&Z6(S%93XoD9dlMrUOx)7#@p1%fzG5g^{Ldmp!J@0qk^PKaY?^FVS z*u-aph);b2n+U|FA)gs!%Rdql5->3_f%*CQbr+3}1WI-Se+&ZeMJ|X%MMWqtF9!fz zxpD=MA3y%o*J#~{jEKNMNeSkBKDef*(J(lOj#saO=0*TOO-&8%+_?jr&4$FpL;%2r z3m4Gb+$?%>?G~W15J*x3%1Cj?o;Yy=EiEm0^5h9RIyzvnSdfsA@ULDxnM{Uf&z_;W zx;h}9mzM{t)r!f zjYcDNIvw3^H#Hg!vGmdpiAovR{0%5%gnrD&?C$QS!C>%@wOVahb=JePXU}qRagk@v zobkuv(`?0f^SoSiD{tS9^T!l)oS5#x%}ht@$mqC`}XZ9EiHv!uMc|s zYPv$9fKsVkL4`sQke88>f%5Wl+`D%#Anx&auxHO6Jbd^NUauEzZEfi7?L|RBf#@E` zXJ-KbU;Jb4kHN~yN{)<-&}y~v(4j+o@!|y)3WX@=B@(c$4BVS2{;oWI`ZW9c`na&L zK&R8mzP>)5KY#wC+7g;fCXSAd^4hg)bh%t?Z*QkuE)PlX=;)x=>s`Ul&QAXvGMS7| zpFZV*0|$8X=FNa7Bp7>odRSIgCc4+0_;^wf_;Y6FYB?X82EYdo9#9Yj(Gw-9!QTy_ zR3hGx=;&x_G#ZYLjj^z>kQ$AKDwWEwS5#E+<;$0hjg2J$s?}=R?RFZC#*p+-Xfztx z(9l2tYZ`L=_;ETM4!_}IsFKMzdGsg;4ZH9ibVOH0|=+37b&4E0*DrF4Dk zx7+PzR#w)E_@hUUc<$V}fLK*k6}!5+Leke_dU`s0dU~i-D%Uhb5Co2mjZv@Hhu!B7 zsi~wOkb*#iP8Xp0x4kl%42_MAIC=6UE?>Tk+}vE;xN!qUqjBwp5rEGJNJ7dK53N=U zkH-@bbGzM$i;D|MH=E5!Nl95z*XeYks;UZgb#+jwRJeQhE&xEU*JJnY-PpEmTflDX z*s)`1YHC7JQ4xB3d&BBQCXwL#loX83&f=&3e*8Hx5vVW!sI07n&1Qo_p@2@OLt0uI z>~=fa+S=fBI@g?N%nQUt16$<4)cQYV0${h>k)555*49>kEHg6`4u>No{p!`L*t&J= zin{OKy#uhc?T?9x@yAUj6KpmcEEbDDcJSaqw6?Y)KR+J>0|R0AlB`le7Zrs|Lqqs= zXeek7)oL||hljai#}1a1l<@lX>jc2(&!00nIXUDH+qe2ly|%WN z7cX8U07|7&S}Yc}x3{ytzFyR1#a}LcheS%lGsNX`asU4PLACt+e0FtpacXLc{r&wb zHXdu~VtDJ;Eml`o`^RNvWn5fbNU^A;8i_{v|UL3nX66&EYqf3+^ChEaz^xA)5#v ze*;>i*xTOCf6V{@03~!qSaf7zbY(hYa%Ew3WdJfTF*YqRFfB4LR4_0)H90ynI4dwP zIxsMa@nFIL001R)MObuXVRU6WZEs|0W_bWIFfleQF)%GMFjO!wIyE^uGdL?SFgh?W T_^jA|00000NkvXXu0mjf;xh}@ literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after3.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after3.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0af8874bfd4084091c495ff1bf9aede523b11a GIT binary patch literal 3427 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 literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after4-smaller.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/after4-smaller.png new file mode 100644 index 0000000000000000000000000000000000000000..fc946cf038822083111f753f7bdb814ba8a22304 GIT binary patch literal 3224 zcmV;J3}^F+P)mIs-@(M5Rka5H*4g5RE28Q4=*jjRX}FYmDe4wwG9lAt9(>d0>eOb`urB z5*3LN3!u_F3?otn6a-}6k6|dnWd=ix-wW&CJ!j9_d#`iOy?fs~KredHi(d4i7rp33 zFWP|orPLDu{l7ayy6CirxH;*u-+I426(=1J(HiOFH_eju#)WuoP{!kztoqQrhax80 z?g2N_aV64x63vz77~YK*_S(kRUod zwFlGvYy9?9oU}X)^VPR|g(Oj-F!f5ox~8*MY@% zUcJuldRR=k2}v| zPsJ&h=S|-Y-VQJUFj-7VQ&UrI?F$x%Z?R~-+YNuG#Co|ufmH08p`oV53Agenu%kXc-*LX z`jp9><>Ma)+25@P0H*dpJFUv3%z7h-VV1n2_}Bz-b3kkz3tRQF#Pn)St6@(4nfZU* zxF@QWC8cZQ=wQkg-~at?eofoWrKD|cH`q*2_9#9vr?R07zuk+lA{*xe zUjl)^QXm*u46tNH(R3gHSOJ6s@3i3w1pEMhAh->WJPj;|%4}0vGfcgEP zAwL1Bu!2mqe#XGc>ClFlEEyp&p;efINrc+FJm!&aWo5G7wear9Jdc1g;C*#nhm z{dPA_%GmdE*`a2|{Hc?>_s13I1dmao_e*pp z1t;bwo(|cu|Kh#aGZ)kHca3FtJ70R;=$Ef^eTatJ_PaR`q7H`cK72JpbbHGfb<%}B z%OxnM=-9^1(TO+D9KV)RnX+qww$xt9cHzkf4=?WC_TApgnFTQ`Wb48mv@9y~(Zzk+ z147T-%g;Qw)SlNaE{ZGQGx^Sei8uYM<+dCYun8C;yBrIA4G@3;-oR2c*X(Ryy6hP2 z1pEOG0KgOQ2ME9dwgT=l9#3F1=|vdMX5?gVO7ZLdMCCf#Uhn z>qeIltv*D>#7svzO7-!+P!hAyfTFi&xdi1klwDeG%LBl$@QbgGS)fM%hQ-R*tcZ`A zZ()Y>&lO$vHKqWtMhE8=hPp|Yf}!vJ(O6+8Ez-*CNkO9(xJBs!`+z_eZ)UlcK2t3?Q+{pp43-&dN+wu!(iqCDq^ku2%9c%B_JirbEWH99z7wA-y^ zf2(*!l->W@h5^+X$II{eTQd~&+ub+;sJy>ll)S}}1rV)|kEb8_KouamJ{QH|6FFcy zY<`&f-7pq7lMj|$TVhPn@UVt&PfOY6B-5WW`9OJ_W1x7x^t#cYYkde?y|1-{)9_Kg zkp;ESI3%vV)VG17eTgD^6HHhzZ7kRkxnTZJ#wo3a`Zn(#n7SKnVcRopK=e zS;5tvE4&=_xore(d3F&UuMP8xx9w{D{LJ0tgbV)}C!}8{0niAT00V#lfHn{fGy!~o z0aVlcs-+xlsngVenl_j9z%xMJ_LVf?kq8$O@lzqD_HTW75H>~*!gr&f^#p4!<65;G z9)ar;Z{ESc)1|G|p#+fB*Eh%p>cmAAd{sfS4vi`IAGEJ{Il6t+%Zp1|T9I0DQH8p; zCPk^~2wA1YrA>bP#*sPS8JzLhU{K9+u040i|y0Ql(bf9v(tXEC3PoqsMXf5oY`?W$ z6y%lYTU)7-`=t^9M8(8ZLmVq=YAVUjd2ThrQFYJRN{K>#yBjA^cQgD*^|?v9g z(O1^)OjA--t}ZEk{^W5vSD;LLoJ)WdV3w?&5dxM{oq#A{w(LupCNQbXH*gt19`F&s z04Tre#k6F9l$rlf<8EZ1MBZAb_M{B!=l9le);}T-m7cH zw4AZPO@{$6b=^0v9h1EO@I%@cPYt(1f|8uqeDj_@6JY4LtzR`XZcjwkOFWMb3@-X0 zAZV5ap8y;~_hl>I>qF7`Xdpb1b9ouum!GGHnBMty?Ox(R(bSVHV%jJi{d>n-w0QIH0d1ZB#6;-Vd zN8$7%Nr$Hi3BWL$f9k=#-)<+K|H8V<_wZ`KS3n4`6$onc=7$N)1bzng0O7#<(k~P3 zKcCskdIJEOz&aol*afTuH03O(z7aM}Lii-?^TZ}QNDDWL+1z_83ZgmfsOa_@t5=Fm zqBZY)^}T&tjz22M&U#$)^kMiX=F+;8GG21M>g;T_4oob=37fAJR)|tl^2-XYZuT&c zQL_6^-g>35wzi_Utfn&cmh6Ah_25?ao9w*v^NNFYV8f^d3ZLT9ZjpQDG`fvV>bBynDiukBB$H= z((6W#&h-(F5BTHB)4cc_@#(2oLw@=-H)Y#UCcS<8&u47ckb=aGc1!@EbjSSrY(`1p z!}zGU(} zquenf!d5pjX){6Rm#e9zOab6%Xsa*)u++5GSoHQSU??f`SY6)0DT*TUc!-i#A8p<% zlikUeMmMUD=eA>~UO~ia=hnXaReb<}a5Rki8EbGl3$`=+uD}%N8SATdXw@0Yx_ym> z{I)dz%#VhhgJ{nEHD_Lot;-L&O@E&4p94DGcqUFG2B@|_O)ra+t|o}(7IAMH%s)@@ ze*?*j%qtNWQ=Ywz{~~#tL8sgEoLezDe|K=b=tVDj(TiRvivIx)y5Gev0C-*i0000< KMNUMnLSTZgCmW#v literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before1-smaller.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before1-smaller.png new file mode 100644 index 0000000000000000000000000000000000000000..b29551eaf020276e65ae29976892d2e3de3e8453 GIT binary patch literal 1589 zcmV-52Fm$~P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt00(qQO+^Rb3KReiIgZ`T%>V!eJxN4CR9M69nSD%^Wf;bP=YSxZ zrY0G}fWFj17fxqMqKWe$VoNB?H55~G^AFSP16OmcBF&=#nXcxhI5eY$vo${&_F-8} z3@cPdN{NzM;Rj%nrNGr6z8%kdeBX2Mlbl}9AKdqIKi7Rd@BMI|`#s=5+`#`F&bHpb z4FtxGL%Igw1h|cmOGuGK&PA}&i8A?5k}u29tri$hZtD=6dKA z?NFs6gkICz;)2Iim0d7rsP<~UqP=FeYO!JE%WYV0Ew$iwluPN7Zng2R^sv`kq&J1) zbwXVNJbj58RH6jK57Tq{L#d`U=jwr+K|I4?K4l_NOy%{f^1HZ#mkFj9+ZpYdYi7G) z1<_}c8!6@sKmL_QAiW>?mg#=tw@|=bB3a1>B7h)@=|c++)2egz0A~v=bRdM& zWRuHLo5VdyrmvTO6G^z};x*G37wtV>G^zBn$<>=tq_Cg)xF|E`Lb;bu{5+ViejxbM z_bpkfmzQi@VrG6SJ?M;!1lzU{$0)jiQD`?ay=oE9{f3o93~-EiKIbIM*u@B-nM9uE zm?@vR9!@cba{BWFLs)FHg@tS;l~ue?5CG$-CW~2A8@I2Me3p>QcESJ$Zc4~x14Wh( zb&_s80KiUajkzEuaKg5bzWV+VNZ*Whti}Q4(hgWjhy_2N7ukl3m&muwu#S(&pp^c` z%$L+K(G&lNP4oqZvz+4q)Ekk`G}!FQw;n)WxSKc>96% z&EueA6|NQyms7u6@@sWK;X)|VLT`q)DOe~{C$zwrdrW)e^eD_wxx!VgktW@Vs#1u@ z+pRISJ9M5sr&QWgWOJ%%RFO^w<2lAKU_4*36@U^}1F)Ahz-cOo1~OSr9q=dbk#3oB z6}MBxB&vwFjBmq@8#muu>IXt#eKX1!NFsX~LnH@m_zO7#z#$8M3WYQQhbZ;*m325s z^Q>6HZfQK)BES2`7!8O*nxb zp7>$9*~r#$oXOI~c$)vPk7__So<%{P4SaF70!5X=V{G zcsx-=glX?-$5tvMl#Lz+T4p+wP#H10fa$$k!!ZH!Go1w#n+ld_UQhIJoR7V%Je z8rE*ptA`zY^#dW0zAwrcKpg8i#c0ZH_|1O!HN+WK53e`00%AO$`<~2a9!rTZ{K33S za;uLBK%KN-F-q22p)%cZ-i_E#4SGTjg=waug*xdMtyM2YX|BRlIq1T!@+Mu%?f0J^AmZ(@xp-@$MdTZ-?66jUEArzzn6?w{I9uMgo z9nr6PM;(PwlnPa+8NUzXyIGwXG?nAwg~$)MQDhc)ZLPQ*vNZ!oUb=sKWUeiDPOs!gKSVgp=qjA zm{6E@>RF+O)ug|T;r6U9_xUpGb4YD7^3>-lss*c71F!lsX6l~HlE=Yy@vn-}Ok-?Y zZ{nhHo%|I%hRn9!!X@B3`6ON2_!k5DtNIU#Ab$V=03~!qSaf7zbY(hYa%Ew3WdJfT zF*YqRFfB4LR4_0)F)}(dGb=DKIxsNF3bj-K001R)MObuXVRU6WZEs|0W_bWIFfleQ nF)%GMFjO!wIx#XjG&3tOFgh?WxK|D600000NkvXXu0mjf@!s72 literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before1.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before1.png new file mode 100644 index 0000000000000000000000000000000000000000..80c6f54ff5941aad6244aa9f3be3cb4d4d0311ec GIT binary patch literal 2636 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 P00000NkvXXu0mjfgzBir literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before2.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before2.png new file mode 100644 index 0000000000000000000000000000000000000000..48cfc327a65b527fd73a8eaf144298e753e64357 GIT binary patch literal 2614 zcmZ`*Sv(Ys79V@oFr*ZdjIFVZWyDy=GRPWJvfX6gWf0jT4Ve#_<^iJ>9e z43a*S>{0e5`*!F1zIz|;!#xk@{LeZ6|9LpS^Kg=_ER480ggF2J0Jn*;fi(cY;6ca8 zGjs>|ntj)p9+*85<_G|wHjVS>E(<-s>}qUn4gf?*0swK30DuE}Defl#5DEnV7M%eA zI355Hy7&Cu4NZE3(Z$rr0C0*)qmtr?4Bm8+@uYY$Is?p4jl#{x6!{go5#jQ zC^D`8ie*ZF;c4@3fTj>RIHT?tdRk)MMghZmsl<)>uAmmpvk<`z>xgE%j)P_c`*)*L zY^z;Tml-^P)zgNmf+_q8XQS4W=2e{4O#XQM=<~6bD`NL|>spXTV6H+>%vIPP=_|Kg zqRDE=dU=nV4<|f9m3$FTx9T`HgkbO_e%U zPDo`uHyXEjM*CF3;KG^V#~20Pr2qvs6o|02cP7ejQVDAt*?jHLe&N@+mvOw23K>MgTLv=1gyC9K29*{|YuxU%fvoN)y>&@9t9Z;OSRd zs&UvZ5wk1~bbyUjIUhkBNX1$u3!gP<)84r<2J zvpfUjO)Q!9FkmG-V?x1yZX-E$UOYb!7GRD=c;F#?jIa5#!KN=Z2$vp$J)MF>q>t!(UD}q2TyBbsk#e zm;CdJjt$yuBY+P>$nJR;pgYw`FJ)iZas%P-~Z7q<@=AH^+& z;WYPuwMkEG!scX1(9iMn5D^ti=R2~#(-II_&Mya!@lR5*$XE%&j~#T3qi&dR%5Zs= z>je{}-@=#kh2dt3O#`4DIOJh)H1p2m0xjOA^>mns4s-V+ALgz^KTL$8tX3gq#F++ZzJr zci%pi>bBW!N+n+1k=e7q?z?SUWEY^Y(8V&EXY$7WyCy!3Z*G$qrnZj7&Yv~Fm@fxP z1|-4u_pE?4GA9p@s1_>F$e}GTTh??U*P16=UStdEYvc!b_Nu2SeIC{C*x4v zDP(P5LB2x2Ky@AY^f*gAgGNQ)1Qb3}tFI3iht_8x&-02AA5@$_XSBr^CG)4-bfzT1 z-Skx<6+X=(rK0>z{Z>eE6523WQ@PU4F@yIJ!e6R}$ltysgq7d|{~>&mU_*k=y^5Ei{*tCPp+ng<8YG`=Q1HR_a2?>to?_*w}w@breJv%rh!bqFs*Boc! zp-SYlniQ_`GdK@Y3R!8*wIStJI3Z`cFnUa&Y~@}3dQ;|~i))HS(qH@bZx|LfwHJus z6}h%jKSWRl;?*$m30~;it-W6P%t65R5|3ufEnv-W@mFfe^9vi~m{5}L57x(I@K98e zX7b>nap!fF-5ag$kQ2G$h69HyTrN#5Kpmga1h)WLgP?k<-om0t8E=X8X1Qg}w7}S! z=C%V1As5)V%^S9ok>zT4jlUuw%tDo8&i5 zmVfy6<^r{$2JLIDk3Sc?ur+S<0iHhh*FB@4eC{n5BrjB>LC<&>4qga0)(*D)MEcK| zoj(E71VEyDZmRZr0$x0?+beY@)_``*eXhcybDLJE>qrj_G1QQCadoZ zRI!9z`iN8b)QX1~Gg%;aLFa4}4schakxYrW7b)_#!tmW|!{gba!>41c%Rr8~9g8Dr zy_}TNG1JL9hve9HRf!Zf1*S^di*ZVI(Ss5VPZM<=$}JvxNbX%E^|Pvc^l~11z~Sge zk?QFIk-o%^BetY3E*_ROK$rM~N;6*@gg~g^JFuIu`AaTA9`_bbB32|wiAv8+Oaoc~_dlRD@4N3wDbdwyp@xsP=3 zAo^wdsR`^;EjVPL_`nn-abTfrd)-|sk)q-L=ZD$g+OXFllB!C?8q!hy&4l5#!Rqb` zxlu)%(w<2>3}lJ(=}Lax_(XC+q+m7C1orQsq%j;Hm&+zsQf!|*^?d5u`h z6U6Mx3?QZyN=03;#Uyd&^x3~Kh)=^RWs<p13B^0V4`IAyKHbDbGkBWMy?Uz8)*oJLm#{iJ^r-m7a6_ FzX1UJ>=OV0 literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before3-smaller.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before3-smaller.png new file mode 100644 index 0000000000000000000000000000000000000000..e525c6d4b1478af025a32e29bed9c3883d5e9d2d GIT binary patch literal 763 zcmeAS@N?(olHy`uVBq!ia0vp^DL^d50VEhYKBEr|n)+LObW;}}jw8T=@z3!3ZQ;|NMvF0Gx z^DFcB>Ycn`A{ZI>^PG~SO5UTlCsw!%Rh&t-3}jJx+gEFo)+&&4ciaDkoKw#JnYMO+ z%(IysljP>j{;H8Shc_`n;P~?wUG}OxJcsz_R9?F0t<;_VzVYX)tp~0gVqJQosQ34b zfHM_IYzv?6DV>;6#wU=#zG;hJK6BI|1%@N-NfS(??3y-Cl9wyqakx+A=$A9xk*VjV z-Y;Ko!Vr7;Ys%Hdra1+_E{F?QF!8KeyiD3_L6`myrR=S((T5J4*q|;F>Gjy$YfW+I zo&v##i3uJ%^iLe9-YesG*s+qG`OKspw>3IFesSB+d0X2e7foILqE4@``1F!AVpyZz5W%xlh! zJ&hZsq9tdDug!GkI~gsb;bvpR7VM|KKaSUR(ZmC8329&cerD#_HKFzEeuD=rI_l31 zi~^V|?2jmG7Ur_rUsQX@)H5-1d-O-m2k#d)sqW1c^bwiu1WYA)XEw|$)-41k2L{y= z*NBpo#FA92(^b literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before3.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before3.png new file mode 100644 index 0000000000000000000000000000000000000000..40c360151a09b90ea2b449b4e8f07c9a16d5837d GIT binary patch literal 1461 zcmV;m1xosfP)9s1m00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt00(qQO+^Rb3KRf4I9uyJ?EnA-y-7qtR9M69SA9%XWf*@C_g=o# z8-%F?yxI7p+uUpoTvLjHS8T%ON4j!W1~e9sk((Jf39&3)D+X;fQi=gf$y!4%t%Q_< z25UoQt-35EM2QiWeBIbV;Qo5g{o>wp&ig{gg01oUEGU;ztQ z!2cEj5Aa&=O|q<<=LDmYSInl{`pbiNF&mRFgQ9i)9HeW=%6Kv*LK)W;(+rLVP)leK zUtrRO1C!{muv(u7+DnUVnAo5>zfEF~#|+x@^^M+h**f)(i=`=Zlq)7R2Q9h3Ae~xU z&>6_oaUA$~5vz68Byt5hC-09(Yt>=Aj()cp<6K?3z9!Y4fqVDnyf=UgdRhGH-rlghX_sd4n-#-zb`N%VxAb=49~|Ue~O^g=CC)gsdB^3znX76Ubl_KEQ|m0mJP-Bq8Gl;{f7VETIvX zf;efk;>A1DVeGk;KfSfw)vp3oY{q^xD3VAZ+t5Oep_0k60Bd-8v?1HiUz$-`UKpqD zhlcqe)H}aVr+I~Vkc}(sA@{j=^E8rRKQAKDB#yBU>M1Ie1zk-|%^=$7Z%vFl^6HrL zuztBh%`bxw%3VD+;tN43qzH9vA&1Z^52e~1KW`@0IKm_a|Hav@`suV>a~^O8j+48# zmrUT=G8O-=ejm6Fp0Q^*nka+_&773TL42nS8VHF+-(n`|VIYjzD45OWpHM`9%^~g~ z#*?Mz+CkK+`AU@GIieKuIL0`C)VtBCnoT3GLS*9>;i3&$UOQqGZ@8>n=gE@$N^C@f zpcJxp7za5+MvNg|CAmIWepD29=%HaGk@)z>ZAgsKCPx06&uuB%p!8sE4(eGWa z8B{69Q9pYjXVL62t8h{2CuI2`k&r~#3kxVdhrOU6!QFGspZGM8KW2Cf`Yt5;$BYA$ zX8jd>--QZQPToJ+TBp(NF|9bO^yTIEWnaI@)p7LzD)sy!$r)4!%VWpzE=fnF5Yma& zYMkvDH*jC-E93|qo{!5;lqmh3Z~Nd0S`zbJsD-_#$Th<&`%%F?9~9A3j(g-WlQ^`L zlp~dpchqZ_2}t0+)mKOyaKLM&D18>Pyk|t;gnItOQEbLJB)mqQr1nM+zkoZnKI^QBBIB#;-4u@!eL-5x5*5HH?9eMX1s93<<;BTO> z!NfU3DwY5M03~!qSaf7zbY(hYa%Ew3WdJfTF*YqRFfB4LR4_0)H90ynH7hVMIxsNk zCIJEf001R)MObuXVRU6WZEs|0W_bWIFfleQF)%GMFjO!wIyE^uGc_wPFgh?WnR~gu P00000NkvXXu0mjfgcO|U literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before4-smaller.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/before4-smaller.png new file mode 100644 index 0000000000000000000000000000000000000000..2dbd0588b767e802d3ff640de6319e5fdca4de24 GIT binary patch literal 2987 zcmV;c3sm%pP)=B#=M?2_%p}0tr3> z`s+etTJt=1e4|VHyGz6=TxqhknF{%{&pTQ?@!}xGS#F+A6F$=}@x$o)3MtumC*_wE z{dw7W3;_VK9WNxFnJ+(j^MYjIQ&Qz;H408c(i4{*3rS4ROp6cLX{A0I0+5UkWL5=# zJBsE0HF-yiCvF^q?yl6*^K(D_dNA@*M$K0k072(pKbgln=-P(q?sqpONty53Z~QnQ zp^^J{S2-L=euj%>Pt3lRj&A2)&kv0BoJ0Zun%$Am!!Cw$*hnHWZMV1*uAGkf#N~>c zceHp4jq|BjgUAzLQ*sNQMR^^K zRkO9yCIEE)dFvr_ef0D6t2^iGNQqaz_NuM(Uih5P=mG#BDvh74r%Wcv=}fn?|JqoE z`e7VdS#Po~i-ghG26GpGWBrvHO$7e9ItiA*l8%MDsFp2~Z8Rfiuu8lUwf`o^P@=G~0d{J>~^!4z^#Z}R(RFDAv z{B^*|D=tq=%l%$M;s%ZWF3CEDmWMjYBDPz6YgziuOa6)FwJCQZBmA$V)Rg$nrQ+vB z$_st7%Cn;U&RvOnnj9UMU;e8lS?qf8braA&zWN|}>ysHJ&ttD%@DF}aP?dIUZr@}V z*H?J{q#13AEqobw`K0%S=%?j{w|_JlY&eX@kRnQ%pU!&XsW0@6o1nKnxhQmLpG7p* z+^)Xou7v?0rj1`=S;%*qya+V?^*^tl$fH~Kz9Dg|Asqk+dYBgA=>) zOELfe&CoNsK5e%FQAl!3&HhkG?4M<2cRdV;`-nbv-nRdy7U#xno+NZCAl9-7PUbueXvE30sugsu5Y&la8C&B^;r82|uCUPnhk0Dn9kaPo@F6Ohu1 z$htpv>GCcx76!b!xm*z;wp)Db{f+7v$;|szL&P#gL|qcxaNk`W!;2$r^=nbiX>*>6 zj5$89x~l!Y?w$a@@NA!f5O*M%@v|2%+k7(iRYCYl?V*F|ItzXZ ze_omquu|v&0#ScYdUdF?;s+s+()V}Ue&4RsACuu2+E{XC7Kvwzx5YlQX@dgb^2gHw zC$G3X0YGNam8zU$Q%C?v@w*$Zf)>jHAhuf^CvZLmh^9wh$qdo0?6Z?H*Q&q1O>#;K7(kBzS8!YN zA4cUrjJlE9l^*Od{rZnd?|H1`jKACCeZZM<@5s6-OMkEJ2Ekxhd90;hb&0AUD3S}n z?dp2pf8iacx=D)3=u@jZ_u2DzgCgMZ$6E1q;G0)mo&c?J0THJHU1uN6C|AxkBS08CgbWWk>(--nP~@F7bmmM6VY(f^-`WjEScYMaTI>;88njQEp{R z`y0wQDpraK8qeQXc>V<7zP`Eot3rnjo7Nn>d&s}`me+DupNux{z%-!G+__67U|G8D zxy{*Yr|z`6b8Vx6nO8PnFZH~xszKGUM|WHu(#pExlD89QOp(19(=1AlJ1ffS)buAZ z(X)Ck03aFdvGSbcs$LOp1%R%~@;XH;bt=Gnvg)jL2Tpj}bl%+WWE_;y&?EeAOmq2` zg$2G-(>e!<%Ee@uGX4FdtEn?NIaLEH_YAHIkAJTK9r))JmnXoxCxO@7ZhyZds%$mo znoG*Nk;LicRMx6Z&}E>kCN2O_6clB!mXF#jYP~{q8wNamFpbsceU0x}8Xd`Q2LQ79 z*_;c4#^V9kp8yE;HfDt#UK4iMUBmX5-@>o$PBHLI?*`rjlQ4e6&vWkYIiF9Jm2Ru6 ze_Q*yk;cG1xalnmznEmY_qc;51pt7eZR2Rc#sJ`L{Au6n#oj*4^`sC0MZ;#xwgsyA zd!_fOem>deyALl=BLWbVt-W?kO}Q9aB*4TpqfMvw%uyx*5LIkEHyETPq`m=QI-k9~ zsQK(X1B=Z8BFzB+is{B5#{G8cTG`NE5hu8;w^k+q5ZN{d_sq??68r-9v4YDVUk849 z=@VV{daX8LQgrM+4{V&NL{zuhdSI)SIzbRmc%K<`wZ!gJpi7y5V4l#L`Nrvf8FszM z+H;>JivT2+`M*7Eqy)aG3F?)F9hECfK%SrhsE>BF?FJDc?dZ80(S+@E3!>MCEP zXXKR^Bpk8r|B^)>WB<$j%8rhvnuhk~yoepQE7RL#gPv-3nyv+vo2KaI42J1rd+uG|m zoYI5??q{=W1Lsr3t`}c7eDK$YHP8Ex+Lp5Pr1V#L5B&aft2FocRN_c{#owO<1=F>D zPpaBmD)S3!+8Z*1)*9lTOd^_+y0Vl=pQ4Bi6)iQ{;aed@mebT$l@|3R1fwf|p(FZm zM3Gn5P^69IV_APfw#5${EQjq;k;3ZRtw}$Q!4OS(>{!;I3<$$;6XNn8ssmnLnu4M< z1^^U!B^d$$keEtL68`uPAW)_0B!LS6hG9rp97I)ART{dEh*K|)ZkXzlEBkN~UzNnX-1KH*Z=qoBNblo9`|<~e_q?xpv8>gn&wC~2zt0GbdbREF@Azi8jCcqdo?v6a6$8L=M`A`& zlZx)*M`p-SuP`83) zA`9e4GZicIFk1*Gr$(vPD>5={X06KA>`=<$(cWeY8)B(zYaSQtMP```b8*_-L$7uM}td4*rpQ=zeH}C)8D0Eiy3m zRuE$f=gsif)Z}ov@+B%c-J130S<*Y8rY*bM!ZAa4p)9%?eplLHaSMy>9Ek{50sRt< zviUaHeX8(f!mL&7i@-)8IGxz)Abx>fP2+gB|9+>v~@^SWs3{Hn9=8 z+#f7H~;JU+EL_l2ApSL4Asx`OpC>hXT3l7!YjTYI(KrmWA+mZsHmu@#&T4H z{`IKH^TTTA_k*mv#8u5CbikU30bp{&~dAAvw1%DZ>(Hslqg zrDt1x>ecHoNGB`NgFf--_I(HAP<6Z{2cy-ADO13j7a;P&p_-mJ5(aDX0y3eY&Q~9} z*5D5sHl70MS)Wmcsgu9HxvoRjM_l~;>}-8~J<{V1t6oxUY;0=kLY@7B?zsq#pb^0C z+fgO@c1i;7j~F9tyYG4U`W{D!D`vu&RUf6{yzBN}!cea>5^A2sZ!G>8Vyccp6B`(m zf?DbpC9zeXZQ0!K$yZ2ad>uZ32Gg3~8;^|&8j-t`4>J^U^ybfvjCi{~`$QwfB@nT{;S87-ek3xVZ*vZwEt9|d_U?Ep3 zX1Ub|8=RAydr&9LqEqYS;ZY$c+5T;{r>Ez*{h4wWnE`&3_{z`E?{~fA zk&p<$)8W${7#OIosX4Ikw3@GFI60_jpQg<<{N&{1REgiUu+UstS?Rda2EZj}A5kN_ zT1TzKtm_&an?3tZij!)@^guXiA>r7`qlHIiOm_Hfgr@~UPhVJAC|xiSMZ(b~`$kDg zNmEl3EWXm_*V=+y%+Pzhk2jyNz`^YPi#)^QD!GygP$&?r`sGWB-4IMAkySsk0zv|U zze6&ikQtf#|MIY9E-O25y79NnxTPxQYHxy0P|#>{=q>x=$5e0)$iZGwYag(w97R9!r?$Ljf^Vt zyG+r8>9QaAes>qBO&-Ur!A@>&u#i*CoP^)W$+xqnF>~ySFZ3%P6$HzsnT=L$Fh_pA=>XG&K_D=BxWm-bvn!Z%11ahPA@R@&=PH`9jb6Veed=P zq@u}_dF*vWMT2N$>H)<#t<6NefB$9*d2tE}2?_kSnp}29l9Q8>*qwIVhY<}YL+FHs zmm2<4h7NB@>{B{gTJznpY_Sl~T&?v4%ytG@IaxV5$8ma(zOq&>pg}MdJpgsz25k0r z0iT-$gygfav2iFag-+vFb7|?mMwgwZh^EYf0?QhU;q8%h-CHkfn9hNzNLpH2xnTu& z^=Eg&eke&pJIJ3ocxL)((B#TMNB6g3Z3&axW>UIL zV@9LN@BWHfDjF%IzK?g8>L<-FH=-^r*Sdaez@s9iw!DPYAlsJJ#Wg$E@?q8 zcxwa`+6B8`4U#UFzx4s%Og0!SrdSN8(8|P#X4A8ehq9yxSOIhJeJd|+lC^376X zRKLV&KvIl*x@gLVY3r>vbohG1?O-}xz>SfU^Xp8xzPegzDnvtC5-AhQEnY6>6RBL* zXY;ldt=G#w8kd(8vse>G?94x+jJO(IgYEIrfL55#K`4)5shv z319xc?3lFbKfk`l!^2ZjP!RS&=posvto*Cd?E@86j_pjj=uZw)xVX6Z3rtK66`y4! z*~iAlkdlH0_P(sf$DR21FBqRYTn>Rii2g)Y1j&rV-@jWPuNJn0lp@}+FfQmxWR^x% zp{d9q;VPLoW#z<wYcu_smYB!;RH>ZNv-oKQw$tSWd`HtFL+J2$=0-eQ5NsHsa< z3}H42(~(z43!2(oj>|%2w0U`X>MGIK$14H1XItF1(`t#@NXGcDbzwwFen~Y+M*=Z6 z_Ot^XZ&9leh;8V5+B-1l|9JNj{P6hb*pDUckJ`CY!+BE@FPm4bJ?fxLBNL~Rqt*y_I z3jR1x{;8#Sm}g#8pL~?+gvD$2w-Hd5+lvXE+ZFE!n5}kuhTB1*Oc5+$nufhvxMLA; zBX!**Hrd;|^)F8jiN3yp0nWFzl)fjOtv=V=o10p?!+z`)VBdBE+1yrn(Kuxd?d*Bj zM&@%*XW;Gm=|$;)ko{XmB5Fx?lNS)nf6dqF^-|#MxTqXHMu{b`fcM2N(m43`$I;3q zvLcm*{8viKT_1JKtg?bnpCigoMxwL^HICm+oYli+E8U?Gmk(sTITOw&@81Q;6Pen{ zgGw~fNkD%JYMj>6>;J0s#sr|yn@4X?s=N!#$)U=P&?{2gcWrXsfD;iBmFYG9D+a15 z<0`zLc^#^ZIbC>$tBkvqkjX@!y@{ZjUyk={N2$Fw@gQPboUM{i3C5QuIGAyH;44tl z70McSnqnRvq*!3`)u(5nd*uA21u?kuSOTZS#Z}wQRSzbzk%_qv4i4Ho;k9BKE2DAt z1OY8NV)9k#v_MgxF)5fs9`kdqjRoyE^(DK{jWX_yKLiJ&lVqXfC*=(@guY@&dz}>; z_RCV;RLQ{jxB{i!VB>%hApy3U3ODpGY8Ya#iEKN?WM#F2$)|=G#HfZfns)Su^+s4P zl4wg7n4X$k9k;6pcyl>BTXF4PZf>$$tD1+krQ!LbIH{hF8v_pp-dSC=7OF8iIy%C1 zgpsJOXn&gD*4Y*_QMjJz@|@^ACYc3-^K)Xr%ZL4xm2-z@L|T|ppD;0ma3+S@vPX>= zNq93FPgM0mJ>O96W;@dOlYZE#D?71+!FDT(D{ZxoN};$=KfS@5(>~5>d3lg-J%P#o zW~FhdVN5Dnb);(ldT-0+wEl`taS!QB@Q}X5^uKi*2Tmit(#n=|f}u*ZagARV+q~T6 z{ney7+q$#pQ)uZ9slL89yVTR=wA?UE755p|;(|8vk7-2Ebl*K%Mo669Tu`HF&rD)1 zm;A@-yD=%GbT&9FH4P2P2LuEx1UcJ)h=D&C71ML4&A)>JMcMIES?U*4hbN?o0`sFW zsRdJK3=94Q_eLahN9Zh0Lj6E6t<1n&DGtS#A|h&xib>`p_m3Xo;Z_TE8Tf8)Zs|f^ zXN4-cSBRziDNVzK#6&y_8@HqkxICO=C6{PwS>v{gv7Dv42R*HCly)iCgI@@!*1IkV`w@EM8kw#cw^hP=k1xL z;gTq}WcCGuCKX9?Is_Tz6BH!dct*Nw`;$*wDL?k$sbLaPS!aw-`L6Q^wuNqP7bT9qM5sT@K;N7ob=>K53TWYy$OLP)%_y zbT!!KXT3M@!AS_O=1faVf`mRl6cn3rIh*tj)r>LuX}6G+LI0_?v`8yj6lnh&wam=Z zWc%vk{57W`=_O&qf^meTHZK=ft?KJI^G1bKo{XtsBVIaUE8Oxa7X8(i%lS^#j6MZ) zo`JwgZrUUl3`Z*)h7K>Sw%&17#x^k^$ZV=uhZ(J{&?Zb=o&MyaXMs%WZ;B)w!||95 z0?U9UKD((hmN*pRL>(@3$uTl*3=sXl6R*}FuySHSY;JGot5VF^us8{0U;Z7$dOl?Uqh^-4f{VWCw`a>8cU5A36P zSWPvQAu!PL?pmolVk}ixwGkgH)(=2nE(0y<{t@nBr4v&4|6Q?;;a(yN` zDxmsJn1oW6I8#7^>%#|&*-B%i_yqvN|NaaE~A6lFHD}%AK)9VsQCNCrbH%Zc&p3@CDnyU;?#5u%76dqfwBlT zH_pxPY>zw?=zRP=b4+`{_{Bq64_=7lDKI`*trCdvz1Qt^{JvUJ+JxFM7`8~|KQUco z=6Z9orfKL$w7b&&j1+T`o7L~?B^p!E7x}oGMwt6quKF^{=I|6MJ8HWILzB$JeXz>tBO(JE9C8-KwaZq!)`i*8_1u{SXPF>g=WGg$Y)cG9DJ9=2?-5!B=91tTa8AtyQ z@+c=efJze&_zZ2Z0Dg~SrtnrEi=EAY;~t8PcG`4b8NGkCtjA!o#SvaI=jwBJdR*G1 z*J@@onjs7~EfaZuIG--ledl+fvN3OqGd$Agxx3)#;woTvJA82=)%NWFz`H`SWP-*{ zGL$H_@y4pfzi-s>^Ug?|=&6SHU2}nAwzAMWg0o--X(Q`IR+%zg^ykD_4ng51Ble5y zD+AT!4e_5?nlouRIofoJM(pBEjZyVNx?Y5g+`lU8FaZaRB|`II>($|d1o6$99hTkF zK1nSmAEQn0yL}VPIzQ6?OgP;g;EVt3vgCR1kIip8XM_njJ(tkoUNh{*s(^B`UDDes zPVR-M^_HhXp%%_YvjPGlM&G36BVA#Y6LfWU43d$2o-2L{9#20b2*bi+9UMNLj%Ax{ z_VIlgs0)2~=;@2aI6eJVFG(#KMUX4$m8v-2RHSw*7DCeM13GKi~?-)5$!e(nRvSoq$l~C@Jr^#Al73k-?M`2 zi`F7r;iso3q@UE*);uV1SZV1;I+U@qt@E?P|VxJ|1M`8*JrM!E_^DX4kE zz|!v%v0P<(a`InW5Dbhx9hU0F`+Qs-Y?OlwzBU^0i;@^Zhh8&A`rZiwFrHL-BFbwh zRaTL?HKD>%@76NG_~^%bW(Ediv#2;zVYt%ZywT!y?vOszCq5%9$3b%E<%5n*MP(5Z zf+n)L1s;q=AS9JT>#e}4V^jN=EBYP*NrWaPIg;MCK<5zoY)>;>*J%=X3HpS*7>zh)w#5PXdxw?LtzO=@4c) zidR*2&26h;2I^yClPWqqIBLB_{E@wM+H6A+O>t%hXsIS}iNh;)7nUG9h|9C3JL{}iKIYZUz-#=ILh)2$ja2Xs;KUXfv6&7mY zPWe%w1VH)yTl(f;>ng@-4l~!CGmqH7Lm+%fhG$-0co_LZKE&9!SG)+k)p4wcC2i+m zh09+FaLNP|#pMxZ%CU}nBdH5EN%xrg|Lu#u`2BlE_a64jB?4LHBWL3%G7^g7<)TJG F{{y@A$L;_C literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/preview.png b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..545cc511abf0cc90fc9020cf6665f5aad2062eec GIT binary patch literal 14650 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 literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/release.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/release.md new file mode 100644 index 00000000..f8565e81 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/release.md @@ -0,0 +1,21 @@ +# Release procedure (for developers): + +- Ensure every `is-at-least` invocation passes a stable zsh release's version number as the first argument +- For minor (A.B.0) releases: + - Check whether the release uses any not-yet-released zsh features +- Check open issues and outstanding pull requests +- Confirm `make test` passes + - check with multiple zsh versions + (easiest to check GitHub Actions: https://github.com/zsh-users/zsh-syntax-highlighting/actions) +- Update changelog.md + `tig --abbrev=12 --abbrev-commit 0.4.1..upstream/master` +- Make sure there are no local commits and that `git status` is clean; + Remove `-dev` suffix from `./.version`; + Commit that using `git commit -m "Tag version $(<.version)." .version`; + Tag it using `git tag -s -m "Tag version $(<.version)" $(<.version)`; + Increment `./.version` and restore the `-dev` suffix; + Commit that using `git commit -C b5c30ae52638e81a38fe5329081c5613d7bd6ca5 .version`. +- Push with `git push && git push --tags` +- Notify downstreams (OS packages) + - anitya should autodetect the tag +- Update /topic on IRC diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/README.md b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/README.md new file mode 100644 index 00000000..eefeb543 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/README.md @@ -0,0 +1,124 @@ +zsh-syntax-highlighting / tests +=============================== + +Utility scripts for testing zsh-syntax-highlighting highlighters. + +The tests harness expects the highlighter directory to contain a `test-data` +directory with test data files. +See the [main highlighter](../highlighters/main/test-data) for examples. + +Tests should set the following variables: + +1. +Each test should define the string `$BUFFER` that is to be highlighted and the +array parameter `$expected_region_highlight`. +The value of that parameter is a list of strings of the form `"$i $j $style"`. +or `"$i $j $style $todo"`. +Each string specifies the highlighting that `$BUFFER[$i,$j]` should have; +that is, `$i` and `$j` specify a range, 1-indexed, inclusive of both endpoints. +`$style` is a key of `$ZSH_HIGHLIGHT_STYLES`. +If `$todo` exists, the test point is marked as TODO (the failure of that test +point will not fail the test), and `$todo` is used as the explanation. + +2. +If a test sets `$skip_test` to a non-empty string, the test will be skipped +with the provided string as the reason. + +3. +If a test sets `$fail_test` to a non-empty string, the test will be skipped +with the provided string as the reason. + +4. +If a test sets `unsorted=1` the order of highlights in `$expected_region_highlight` +need not match the order in `$region_highlight`. + +5. +Normally, tests fail if `$expected_region_highlight` and `$region_highlight` +have different numbers of elements. To mark this check as expected to fail, +tests may set `$expected_mismatch` to an explanation string (like `$todo`); +this is useful when the only difference between actual and expected is that actual +has some additional, superfluous elements. This check is skipped if the +`$todo` component is present in any regular test point. + +**Note**: `$region_highlight` uses the same `"$i $j $style"` syntax but +interprets the indexes differently. + +**Note**: Tests are run with `setopt NOUNSET WARN_CREATE_GLOBAL`, so any +variables the test creates must be declared local. + +**Isolation**: Each test is run in a separate subshell, so any variables, +aliases, functions, etc., it defines will be visible to the tested code (that +computes `$region_highlight`), but will not affect subsequent tests. The +current working directory of tests is set to a newly-created empty directory, +which is automatically cleaned up after the test exits. For example: + +```zsh +setopt PATH_DIRS +mkdir -p foo/bar +touch foo/bar/testing-issue-228 +chmod +x foo/bar/testing-issue-228 +path+=( "$PWD"/foo ) + +BUFFER='bar/testing-issue-228' + +expected_region_highlight=( + "1 21 command" # bar/testing-issue-228 +) +``` + + +Writing new tests +----------------- + +An experimental tool is available to generate test files: + +```zsh +zsh -f tests/generate.zsh 'ls -x' acme newfile +``` + +This generates a `highlighters/acme/test-data/newfile.zsh` test file based on +the current highlighting of the given `$BUFFER` (in this case, `ls -x`). + +_This tool is experimental._ Its interface may change. In particular it may +grow ways to set `$PREBUFFER` to inject free-form code into the generated file. + + +Highlighting test +----------------- + +[`test-highlighting.zsh`](tests/test-highlighting.zsh) tests the correctness of +the highlighting. Usage: + +```zsh +zsh test-highlighting.zsh +``` + +All tests may be run with + +```zsh +make test +``` + +which will run all highlighting tests and report results in [TAP format][TAP]. +By default, the results of all tests will be printed; to show only "interesting" +results (tests that failed but were expected to succeed, or vice-versa), run +`make quiet-test` (or `make test QUIET=y`). + +[TAP]: https://testanything.org/ + + +Performance test +---------------- + +[`test-perfs.zsh`](tests/test-perfs.zsh) measures the time spent doing the +highlighting. Usage: + +```zsh +zsh test-perfs.zsh +``` + +All tests may be run with + +```zsh +make perf +``` diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/edit-failed-tests b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/edit-failed-tests new file mode 100755 index 00000000..e3a76685 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/edit-failed-tests @@ -0,0 +1,40 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +type perl sponge >/dev/null || { print -ru2 -- "$0: This script requires perl(1) and sponge(1) [from moreutils]"; exit 1; } + +local editor=( "${(@Q)${(z)${VISUAL:-${EDITOR:-vi}}}}" ) +() { + > "$2" perl -nE '$highlighter = $1 if /^Running test (\S*)/; say "highlighters/${highlighter}/test-data/$1.zsh" if /^## (\S*)/' "$1" + >>"$2" echo "" + >>"$2" cat <"$1" + "${editor[@]}" -- "$2" +} =(${MAKE:-make} quiet-test) =(:) +# TODO: tee(1) the quiet-test output to /dev/tty as it's happening, with colors. diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/generate.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/generate.zsh new file mode 100755 index 00000000..56960202 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/generate.zsh @@ -0,0 +1,117 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2016 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +emulate -LR zsh +setopt localoptions extendedglob + +# Required for add-zle-hook-widget. +zmodload zsh/zle + +# Argument parsing. +if (( $# * $# - 7 * $# + 12 )) || [[ $1 == -* ]]; then + print -r -- >&2 "$0: usage: $0 BUFFER HIGHLIGHTER BASENAME [PREAMBLE]" + print -r -- >&2 "" + print -r -- >&2 "Generate highlighters/HIGHLIGHTER/test-data/BASENAME.zsh based on the" + print -r -- >&2 "current highlighting of BUFFER, using the setup code PREAMBLE." + exit 1 +fi +buffer=$1 +ZSH_HIGHLIGHT_HIGHLIGHTERS=( $2 ) +fname=${0:A:h:h}/highlighters/$2/test-data/${3%.zsh}.zsh +preamble=${4:-""} + +# Load the main script. +. ${0:A:h:h}/zsh-syntax-highlighting.zsh + +# Overwrite _zsh_highlight_add_highlight so we get the key itself instead of the style +_zsh_highlight_add_highlight() +{ + region_highlight+=("$1 $2 $3") +} + + +# Copyright block +year="`LC_ALL=C date +%Y`" +if ! { read -q "?Set copyright year to $year? " } always { echo "" }; then + year="YYYY" +fi +<$0 sed -n -e '1,/^$/p' | sed -e "s/2[0-9][0-9][0-9]/${year}/" > $fname +# Assumes stdout is line-buffered +git add -- $fname +exec > >(tee -a $fname) + +# Preamble +if [[ -n $preamble ]]; then + print -rl -- "$preamble" "" +fi + +# Buffer +print -n 'BUFFER=' +if [[ $buffer != (#s)[$'\t -~']#(#e) ]]; then + print -r -- ${(qqqq)buffer} +else + print -r -- ${(qq)buffer} +fi +echo "" + +# Expectations +print 'expected_region_highlight=(' +() { + local i + local PREBUFFER + local BUFFER + + PREBUFFER="" + BUFFER="$buffer" + region_highlight=() + eval $( + exec 3>&1 >/dev/null + typeset -r __tests_tmpdir="$(mktemp -d)" + { + # Use a subshell to ensure $__tests_tmpdir, which is to be rm -rf'd, won't be modified. + (cd -- "$__tests_tmpdir" && eval $preamble && _zsh_highlight && typeset -p region_highlight >&3) + : # workaround zsh bug workers/45305 with respect to the $(…) subshell we're in + } always { + rm -rf -- ${__tests_tmpdir} + } + ) + + for ((i=1; i<=${#region_highlight}; i++)); do + local -a highlight_zone; highlight_zone=( ${(z)region_highlight[$i]} ) + integer start=$highlight_zone[1] end=$highlight_zone[2] + if (( start < end )) # region_highlight ranges are half-open + then + (( --end )) # convert to closed range, like expected_region_highlight + (( ++start, ++end )) # region_highlight is 0-indexed; expected_region_highlight is 1-indexed + fi + printf " %s # %s\n" ${(qq):-"$start $end $highlight_zone[3]"} ${${(qqqq)BUFFER[start,end]}[3,-2]} + done +} +print ')' diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/tap-colorizer.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/tap-colorizer.zsh new file mode 100755 index 00000000..f3dc84e7 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/tap-colorizer.zsh @@ -0,0 +1,71 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015, 2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# This is a stdin-to-stdout filter that takes TAP output (such as 'make test') +# on stdin and passes it, colorized, to stdout. + +emulate -LR zsh + +if [[ ! -t 1 ]] ; then + exec cat +fi + +while read -r line; +do + case $line in + # comment (filename header) or plan + (#* | <->..<->) + print -nP %F{blue} + ;; + # SKIP + (*# SKIP*) + print -nP %F{yellow} + ;; + # XPASS + (ok*# TODO*) + print -nP %F{red} + ;; + # XFAIL + (not ok*# TODO*) + print -nP %F{yellow} + ;; + # FAIL + (not ok*) + print -nP %F{red} + ;; + # PASS + (ok*) + print -nP %F{green} + ;; + esac + print -nr - "$line" + print -nP %f + echo "" # newline +done diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/tap-filter b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/tap-filter new file mode 100755 index 00000000..f9aa6041 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/tap-filter @@ -0,0 +1,47 @@ +#!/usr/bin/env perl +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# vim: ft=perl sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# This is a stdin-to-stdout filter that takes TAP output (such as 'make test') +# on stdin and deletes lines pertaining to expected results. +# +# More specifically, if any of the test points in a test file either failed but +# was expected to pass, or passed but was expected to fail, then emit that test +# file's output; else, elide that test file's output. + +use v5.10.0; +use warnings; +use strict; + +undef $/; # slurp mode +print for + grep { /^ok.*# TODO/m or /^not ok(?!.*# TODO)/m or /^Bail out!/m } + # Split on plan lines and remove them from the output. (To keep them, + # use the lookahead syntax, «(?=…)», to make the match zero-length.) + split /^\d+\.\.\d+$/m, + ; diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-highlighting.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-highlighting.zsh new file mode 100755 index 00000000..8b564a8b --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-highlighting.zsh @@ -0,0 +1,291 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2017 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +setopt NO_UNSET WARN_CREATE_GLOBAL + +# Required for add-zle-hook-widget. +zmodload zsh/zle + +local -r root=${0:h:h} +local -a anon_argv; anon_argv=("$@") + +(){ +set -- "${(@)anon_argv}" +# Check an highlighter was given as argument. +[[ -n "$1" ]] || { + echo >&2 "Bail out! You must provide the name of a valid highlighter as argument." + exit 2 +} + +# Check the highlighter is valid. +[[ -f $root/highlighters/$1/$1-highlighter.zsh ]] || { + echo >&2 "Bail out! Could not find highlighter ${(qq)1}." + exit 2 +} + +# Check the highlighter has test data. +[[ -d $root/highlighters/$1/test-data ]] || { + echo >&2 "Bail out! Highlighter ${(qq)1} has no test data." + exit 2 +} + +# Set up results_filter +local results_filter +if [[ ${QUIET-} == y ]]; then + if type -w perl >/dev/null; then + results_filter=$root/tests/tap-filter + else + echo >&2 "Bail out! quiet mode not supported: perl not found"; exit 2 + fi +else + results_filter=cat +fi +[[ -n $results_filter ]] || { echo >&2 "Bail out! BUG setting \$results_filter"; exit 2 } + +# Load the main script. +# While here, test that it doesn't eat aliases. +print > >($results_filter | $root/tests/tap-colorizer.zsh) -r -- "# global (driver) tests" +print > >($results_filter | $root/tests/tap-colorizer.zsh) -r -- "1..1" +alias -- +plus=plus +alias -- _other=other +local original_alias_dash_L_output="$(alias -L)" +. $root/zsh-syntax-highlighting.zsh +if [[ $original_alias_dash_L_output == $(alias -L) ]]; then + print -r -- "ok 1 # 'alias -- +foo=bar' is preserved" +else + print -r -- "not ok 1 # 'alias -- +foo=bar' is preserved" + exit 1 +fi > >($results_filter | $root/tests/tap-colorizer.zsh) + +# Overwrite _zsh_highlight_add_highlight so we get the key itself instead of the style +_zsh_highlight_add_highlight() +{ + region_highlight+=("$1 $2 $3") +} + +# Activate the highlighter. +ZSH_HIGHLIGHT_HIGHLIGHTERS=($1) + +# In zsh<5.3, 'typeset -p arrayvar' emits two lines, so we use this wrapper instead. +typeset_p() { + for 1 ; do + if [[ ${(tP)1} == *array* ]]; then + print -r -- "$1=( ${(@qqqqP)1} )" + else + print -r -- "$1=${(qqqqP)1}" + fi + done +} + +# Escape # as ♯ and newline as ↵ they are illegal in the 'description' part of TAP output +# The string to escape is «"$@"»; the result is returned in $REPLY. +tap_escape() { + local s="${(j. .)@}" + REPLY="${${s//'#'/♯}//$'\n'/↵}" +} + +# Runs a highlighting test +# $1: data file +run_test_internal() { + + local tests_tempdir="$1"; shift + local srcdir="$PWD" + builtin cd -q -- "$tests_tempdir" || { echo >&2 "Bail out! On ${(qq)1}: cd failed: $?"; return 1 } + + # Load the data and prepare checking it. + local BUFFER CURSOR MARK PENDING PREBUFFER REGION_ACTIVE WIDGET REPLY skip_test fail_test unsorted=0 + local expected_mismatch + local skip_mismatch + local -a expected_region_highlight region_highlight + + local ARG="$1" + local RETURN="" + () { + setopt localoptions + + # WARNING: The remainder of this anonymous function will run with the test's options in effect + if { ! . "$srcdir"/"$ARG" } || (( $#fail_test )); then + print -r -- "1..1" + print -r -- "## ${ARG:t:r}" + tap_escape $fail_test; fail_test=$REPLY + print -r -- "not ok 1 - failed setup: $fail_test" + return ${RETURN:=0} + fi + + (( $#skip_test )) && { + print -r -- "1..0 # SKIP $skip_test" + print -r -- "## ${ARG:t:r}" + return ${RETURN:=0} + } + + # Check the data declares $PREBUFFER or $BUFFER. + [[ -z $PREBUFFER && -z $BUFFER ]] && { echo >&2 "Bail out! On ${(qq)ARG}: Either 'PREBUFFER' or 'BUFFER' must be declared and non-blank"; return ${RETURN:=1}; } + [[ $PREBUFFER == (''|*$'\n') ]] || { echo >&2 "Bail out! On ${(qq)ARG}: PREBUFFER=${(qqqq)PREBUFFER} doesn't end with a newline"; return ${RETURN:=1}; } + + # Set sane defaults for ZLE variables + : ${CURSOR=$#BUFFER} ${PENDING=0} ${WIDGET=z-sy-h-test-harness-test-widget} + + # Process the data. + _zsh_highlight + }; [[ -z $RETURN ]] || return $RETURN + unset ARG + + integer print_expected_and_actual=0 + + if (( unsorted )); then + region_highlight=("${(@n)region_highlight}") + expected_region_highlight=("${(@n)expected_region_highlight}") + fi + + # Print the plan line, and some comments for human readers + echo "1..$(( $#expected_region_highlight + 1))" + echo "## ${1:t:r}" # note: tests/edit-failed-tests looks for the "##" emitted by this line + [[ -n $PREBUFFER ]] && printf '# %s\n' "$(typeset_p PREBUFFER)" + [[ -n $BUFFER ]] && printf '# %s\n' "$(typeset_p BUFFER)" + + local i + for ((i=1; i<=$#expected_region_highlight; i++)); do + local -a expected_highlight_zone; expected_highlight_zone=( ${(z)expected_region_highlight[i]} ) + integer exp_start=$expected_highlight_zone[1] exp_end=$expected_highlight_zone[2] + local todo= + if (( $+expected_highlight_zone[4] )); then + todo="# TODO $expected_highlight_zone[4]" + skip_mismatch="cardinality check disabled whilst regular test points are expected to fail" + fi + if ! (( $+region_highlight[i] )); then + print -r -- "not ok $i - unmatched expectation ($exp_start $exp_end $expected_highlight_zone[3])" \ + "${skip_mismatch:+"# TODO ${(qqq)skip_mismatch}"}" + if [[ -z $skip_mismatch ]]; then (( ++print_expected_and_actual )); fi + continue + fi + local -a highlight_zone; highlight_zone=( ${(z)region_highlight[i]} ) + integer start=$(( highlight_zone[1] + 1 )) end=$highlight_zone[2] + local desc="[$start,$end] «${BUFFER[$start,$end]}»" + tap_escape $desc; desc=$REPLY + if + [[ $start != $exp_start ]] || + [[ $end != $exp_end ]] || + [[ ${highlight_zone[3]%,} != ${expected_highlight_zone[3]} ]] # remove the comma that's before the memo field + then + print -r -- "not ok $i - $desc - expected ($exp_start $exp_end ${(qqq)expected_highlight_zone[3]}), observed ($start $end ${(qqq)highlight_zone[3]}). $todo" + if [[ -z $todo ]]; then (( ++print_expected_and_actual )); fi + else + print -r -- "ok $i - $desc${todo:+ - }$todo" + fi + unset expected_highlight_zone + unset exp_start exp_end + unset todo + unset highlight_zone + unset start end + unset desc + done + + # If both $skip_mismatch and $expected_mismatch are set, that means the test + # has some XFail test points, _and_ explicitly sets $expected_mismatch as + # well. Explicit settings should have priority, so we ignore $skip_mismatch + # if $expected_mismatch is set. + if [[ -n $skip_mismatch && -z $expected_mismatch ]]; then + tap_escape $skip_mismatch; skip_mismatch=$REPLY + print "ok $i - cardinality check" "# SKIP $skip_mismatch" + else + local todo + if [[ -n $expected_mismatch ]]; then + tap_escape $expected_mismatch; expected_mismatch=$REPLY + todo="# TODO $expected_mismatch" + fi + if (( $#expected_region_highlight == $#region_highlight )); then + print -r -- "ok $i - cardinality check${todo:+ - }$todo" + else + local details + details+="have $#expected_region_highlight expectations and $#region_highlight region_highlight entries: " + details+="«$(typeset_p expected_region_highlight)» «$(typeset_p region_highlight)»" + tap_escape $details; details=$REPLY + print -r -- "not ok $i - cardinality check - $details${todo:+ - }$todo" + if [[ -z $todo ]]; then (( ++print_expected_and_actual )); fi + fi + fi + if (( print_expected_and_actual )); then + () { + local -a left_column right_column + left_column=( "expected_region_highlight" "${(qq)expected_region_highlight[@]}" ) + right_column=( "region_highlight" "${(qq)region_highlight[@]}" ) + integer difference=$(( $#right_column - $#left_column )) + repeat $difference do left_column+=(.); done + paste \ + =(print -rC1 -- $left_column) \ + =(print -rC1 -- $right_column) \ + | if type column >/dev/null; then column -t -s $'\t'; else cat; fi \ + | sed 's/^/# /' + } + fi +} + +# Run a single test file. The exit status is 1 if the test harness had +# an error and 0 otherwise. The exit status does not depend on whether +# test points succeeded or failed. +run_test() { + # Do not combine the declaration and initialization: «local x="$(false)"» does not set $?. + local __tests_tempdir + __tests_tempdir="$(mktemp -d)" && [[ -d $__tests_tempdir ]] || { + echo >&2 "Bail out! mktemp failed"; return 1 + } + typeset -r __tests_tempdir # don't allow tests to override the variable that we will 'rm -rf' later on + + { + # Use a subshell to isolate tests from each other. + # (So tests can alter global shell state using 'cd', 'hash', etc) + { + # These braces are so multios don't come into play. + { (run_test_internal "$__tests_tempdir" "$@") 3>&1 >&2 2>&3 } | grep \^ + local ret=$pipestatus[1] stderr=$pipestatus[2] + if (( ! stderr )); then + # stdout will become stderr + echo "Bail out! On ${(qq)1}: output on stderr"; return 1 + else + return $ret + fi + } 3>&1 >&2 2>&3 + } always { + rm -rf -- "$__tests_tempdir" + } +} + +# Process each test data file in test data directory. +integer something_failed=0 +ZSH_HIGHLIGHT_STYLES=() +local data_file +for data_file in $root/highlighters/$1/test-data/*.zsh; do + run_test "$data_file" | tee >($results_filter | $root/tests/tap-colorizer.zsh) | grep -v '^not ok.*# TODO' | grep -Eq '^not ok|^ok.*# TODO' && (( something_failed=1 )) + (( $pipestatus[1] )) && exit 2 +done + +exit $something_failed +} diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-perfs.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-perfs.zsh new file mode 100755 index 00000000..aa139aad --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-perfs.zsh @@ -0,0 +1,103 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + + +# Required for add-zle-hook-widget. +zmodload zsh/zle + +# Check an highlighter was given as argument. +[[ -n "$1" ]] || { + echo >&2 "Bail out! You must provide the name of a valid highlighter as argument." + exit 2 +} + +# Check the highlighter is valid. +[[ -f ${0:h:h}/highlighters/$1/$1-highlighter.zsh ]] || { + echo >&2 "Bail out! Could not find highlighter ${(qq)1}." + exit 2 +} + +# Check the highlighter has test data. +[[ -d ${0:h:h}/highlighters/$1/test-data ]] || { + echo >&2 "Bail out! Highlighter ${(qq)1} has no test data." + exit 2 +} + +# Load the main script. +typeset -a region_highlight +. ${0:h:h}/zsh-syntax-highlighting.zsh + +# Activate the highlighter. +ZSH_HIGHLIGHT_HIGHLIGHTERS=($1) + +# Runs a highlighting test +# $1: data file +run_test_internal() { + local -a highlight_zone + + local tests_tempdir="$1"; shift + local srcdir="$PWD" + builtin cd -q -- "$tests_tempdir" || { echo >&2 "Bail out! cd failed: $?"; return 1 } + + # Load the data and prepare checking it. + PREBUFFER= BUFFER= ; + . "$srcdir"/"$1" + + # Check the data declares $PREBUFFER or $BUFFER. + [[ -z $PREBUFFER && -z $BUFFER ]] && { echo >&2 "Bail out! Either 'PREBUFFER' or 'BUFFER' must be declared and non-blank"; return 1; } + + # Set $? for _zsh_highlight + true && _zsh_highlight +} + +run_test() { + # Do not combine the declaration and initialization: «local x="$(false)"» does not set $?. + local __tests_tempdir + __tests_tempdir="$(mktemp -d)" && [[ -d $__tests_tempdir ]] || { + echo >&2 "Bail out! mktemp failed"; return 1 + } + typeset -r __tests_tempdir # don't allow tests to override the variable that we will 'rm -rf' later on + + { + (run_test_internal "$__tests_tempdir" "$@") + } always { + rm -rf -- "$__tests_tempdir" + } +} + +# Process each test data file in test data directory. +local data_file +TIMEFMT="%*Es" +{ time (for data_file in ${0:h:h}/highlighters/$1/test-data/*.zsh; do + run_test "$data_file" + (( $pipestatus[1] )) && exit 2 +done) } 2>&1 || exit $? + +exit 0 diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-zprof.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-zprof.zsh new file mode 100755 index 00000000..ada16187 --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/tests/test-zprof.zsh @@ -0,0 +1,78 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2015 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# Load the main script. +typeset -a region_highlight +. ${0:h:h}/zsh-syntax-highlighting.zsh + +# Activate the highlighter. +ZSH_HIGHLIGHT_HIGHLIGHTERS=(main) + +source_file=0.7.1:highlighters/$1/$1-highlighter.zsh + +# Runs a highlighting test +# $1: data file +run_test_internal() { + setopt interactivecomments + + local -a highlight_zone + + local tests_tempdir="$1"; shift + local srcdir="$PWD" + builtin cd -q -- "$tests_tempdir" || { echo >&2 "Bail out! cd failed: $?"; return 1 } + + # Load the data and prepare checking it. + PREBUFFER= + BUFFER=$(cd -- "$srcdir" && git cat-file blob $source_file) + expected_region_highlight=() + + zmodload zsh/zprof + zprof -c + # Set $? for _zsh_highlight + true && _zsh_highlight + zprof +} + +run_test() { + # Do not combine the declaration and initialization: «local x="$(false)"» does not set $?. + local __tests_tempdir + __tests_tempdir="$(mktemp -d)" && [[ -d $__tests_tempdir ]] || { + echo >&2 "Bail out! mktemp failed"; return 1 + } + typeset -r __tests_tempdir # don't allow tests to override the variable that we will 'rm -rf' later on + + { + (run_test_internal "$__tests_tempdir" "$@") + } always { + rm -rf -- "$__tests_tempdir" + } +} + +run_test diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh new file mode 100644 index 00000000..f2456aec --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh @@ -0,0 +1,2 @@ +0=${(%):-%N} +source ${0:A:h}/zsh-syntax-highlighting.zsh diff --git a/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh new file mode 100644 index 00000000..4295c93f --- /dev/null +++ b/gentoo/dotfiles/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh @@ -0,0 +1,587 @@ +# ------------------------------------------------------------------------------------------------- +# Copyright (c) 2010-2020 zsh-syntax-highlighting contributors +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted +# provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions +# and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors +# may be used to endorse or promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------------------------- +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et +# ------------------------------------------------------------------------------------------------- + +# First of all, ensure predictable parsing. +typeset zsh_highlight__aliases="$(builtin alias -Lm '[^+]*')" +# In zsh <= 5.2, aliases that begin with a plus sign ('alias -- +foo=42') +# are emitted by `alias -L` without a '--' guard, so they don't round trip. +# +# Hence, we exclude them from unaliasing: +builtin unalias -m '[^+]*' + +# Set $0 to the expected value, regardless of functionargzero. +0=${(%):-%N} +if true; then + # $0 is reliable + typeset -g ZSH_HIGHLIGHT_VERSION=$(<"${0:A:h}"/.version) + typeset -g ZSH_HIGHLIGHT_REVISION=$(<"${0:A:h}"/.revision-hash) + if [[ $ZSH_HIGHLIGHT_REVISION == \$Format:* ]]; then + # When running from a source tree without 'make install', $ZSH_HIGHLIGHT_REVISION + # would be set to '$Format:%H$' literally. That's an invalid value, and obtaining + # the valid value (via `git rev-parse HEAD`, as Makefile does) might be costly, so: + ZSH_HIGHLIGHT_REVISION=HEAD + fi +fi + +# This function takes a single argument F and returns True iff F is an autoload stub. +_zsh_highlight__function_is_autoload_stub_p() { + if zmodload -e zsh/parameter; then + #(( ${+functions[$1]} )) && + [[ "$functions[$1]" == *"builtin autoload -X"* ]] + else + #[[ $(type -wa -- "$1") == *'function'* ]] && + [[ "${${(@f)"$(which -- "$1")"}[2]}" == $'\t'$histchars[3]' undefined' ]] + fi + # Do nothing here: return the exit code of the if. +} + +# Return True iff the argument denotes a function name. +_zsh_highlight__is_function_p() { + if zmodload -e zsh/parameter; then + (( ${+functions[$1]} )) + else + [[ $(type -wa -- "$1") == *'function'* ]] + fi +} + +# This function takes a single argument F and returns True iff F denotes the +# name of a callable function. A function is callable if it is fully defined +# or if it is marked for autoloading and autoloading it at the first call to it +# will succeed. In particular, if F has been marked for autoloading +# but is not available in $fpath, then calling this function on F will return False. +# +# See users/21671 https://www.zsh.org/cgi-bin/mla/redirect?USERNUMBER=21671 +_zsh_highlight__function_callable_p() { + if _zsh_highlight__is_function_p "$1" && + ! _zsh_highlight__function_is_autoload_stub_p "$1" + then + # Already fully loaded. + return 0 # true + else + # "$1" is either an autoload stub, or not a function at all. + # + # Use a subshell to avoid affecting the calling shell. + # + # We expect 'autoload +X' to return non-zero if it fails to fully load + # the function. + ( autoload -U +X -- "$1" 2>/dev/null ) + return $? + fi +} + +# ------------------------------------------------------------------------------------------------- +# Core highlighting update system +# ------------------------------------------------------------------------------------------------- + +# Use workaround for bug in ZSH? +# zsh-users/zsh@48cadf4 https://www.zsh.org/mla/workers/2017/msg00034.html +autoload -Uz is-at-least +if is-at-least 5.4; then + typeset -g zsh_highlight__pat_static_bug=false +else + typeset -g zsh_highlight__pat_static_bug=true +fi + +# Array declaring active highlighters names. +typeset -ga ZSH_HIGHLIGHT_HIGHLIGHTERS + +# Update ZLE buffer syntax highlighting. +# +# Invokes each highlighter that needs updating. +# This function is supposed to be called whenever the ZLE state changes. +_zsh_highlight() +{ + # Store the previous command return code to restore it whatever happens. + local ret=$? + # Make it read-only. Can't combine this with the previous line when POSIX_BUILTINS may be set. + typeset -r ret + + # $region_highlight should be predefined, either by zle or by the test suite's mock (non-special) array. + (( ${+region_highlight[@]} )) || { + echo >&2 'zsh-syntax-highlighting: error: $region_highlight is not defined' + echo >&2 'zsh-syntax-highlighting: (Check whether zsh-syntax-highlighting was installed according to the instructions.)' + return $ret + } + + # Probe the memo= feature, once. + (( ${+zsh_highlight__memo_feature} )) || { + region_highlight+=( " 0 0 fg=red, memo=zsh-syntax-highlighting" ) + case ${region_highlight[-1]} in + ("0 0 fg=red") + # zsh 5.8 or earlier + integer -gr zsh_highlight__memo_feature=0 + ;; + ("0 0 fg=red memo=zsh-syntax-highlighting") + # zsh 5.9 or later + integer -gr zsh_highlight__memo_feature=1 + ;; + (" 0 0 fg=red, memo=zsh-syntax-highlighting") ;& + (*) + # We can get here in two ways: + # + # 1. When not running as a widget. In that case, $region_highlight is + # not a special variable (= one with custom getter/setter functions + # written in C) but an ordinary one, so the third case pattern matches + # and we fall through to this block. (The test suite uses this codepath.) + # + # 2. When running under a future version of zsh that will have changed + # the serialization of $region_highlight elements from their underlying + # C structs, so that none of the previous case patterns will match. + # + # In either case, fall back to a version check. + if is-at-least 5.9; then + integer -gr zsh_highlight__memo_feature=1 + else + integer -gr zsh_highlight__memo_feature=0 + fi + ;; + esac + region_highlight[-1]=() + } + + # Reset region_highlight to build it from scratch + if (( zsh_highlight__memo_feature )); then + region_highlight=( "${(@)region_highlight:#*memo=zsh-syntax-highlighting*}" ) + else + # Legacy codepath. Not very interoperable with other plugins (issue #418). + region_highlight=() + fi + + # Remove all highlighting in isearch, so that only the underlining done by zsh itself remains. + # For details see FAQ entry 'Why does syntax highlighting not work while searching history?'. + # This disables highlighting during isearch (for reasons explained in README.md) unless zsh is new enough + # and doesn't have the pattern matching bug + if [[ $WIDGET == zle-isearch-update ]] && { $zsh_highlight__pat_static_bug || ! (( $+ISEARCHMATCH_ACTIVE )) }; then + return $ret + fi + + # Before we 'emulate -L', save the user's options + local -A zsyh_user_options + if zmodload -e zsh/parameter; then + zsyh_user_options=("${(kv)options[@]}") + else + local canonical_options onoff option raw_options + raw_options=(${(f)"$(emulate -R zsh; set -o)"}) + canonical_options=(${${${(M)raw_options:#*off}%% *}#no} ${${(M)raw_options:#*on}%% *}) + for option in "${canonical_options[@]}"; do + [[ -o $option ]] + case $? in + (0) zsyh_user_options+=($option on);; + (1) zsyh_user_options+=($option off);; + (*) # Can't happen, surely? + echo "zsh-syntax-highlighting: warning: '[[ -o $option ]]' returned $?" + ;; + esac + done + fi + typeset -r zsyh_user_options + + emulate -L zsh + setopt localoptions warncreateglobal nobashrematch + local REPLY # don't leak $REPLY into global scope + + # Do not highlight if there are more than 300 chars in the buffer. It's most + # likely a pasted command or a huge list of files in that case.. + [[ -n ${ZSH_HIGHLIGHT_MAXLENGTH:-} ]] && [[ $#BUFFER -gt $ZSH_HIGHLIGHT_MAXLENGTH ]] && return $ret + + # Do not highlight if there are pending inputs (copy/paste). + (( KEYS_QUEUED_COUNT > 0 )) && return $ret + (( PENDING > 0 )) && return $ret + + { + local cache_place + local -a region_highlight_copy + + # Select which highlighters in ZSH_HIGHLIGHT_HIGHLIGHTERS need to be invoked. + local highlighter; for highlighter in $ZSH_HIGHLIGHT_HIGHLIGHTERS; do + + # eval cache place for current highlighter and prepare it + cache_place="_zsh_highlight__highlighter_${highlighter}_cache" + typeset -ga ${cache_place} + + # If highlighter needs to be invoked + if ! type "_zsh_highlight_highlighter_${highlighter}_predicate" >&/dev/null; then + echo "zsh-syntax-highlighting: warning: disabling the ${(qq)highlighter} highlighter as it has not been loaded" >&2 + # TODO: use ${(b)} rather than ${(q)} if supported + ZSH_HIGHLIGHT_HIGHLIGHTERS=( ${ZSH_HIGHLIGHT_HIGHLIGHTERS:#${highlighter}} ) + elif "_zsh_highlight_highlighter_${highlighter}_predicate"; then + + # save a copy, and cleanup region_highlight + region_highlight_copy=("${region_highlight[@]}") + region_highlight=() + + # Execute highlighter and save result + { + "_zsh_highlight_highlighter_${highlighter}_paint" + } always { + : ${(AP)cache_place::="${region_highlight[@]}"} + } + + # Restore saved region_highlight + region_highlight=("${region_highlight_copy[@]}") + + fi + + # Use value form cache if any cached + region_highlight+=("${(@P)cache_place}") + + done + + # Re-apply zle_highlight settings + + # region + () { + (( REGION_ACTIVE )) || return + integer min max + if (( MARK > CURSOR )) ; then + min=$CURSOR max=$MARK + else + min=$MARK max=$CURSOR + fi + if (( REGION_ACTIVE == 1 )); then + [[ $KEYMAP = vicmd ]] && (( max++ )) + elif (( REGION_ACTIVE == 2 )); then + local needle=$'\n' + # CURSOR and MARK are 0 indexed between letters like region_highlight + # Do not include the newline in the highlight + (( min = ${BUFFER[(Ib:min:)$needle]} )) + (( max = ${BUFFER[(ib:max:)$needle]} - 1 )) + fi + _zsh_highlight_apply_zle_highlight region standout "$min" "$max" + } + + # yank / paste (zsh-5.1.1 and newer) + (( $+YANK_ACTIVE )) && (( YANK_ACTIVE )) && _zsh_highlight_apply_zle_highlight paste standout "$YANK_START" "$YANK_END" + + # isearch + (( $+ISEARCHMATCH_ACTIVE )) && (( ISEARCHMATCH_ACTIVE )) && _zsh_highlight_apply_zle_highlight isearch underline "$ISEARCHMATCH_START" "$ISEARCHMATCH_END" + + # suffix + (( $+SUFFIX_ACTIVE )) && (( SUFFIX_ACTIVE )) && _zsh_highlight_apply_zle_highlight suffix bold "$SUFFIX_START" "$SUFFIX_END" + + + return $ret + + + } always { + typeset -g _ZSH_HIGHLIGHT_PRIOR_BUFFER="$BUFFER" + typeset -gi _ZSH_HIGHLIGHT_PRIOR_CURSOR=$CURSOR + } +} + +# Apply highlighting based on entries in the zle_highlight array. +# This function takes four arguments: +# 1. The exact entry (no patterns) in the zle_highlight array: +# region, paste, isearch, or suffix +# 2. The default highlighting that should be applied if the entry is unset +# 3. and 4. Two integer values describing the beginning and end of the +# range. The order does not matter. +_zsh_highlight_apply_zle_highlight() { + local entry="$1" default="$2" + integer first="$3" second="$4" + + # read the relevant entry from zle_highlight + # + # ### In zsh≥5.0.8 we'd use ${(b)entry}, but we support older zsh's, so we don't + # ### add (b). The only effect is on the failure mode for callers that violate + # ### the precondition. + local region="${zle_highlight[(r)${entry}:*]-}" + + if [[ -z "$region" ]]; then + # entry not specified at all, use default value + region=$default + else + # strip prefix + region="${region#${entry}:}" + + # no highlighting when set to the empty string or to 'none' + if [[ -z "$region" ]] || [[ "$region" == none ]]; then + return + fi + fi + + integer start end + if (( first < second )); then + start=$first end=$second + else + start=$second end=$first + fi + region_highlight+=("$start $end $region, memo=zsh-syntax-highlighting") +} + + +# ------------------------------------------------------------------------------------------------- +# API/utility functions for highlighters +# ------------------------------------------------------------------------------------------------- + +# Array used by highlighters to declare user overridable styles. +typeset -gA ZSH_HIGHLIGHT_STYLES + +# Whether the command line buffer has been modified or not. +# +# Returns 0 if the buffer has changed since _zsh_highlight was last called. +_zsh_highlight_buffer_modified() +{ + [[ "${_ZSH_HIGHLIGHT_PRIOR_BUFFER:-}" != "$BUFFER" ]] +} + +# Whether the cursor has moved or not. +# +# Returns 0 if the cursor has moved since _zsh_highlight was last called. +_zsh_highlight_cursor_moved() +{ + [[ -n $CURSOR ]] && [[ -n ${_ZSH_HIGHLIGHT_PRIOR_CURSOR-} ]] && (($_ZSH_HIGHLIGHT_PRIOR_CURSOR != $CURSOR)) +} + +# Add a highlight defined by ZSH_HIGHLIGHT_STYLES. +# +# Should be used by all highlighters aside from 'pattern' (cf. ZSH_HIGHLIGHT_PATTERN). +# Overwritten in tests/test-highlighting.zsh when testing. +_zsh_highlight_add_highlight() +{ + local -i start end + local highlight + start=$1 + end=$2 + shift 2 + for highlight; do + if (( $+ZSH_HIGHLIGHT_STYLES[$highlight] )); then + region_highlight+=("$start $end $ZSH_HIGHLIGHT_STYLES[$highlight], memo=zsh-syntax-highlighting") + break + fi + done +} + +# ------------------------------------------------------------------------------------------------- +# Setup functions +# ------------------------------------------------------------------------------------------------- + +# Helper for _zsh_highlight_bind_widgets +# $1 is name of widget to call +_zsh_highlight_call_widget() +{ + builtin zle "$@" && + _zsh_highlight +} + +# Decide whether to use the zle-line-pre-redraw codepath (colloquially known as +# "feature/redrawhook", after the topic branch's name) or the legacy "bind all +# widgets" codepath. +# +# We use the new codepath under two conditions: +# +# 1. If it's available, which we check by testing for add-zle-hook-widget's availability. +# +# 2. If zsh has the memo= feature, which is required for interoperability reasons. +# See issues #579 and #735, and the issues referenced from them. +# +# We check this with a plain version number check, since a functional check, +# as done by _zsh_highlight, can only be done from inside a widget +# function — a catch-22. +if is-at-least 5.9 && _zsh_highlight__function_callable_p add-zle-hook-widget +then + autoload -U add-zle-hook-widget + _zsh_highlight__zle-line-finish() { + # Reset $WIDGET since the 'main' highlighter depends on it. + # + # Since $WIDGET is declared by zle as read-only in this function's scope, + # a nested function is required in order to shadow its built-in value; + # see "User-defined widgets" in zshall. + () { + local -h -r WIDGET=zle-line-finish + _zsh_highlight + } + } + _zsh_highlight__zle-line-pre-redraw() { + # Set $? to 0 for _zsh_highlight. Without this, subsequent + # zle-line-pre-redraw hooks won't run, since add-zle-hook-widget happens to + # call us with $? == 1 in the common case. + true && _zsh_highlight "$@" + } + _zsh_highlight_bind_widgets(){} + if [[ -o zle ]]; then + add-zle-hook-widget zle-line-pre-redraw _zsh_highlight__zle-line-pre-redraw + add-zle-hook-widget zle-line-finish _zsh_highlight__zle-line-finish + fi +else + # Rebind all ZLE widgets to make them invoke _zsh_highlights. + _zsh_highlight_bind_widgets() + { + setopt localoptions noksharrays + typeset -F SECONDS + local prefix=orig-s$SECONDS-r$RANDOM # unique each time, in case we're sourced more than once + + # Load ZSH module zsh/zleparameter, needed to override user defined widgets. + zmodload zsh/zleparameter 2>/dev/null || { + print -r -- >&2 'zsh-syntax-highlighting: failed loading zsh/zleparameter.' + return 1 + } + + # Override ZLE widgets to make them invoke _zsh_highlight. + local -U widgets_to_bind + widgets_to_bind=(${${(k)widgets}:#(.*|run-help|which-command|beep|set-local-history|yank|yank-pop)}) + + # Always wrap special zle-line-finish widget. This is needed to decide if the + # current line ends and special highlighting logic needs to be applied. + # E.g. remove cursor imprint, don't highlight partial paths, ... + widgets_to_bind+=(zle-line-finish) + + # Always wrap special zle-isearch-update widget to be notified of updates in isearch. + # This is needed because we need to disable highlighting in that case. + widgets_to_bind+=(zle-isearch-update) + + local cur_widget + for cur_widget in $widgets_to_bind; do + case ${widgets[$cur_widget]:-""} in + + # Already rebound event: do nothing. + user:_zsh_highlight_widget_*);; + + # The "eval"'s are required to make $cur_widget a closure: the value of the parameter at function + # definition time is used. + # + # We can't use ${0/_zsh_highlight_widget_} because these widgets are always invoked with + # NO_function_argzero, regardless of the option's setting here. + + # User defined widget: override and rebind old one with prefix "orig-". + user:*) zle -N $prefix-$cur_widget ${widgets[$cur_widget]#*:} + eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget ${(q)prefix}-${(q)cur_widget} -- \"\$@\" }" + zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;; + + # Completion widget: override and rebind old one with prefix "orig-". + completion:*) zle -C $prefix-$cur_widget ${${(s.:.)widgets[$cur_widget]}[2,3]} + eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget ${(q)prefix}-${(q)cur_widget} -- \"\$@\" }" + zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;; + + # Builtin widget: override and make it call the builtin ".widget". + builtin) eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget .${(q)cur_widget} -- \"\$@\" }" + zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;; + + # Incomplete or nonexistent widget: Bind to z-sy-h directly. + *) + if [[ $cur_widget == zle-* ]] && (( ! ${+widgets[$cur_widget]} )); then + _zsh_highlight_widget_${cur_widget}() { :; _zsh_highlight } + zle -N $cur_widget _zsh_highlight_widget_$cur_widget + else + # Default: unhandled case. + print -r -- >&2 "zsh-syntax-highlighting: unhandled ZLE widget ${(qq)cur_widget}" + print -r -- >&2 "zsh-syntax-highlighting: (This is sometimes caused by doing \`bindkey ${(q-)cur_widget}\` without creating the ${(qq)cur_widget} widget with \`zle -N\` or \`zle -C\`.)" + fi + esac + done + } +fi + +# Load highlighters from directory. +# +# Arguments: +# 1) Path to the highlighters directory. +_zsh_highlight_load_highlighters() +{ + setopt localoptions noksharrays bareglobqual + + # Check the directory exists. + [[ -d "$1" ]] || { + print -r -- >&2 "zsh-syntax-highlighting: highlighters directory ${(qq)1} not found." + return 1 + } + + # Load highlighters from highlighters directory and check they define required functions. + local highlighter highlighter_dir + for highlighter_dir ($1/*/(/)); do + highlighter="${highlighter_dir:t}" + [[ -f "$highlighter_dir${highlighter}-highlighter.zsh" ]] && + . "$highlighter_dir${highlighter}-highlighter.zsh" + if type "_zsh_highlight_highlighter_${highlighter}_paint" &> /dev/null && + type "_zsh_highlight_highlighter_${highlighter}_predicate" &> /dev/null; + then + # New (0.5.0) function names + elif type "_zsh_highlight_${highlighter}_highlighter" &> /dev/null && + type "_zsh_highlight_${highlighter}_highlighter_predicate" &> /dev/null; + then + # Old (0.4.x) function names + if false; then + # TODO: only show this warning for plugin authors/maintainers, not for end users + print -r -- >&2 "zsh-syntax-highlighting: warning: ${(qq)highlighter} highlighter uses deprecated entry point names; please ask its maintainer to update it: https://github.com/zsh-users/zsh-syntax-highlighting/issues/329" + fi + # Make it work. + eval "_zsh_highlight_highlighter_${(q)highlighter}_paint() { _zsh_highlight_${(q)highlighter}_highlighter \"\$@\" }" + eval "_zsh_highlight_highlighter_${(q)highlighter}_predicate() { _zsh_highlight_${(q)highlighter}_highlighter_predicate \"\$@\" }" + else + print -r -- >&2 "zsh-syntax-highlighting: ${(qq)highlighter} highlighter should define both required functions '_zsh_highlight_highlighter_${highlighter}_paint' and '_zsh_highlight_highlighter_${highlighter}_predicate' in ${(qq):-"$highlighter_dir${highlighter}-highlighter.zsh"}." + fi + done +} + + +# ------------------------------------------------------------------------------------------------- +# Setup +# ------------------------------------------------------------------------------------------------- + +# Try binding widgets. +_zsh_highlight_bind_widgets || { + print -r -- >&2 'zsh-syntax-highlighting: failed binding ZLE widgets, exiting.' + return 1 +} + +# Resolve highlighters directory location. +_zsh_highlight_load_highlighters "${ZSH_HIGHLIGHT_HIGHLIGHTERS_DIR:-${${0:A}:h}/highlighters}" || { + print -r -- >&2 'zsh-syntax-highlighting: failed loading highlighters, exiting.' + return 1 +} + +# Reset scratch variables when commandline is done. +_zsh_highlight_preexec_hook() +{ + typeset -g _ZSH_HIGHLIGHT_PRIOR_BUFFER= + typeset -gi _ZSH_HIGHLIGHT_PRIOR_CURSOR= +} +autoload -Uz add-zsh-hook +add-zsh-hook preexec _zsh_highlight_preexec_hook 2>/dev/null || { + print -r -- >&2 'zsh-syntax-highlighting: failed loading add-zsh-hook.' + } + +# Load zsh/parameter module if available +zmodload zsh/parameter 2>/dev/null || true + +# Initialize the array of active highlighters if needed. +[[ $#ZSH_HIGHLIGHT_HIGHLIGHTERS -eq 0 ]] && ZSH_HIGHLIGHT_HIGHLIGHTERS=(main) + +if (( $+X_ZSH_HIGHLIGHT_DIRS_BLACKLIST )); then + print >&2 'zsh-syntax-highlighting: X_ZSH_HIGHLIGHT_DIRS_BLACKLIST is deprecated. Please use ZSH_HIGHLIGHT_DIRS_BLACKLIST.' + ZSH_HIGHLIGHT_DIRS_BLACKLIST=($X_ZSH_HIGHLIGHT_DIRS_BLACKLIST) + unset X_ZSH_HIGHLIGHT_DIRS_BLACKLIST +fi + +# Restore the aliases we unned +eval "$zsh_highlight__aliases" +builtin unset zsh_highlight__aliases + +# Set $?. +true diff --git a/gentoo/dotfiles/.zshenv b/gentoo/dotfiles/.zshenv new file mode 100644 index 00000000..c5aff903 --- /dev/null +++ b/gentoo/dotfiles/.zshenv @@ -0,0 +1 @@ +[[ -f /etc/profile ]] && source /etc/profile diff --git a/gentoo/dotfiles/.zshrc b/gentoo/dotfiles/.zshrc new file mode 100644 index 00000000..4bb5ca1f --- /dev/null +++ b/gentoo/dotfiles/.zshrc @@ -0,0 +1,220 @@ +# ~/.zshrc +# to change default shell, use chsh -s $(which zsh) + +# prevent overwriting of existing files +set -o noclobber +# reverse with: +# set +o noclobber + +# create custom env variables: +export XDG_CONFIG_HOME="$HOME/.config" + +# set up python-virtualenvwrapper +# https://wiki.archlinux.org/title/Python/Virtual_environment +# export WORKON_HOME=~/.virtualenvs +# source /usr/bin/virtualenvwrapper_lazy.sh + +# custom BROWSER env for ddgr: +export BROWSER=librewolf +export QT_STYLE_OVERRIDE=Adwaita-Dark +# export BROWSER=links +export EDITOR=nvim +export PF_INFO="ascii os kernel pkgs shell wm editor" + +export GROFF_NO_SGR=1 +export LESS_TERMCAP_mb=$'\e[1;34m' +export LESS_TERMCAP_md=$'\e[1;34m' +export LESS_TERMCAP_me=$'\e[0m' +export LESS_TERMCAP_se=$'\e[0m' +export LESS_TERMCAP_so=$'\e[01;33m' +export LESS_TERMCAP_ue=$'\e[0m' +export LESS_TERMCAP_us=$'\e[1;4;33m' + +# Formats history command with dates/times +export HISTTIMEFORMAT="%d/%m/%y %T " +# Sets default for history command +export HISTSIZE=10000000 +export HISTFILESIZE=100000 +export HISTFILE="$HOME/.zsh_history" +SAVEHIST=10000000 + +# setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format. +setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. +setopt SHARE_HISTORY # Share history between all sessions. +setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history. +setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again. +setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. +setopt HIST_FIND_NO_DUPS # Do not display a line previously found. +setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space. +setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file. +setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry. setopt HIST_VERIFY # Don't execute immediately upon history expansion. +# setopt HIST_BEEP # Beep when accessing nonexistent history. + +# creates a .zsh_history file on startup, and clears the history +echo '' | xclip && xclip -selection clipboard /dev/null && history -p && hash -r && /usr/bin/rm $HOME/.zsh_history && touch $HOME/.zsh_history + +# Configure thefuck +# eval "$(thefuck --alias)" +# Change with care: +export PATH="$PATH:/usr/local/cuda/bin:/home/brian/scripts:/home/brian/.local/bin:/home/brian/.local/share/nvim/lsp_servers:/home/brian/.cargo/bin:/home/brian/go/bin" +export LD_LIBRARY_PATH="/usr/local/cuda/lib:$PATH" +# Configure grep output colors +export GREP_COLORS='ms=01;34' + +# Don't show completion until at least 1 character has been typed +zstyle ':autocomplete:*' min-input 1 + +# +# Plugins +source ~/.zsh/zsh-autocomplete/zsh-autocomplete.plugin.zsh +source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh +fpath+=~/.zsh/poetry/ +autoload -Uz compinit; compinit + + +# icons-in-terminal Integration +# source ~/.local/share/icons-in-terminal/icons_bash.sh + +# Colors +autoload -Uz colors && colors + +# Load version control information +autoload -Uz vcs_info +precmd() { vcs_info } + +# git info/styling for prompt +zstyle ':vcs_info:*' check-for-changes true +zstyle ':vcs_info:*' unstagedstr '%B%F{yellow} ➕' +zstyle ':vcs_info:*' stagedstr '%B%F{green} ✔' +zstyle ':vcs_info:git:*' formats '%b%u%c' +zstyle ':vcs_info:git:*' actionformats '%b|%a%u%c' + +# Set up the prompt (with git branch name) +setopt PROMPT_SUBST + +# some useful options (man zshoptions) +setopt autocd extendedglob nomatch menucomplete +setopt interactive_comments +stty stop undef # Disable ctrl-s to freeze terminal +zle_highlight=('paste:none') # pasting text using ctrl+shift+v doesn't highlight + +# beeping is annoying +unsetopt BEEP + +# PROMPT='[%n@%m %1~]%F{green}(${vcs_info_msg_0_})%F{white}$ ' +# PROMPT='%B%F{blue}[%n@%M %B%F{white}'%1~'%B%F{blue}]$ %B%F{white}${vcs_info_msg_0_}%B%F{blue} +# PROMPT='%B%F{blue}[ﴂ %B%F{white}'%1~'%B%F{blue}]$ %B%F{white}${vcs_info_msg_0_}%B%F{blue} +# └─>%B%F{white} ' +# PROMPT='%B%F{blue}[ﴂ %B%F{white}$(tput sitm)'%1~'$(tput sgr0)$(tput bold)%B%F{blue}]$(tput sitm)$ %B%F{white}$(tput setaf 5)${vcs_info_msg_0_}%B%F$(tput sgr0)$(tput setaf 4)$(tput bold) +# └─>%B%F{white} ' +PROMPT='%B%F{blue}[ %B%F{white}$(tput sitm)'%1~'$(tput sgr0)$(tput bold)%B%F{blue}]$(tput sitm)$ %B%F{white}$(tput setaf 5)${vcs_info_msg_0_}%B%F$(tput sgr0)$(tput setaf 4)$(tput bold) +└─>%B%F{white} ' + +# function erase_history { local HISTSIZE=0; } +# erase_history && hash -r + +# create a zkbd compatible hash; +# to add other keys to this hash, see: man 5 terminfo +typeset -g -A key + +key[Home]="${terminfo[khome]}" +key[End]="${terminfo[kend]}" +key[Insert]="${terminfo[kich1]}" +key[Backspace]="${terminfo[kbs]}" +key[Delete]="${terminfo[kdch1]}" +key[Up]="${terminfo[kcuu1]}" +key[Down]="${terminfo[kcud1]}" +key[Left]="${terminfo[kcub1]}" +key[Right]="${terminfo[kcuf1]}" +key[PageUp]="${terminfo[kpp]}" +key[PageDown]="${terminfo[knp]}" +key[Shift-Tab]="${terminfo[kcbt]}" + +# setup key accordingly +[[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line +[[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line +[[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode +[[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char +[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char +[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-history +[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-history +[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char +[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char +[[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history +[[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history +[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete + +# Finally, make sure the terminal is in application mode, when zle is +# active. Only then are the values from $terminfo valid. +if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then + autoload -Uz add-zle-hook-widget + function zle_application_mode_start { echoti smkx } + function zle_application_mode_stop { echoti rmkx } + add-zle-hook-widget -Uz zle-line-init zle_application_mode_start + add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop +fi + +# Set up vim mode +bindkey -v + +# alias home="xclear && cd /home/brian && clear && history -p && hash -r && /usr/bin/rm $HOME/.zsh_history && touch $HOME/.zsh_history" +alias home="cd && history -p && clear && echo '' | xclip && xclip -selection clipboard /dev/null" + +# Various source files (do not place at end of zshrc/bashrc) +source ~/.aliases +# github personal access token +#source ~/.gh_pat +#SSID and passwd +#source ~/.ssid_passwd +# Plugins (that need to be at the end of the zshrc script) +source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh + +# Sets Up Node Version Manager +export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm + +# Set up TTY colors +# pulled form https://github.com/lewisacidic/nord-tty +if [ "$TERM" = "linux" ]; then +echo -en \\e]P02E3440 +echo -en \\e]P1BF616A +echo -en \\e]P2A3BE8C +echo -en \\e]P3EBCB8B +echo -en \\e]P481A1C1 +echo -en \\e]P5B48EAD +echo -en \\e]P688C0D0 +echo -en \\e]P7E5E9F0 +echo -en \\e]P84C566A +echo -en \\e]P9BF616A +echo -en \\e]PAA3BE8C +echo -en \\e]PBEBCB8B +echo -en \\e]PCB48EAD +echo -en \\e]PD8FBCBB +echo -en \\e]PEECEFF4 +clear +fi + +#if [[ -f "$HOME/.sdrc" ]] ; then +#source "$HOME/.sdrc" +#fi +#[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + +[ -f ~/.zsh/zsh-fex/fex.zsh ] && source ~/.zsh/zsh-fex/fex.zsh +bindkey '^f' fex-widget + +#bun completions +[ -s "/home/brian/.bun/_bun" ] && source "/home/brian/.bun/_bun" + +## bun +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" +#export DEBUGINFOD_URLS="https://debuginfod.artixlinux.org" + +# npm will install global packages to: +export NPM_CONFIG_PREFIX="$HOME/.local/" + +# rye +source "$HOME/.rye/env" + +# current book being read (used in resume_read script) +# export CURRENT_READ="" diff --git a/gentoo/portage/env/emerge-default-opts-jobs-2.conf b/gentoo/portage/env/emerge-default-opts-jobs-2.conf new file mode 100644 index 00000000..78d81162 --- /dev/null +++ b/gentoo/portage/env/emerge-default-opts-jobs-2.conf @@ -0,0 +1 @@ +EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --jobs=2" diff --git a/gentoo/portage/env/enable-ccache.conf b/gentoo/portage/env/enable-ccache.conf new file mode 100644 index 00000000..7462261e --- /dev/null +++ b/gentoo/portage/env/enable-ccache.conf @@ -0,0 +1,11 @@ +FEATURES="${FEATURES} ccache" + +# Portage defaults to ${PORTAGE_TMPDIR}/ccache unless CCACHE_DIR is +# set in make.conf or in /etc/portage/env (or similar). +#CCACHE_DIR="/var/cache/ccache" +# If using a directory that Portage doesn't control, e.g. /var/cache/ccache, +# this may be needed in some cases, but has some security implications. +# See https://bugs.gentoo.org/492910. +#CCACHE_UMASK="0002" +# Note that you can clear the cache from the comand line using: +# ccache-c diff --git a/gentoo/portage/make.conf b/gentoo/portage/make.conf index 5abfb4bd..6e6ec99b 100644 --- a/gentoo/portage/make.conf +++ b/gentoo/portage/make.conf @@ -2,31 +2,36 @@ # built this stage. # Please consult /usr/share/portage/config/make.conf.example for a more # detailed example. -# -COMMON_FLAGS="-O2 -pipe" + +COMMON_FLAGS="-march=native -O2 -pipe" CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}" FCFLAGS="${COMMON_FLAGS}" FFLAGS="${COMMON_FLAGS}" +RUSTFLAGS="${RUSTFLAGS} -C target-cpu=native" + +MAKEOPTS="-j6 -l7" +EMERGE_DEFAULT_OPTS="-j6 --with-bdeps=y --quiet --keep-going=y" + +GRUB_PLATFORMS="efi-64" + +USE="X dist-kernel dbus policykit vdpau vaapi nvenc bluetooth man seatd -elogind -logind -systemd" + +ACCEPT_LICENSE="*" + +PORTAGE_ELOG_CLASSES="log warn error info qa" +PORTAGE_ELOG_SYSTEM="save" +PORTAGE_LOGDIR="/var/log/portage" +PORTAGE_LOGDIR_CLEAN="find \"\${PORTAGE_LOGDIR}\" -type f ! -name \"summary.log*\" -mtime +7 -delete" + +PORTAGE_TMPDIR="/var/tmp" +DISTDIR="/var/cache/distfiles" # NOTE: This stage was built with the bindist USE flag enabled # This sets the language of build output to English. # Please keep this setting intact when reporting bugs. LC_MESSAGES=C.UTF-8 -MAKEOPTS="-j4" - - -ACCEPT_LICENSE="*" - -USE="modules-sign xorg elogind X zsh-completion harfbuzz pulseaudio minizip text dbus bluetooth -qtwebengine egl" - -# Portage Logging -PORTAGE_ELOG_CLASSES="log warn error" -PORTAGE_ELOG_SYSTEM="save" -PORTAGE_LOGDIR="/var/log/portage" - -# Temporary Files -PORTAGE_TMPDIR="/var/tmp/portage" -GENTOO_MIRRORS="http://tux.rainside.sk/gentoo/ \ - ftp://tux.rainside.sk/gentoo/" +GENTOO_MIRRORS="https://mirrors.kernel.org/gentoo/ \ + http://mirrors.kernel.org/gentoo/ \ + rsync://mirrors.kernel.org/mirrors/gentoo/" diff --git a/gentoo/portage/make.conf.backup b/gentoo/portage/make.conf.backup deleted file mode 100644 index e9dead99..00000000 --- a/gentoo/portage/make.conf.backup +++ /dev/null @@ -1,34 +0,0 @@ -# These settings were set by the catalyst build script that automatically -# built this stage. -# Please consult /usr/share/portage/config/make.conf.example for a more -# detailed example. -# -COMMON_FLAGS="-O2 -pipe" -CFLAGS="${COMMON_FLAGS}" -CXXFLAGS="${COMMON_FLAGS}" -FCFLAGS="${COMMON_FLAGS}" -FFLAGS="${COMMON_FLAGS}" - -# NOTE: This stage was built with the bindist USE flag enabled - -# This sets the language of build output to English. -# Please keep this setting intact when reporting bugs. -LC_MESSAGES=C.UTF-8 -MAKEOPTS="-j4" - -GENTOO_MIRRORS="https://mirror.clarkson.edu/gentoo/ \ - http://mirror.clarkson.edu/gentoo/ \ - rsync://mirror.clarkson.edu/gentoo/ \ - " - -ACCEPT_LICENSE="*" - -USE="modules-sign xorg elogind X zsh-completion harfbuzz pulseaudio minizip text dbus bluetooth" - -# Portage Logging -PORTAGE_ELOG_CLASSES="log warn error" -PORTAGE_ELOG_SYSTEM="save" -PORTAGE_LOGDIR="/var/log/portage" - -# Temporary Files -PORTAGE_TMPDIR="/var/tmp/portage" diff --git a/gentoo/portage/package.accept_keywords/package.unmask b/gentoo/portage/package.accept_keywords/package.unmask new file mode 100644 index 00000000..ecf65935 --- /dev/null +++ b/gentoo/portage/package.accept_keywords/package.unmask @@ -0,0 +1,17 @@ +>=x11-misc/pcmanfm-1.3.2 +>=x11-libs/libfm-1.3.2 +>=app-misc/tealdeer-1.8.1 ~amd64 +>=gui-apps/gcolor3-2.4.0 ~amd64 +>=sys-fs/duf-0.9.1 ~amd64 +>=media-sound/pamixer-1.6 ~amd64 +>=games-util/lutris-0.5.19 ~amd64 +>=dev-python/pypresence-4.6.1 ~amd64 +>=dev-python/moddb-0.13.0 ~amd64 +>=dev-util/difftastic-0.67.0 ~amd64 +>=games-util/mangohud-0.8.1 ~amd64 +>=media-libs/imgui-1.89.9 ~amd64 +>=media-libs/implot-0.16-r2 ~amd64 +>=dev-util/rustup-1.28.2-r2 ~amd64 +>=app-editors/micro-2.0.13-r1 ~amd64 +>=gui-wm/river-0.3.12 ~amd64 +>=app-emulation/wine-staging-10.20 ~amd64 diff --git a/gentoo/portage/package.accept_keywords/steam b/gentoo/portage/package.accept_keywords/steam new file mode 100644 index 00000000..6f77faac --- /dev/null +++ b/gentoo/portage/package.accept_keywords/steam @@ -0,0 +1,3 @@ +*/*::steam-overlay +games-util/game-device-udev-rules +sys-libs/libudev-compat diff --git a/gentoo/portage/package.accept_keywords/zz-autounmask b/gentoo/portage/package.accept_keywords/zz-autounmask deleted file mode 100644 index 25a09da0..00000000 --- a/gentoo/portage/package.accept_keywords/zz-autounmask +++ /dev/null @@ -1,1789 +0,0 @@ -# package.accept_keywords# required by app-misc/tealdeer (argument) -=app-misc/tealdeer-1.8.1 ~amd64 -# required by x11-misc/xbanish (argument) -=x11-misc/xbanish-1.8_p20230519 ~amd64 -# required by x11-misc/pcmanfm-1.3.2-r2::gentoo -# required by x11-misc/pcmanfm (argument) -=x11-libs/libfm-1.3.2-r1 ~amd64 -# required by x11-misc/pcmanfm (argument) -=x11-misc/pcmanfm-1.3.2-r2 ~amd64 -# required by gcolor3 (argument) -=gui-apps/gcolor3-2.4.0 ~amd64 -# required by difftastic (argument) -=dev-util/difftastic-0.67.0 ~amd64 -# required by dev-haskell/hslua-2.3.0::gentoo -# required by dev-haskell/hslua-module-doclayout-1.1.0::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-aeson-2.3.0.1 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/commonmark-0.2.3 ~amd64 -# required by dev-haskell/hslua-module-system-1.1.0.1::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/temporary-1.3-r1 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/sha-1.6.4.4 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/blaze-html-0.9.1.2-r2 ~amd64 -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/tls-1.8.0 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-2.3.0 ~amd64 -# required by dev-haskell/zip-archive-0.4.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/digest-0.0.1.3 ~amd64 -# required by dev-haskell/http-media-0.8.0.0::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/utf8-string-1.0.2 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/yaml-0.11.11.2 ~amd64 -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/singleton-bool-0.1.7 ~amd64 -# required by dev-haskell/optparse-applicative-0.18.1.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/prettyprinter-ansi-terminal-1.1.3 ~amd64 -# required by dev-haskell/xml-conduit-1.9.1.3::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/conduit-extra-1.3.6-r1 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-module-text-1.1.0.1 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/scientific-0.3.7.0-r2 ~amd64 -# required by dev-haskell/http-client-0.7.14::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/streaming-commons-0.2.2.5 ~amd64 -# required by dev-haskell/asn1-parse-0.9.5::gentoo -# required by dev-haskell/crypton-x509-1.7.6::gentoo -# required by dev-haskell/crypton-x509-system-1.6.7::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/asn1-encoding-0.9.6 ~amd64 -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hunit-1.6.2.0-r1 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/lpeg-1.0.4 ~amd64 -# required by dev-haskell/hunit-1.6.2.0-r1::gentoo -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/call-stack-0.4.0 ~amd64 -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/wai-cors-0.2.7 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/onetuple-0.4.1.1 ~amd64 -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/toml-parser-1.3.0.0 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-module-system-1.1.0.1 ~amd64 -# required by dev-haskell/hslua-module-zip-1.1.0::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-typing-0.1.0 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/juicypixels-3.3.7 ~amd64 -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/bsb-http-chunked-0.0.0.4-r1 ~amd64 -# required by dev-haskell/cassava-0.5.3.0::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/only-0.1 ~amd64 -# required by dev-haskell/attoparsec-iso8601-1.1.0.0-r1::gentoo -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/base-compat-batteries-0.13.0 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/citeproc-0.8.1 ~amd64 -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/iproute-1.7.12 ~amd64 -# required by dev-haskell/ansi-terminal-1.0::gentoo -# required by dev-haskell/prettyprinter-ansi-terminal-1.1.3::gentoo -# required by dev-haskell/optparse-applicative-0.18.1.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/colour-2.3.6 ~amd64 -# required by dev-haskell/comonad-5.0.8-r1::gentoo -# required by dev-haskell/bifunctors-5.5.15::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/distributive-0.6.2.1 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/wai-app-static-3.1.7.2-r1 ~amd64 -# required by dev-haskell/singleton-bool-0.1.7::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/boring-0.2.1 ~amd64 -# required by dev-haskell/semigroupoids-5.3.7-r1::gentoo -# required by dev-haskell/semialign-1.3::gentoo[semigroupoids] -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/comonad-5.0.8-r1 ~amd64 -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/time-manager-0.0.0 ~amd64 -# required by dev-haskell/data-default-0.7.1.1::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/data-default-instances-old-locale-0.0.1 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/pandoc-lua-marshal-0.2.2 ~amd64 -# required by dev-haskell/mono-traversable-1.0.15.3::gentoo -# required by dev-haskell/conduit-1.3.4.3::gentoo -# required by dev-haskell/libyaml-0.1.2::gentoo -# required by dev-haskell/yaml-0.11.11.2::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/vector-algorithms-0.9.0.1-r1 ~amd64 -# required by dev-haskell/texmath-0.12.8.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/syb-0.7.2.4 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/http-api-data-0.5.1 ~amd64 -# required by dev-haskell/tls-1.8.0::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/crypton-x509-validation-1.6.12 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/word8-0.1.3 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-repl-0.1.1 ~amd64 -# required by dev-haskell/tls-1.8.0::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/cereal-0.5.8.3 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/xml-types-0.3.8 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-module-path-1.1.0 ~amd64 -# required by dev-haskell/skylighting-0.14::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/skylighting-format-latex-0.1 ~amd64 -# required by dev-haskell/crypton-x509-1.7.6::gentoo -# required by dev-haskell/crypton-x509-system-1.6.7::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/crypton-0.32 ~amd64 -# required by dev-haskell/toml-parser-1.3.0.0::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/alex-3.2.7.2 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/monad-control-1.0.3.1 ~amd64 -# required by dev-haskell/memory-0.18.0::gentoo -# required by dev-haskell/crypton-x509-validation-1.6.12::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/basement-0.0.16 ~amd64 -# required by dev-haskell/attoparsec-iso8601-1.1.0.0-r1::gentoo -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/time-compat-1.9.6.1-r1 ~amd64 -# required by dev-haskell/doclayout-0.4.0.1::gentoo -# required by dev-haskell/gridtables-0.1.0.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/emojis-0.1.3 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/ipynb-0.2 ~amd64 -# required by dev-haskell/skylighting-0.14::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/skylighting-core-0.14 ~amd64 -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-cli-1.4.1 ~amd64 -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/typst-symbols-0.1.4 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/transformers-base-0.4.6 ~amd64 -# required by dev-haskell/data-default-0.7.1.1::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/data-default-instances-dlist-0.0.1 ~amd64 -# required by dev-haskell/conduit-1.3.4.3::gentoo -# required by dev-haskell/libyaml-0.1.2::gentoo -# required by dev-haskell/yaml-0.11.11.2::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/mono-traversable-1.0.15.3 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/zip-archive-0.4.3 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/tagsoup-0.14.8 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/commonmark-extensions-0.2.3.5 ~amd64 -# required by dev-haskell/statevar-1.2.2::gentoo -# required by dev-haskell/contravariant-1.5.5::gentoo[statevar] -# required by dev-haskell/semigroupoids-5.3.7-r1::gentoo -# required by dev-haskell/semialign-1.3::gentoo[semigroupoids] -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/stm-2.5.0.2-r1 ~amd64 -# required by dev-haskell/skylighting-core-0.14::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/xml-conduit-1.9.1.3 ~amd64 -# required by dev-haskell/appar-0.1.8::gentoo -# required by dev-haskell/iproute-1.7.12::gentoo -# required by dev-haskell/http-client-0.7.14::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/fail-4.9.0.0 ~amd64 -# required by dev-haskell/hslua-packaging-2.3.0::gentoo -# required by dev-haskell/hslua-2.3.0::gentoo -# required by dev-haskell/hslua-module-doclayout-1.1.0::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-objectorientation-2.3.0 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/base64-bytestring-1.2.1.0 ~amd64 -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/base64-0.4.2.4 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/jira-wiki-markup-1.5.1 ~amd64 -# required by dev-haskell/fast-logger-3.2.2::gentoo -# required by dev-haskell/wai-logger-2.4.0::gentoo -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/easy-file-0.2.2 ~amd64 -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/cmdargs-0.10.22 ~amd64 -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/digits-0.3.1 ~amd64 -# required by dev-haskell/toml-parser-1.3.0.0::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/happy-1.20.1.1 ~amd64 -# required by dev-haskell/time-compat-1.9.6.1-r1::gentoo -# required by dev-haskell/attoparsec-iso8601-1.1.0.0-r1::gentoo -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/base-orphans-0.9.0 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/glob-0.10.2 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/zlib-0.6.3.0 ~amd64 -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/socks-0.6.1 ~amd64 -# required by dev-haskell/iproute-1.7.12::gentoo -# required by dev-haskell/http-client-0.7.14::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/appar-0.1.8 ~amd64 -# required by dev-haskell/hslua-module-system-1.1.0.1::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-marshalling-2.3.0 ~amd64 -# required by dev-haskell/hslua-core-2.3.1::gentoo -# required by dev-haskell/hslua-cli-1.4.1::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/lua-2.3.1 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/texmath-0.12.8.3 ~amd64 -# required by dev-haskell/scientific-0.3.7.0-r2::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hashable-1.4.2.0-r2 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/pandoc-3.1.8-r2 ~amd64 -# required by dev-haskell/skylighting-format-ansi-0.1::gentoo -# required by dev-haskell/skylighting-0.14::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/ansi-terminal-1.0 ~amd64 -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/cryptonite-0.30 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/aeson-pretty-0.8.10 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-module-version-1.1.0 ~amd64 -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/network-uri-2.6.4.2 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/resourcet-1.2.6 ~amd64 -# required by dev-haskell/base64-0.4.2.4::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/text-1.2.5.0-r1 ~amd64 -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/sop-core-0.5.0.2 ~amd64 -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/data-default-0.7.1.1 ~amd64 -# required by dev-haskell/base64-0.4.2.4::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/text-short-0.1.5-r1 ~amd64 -# required by dev-haskell/mono-traversable-1.0.15.3::gentoo -# required by dev-haskell/conduit-1.3.4.3::gentoo -# required by dev-haskell/libyaml-0.1.2::gentoo -# required by dev-haskell/yaml-0.11.11.2::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/split-0.2.3.5 ~amd64 -# required by dev-haskell/singleton-bool-0.1.7::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/some-1.0.5 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/pretty-show-1.10 ~amd64 -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/unix-compat-0.7 ~amd64 -# required by dev-haskell/juicypixels-3.3.7::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/vector-0.12.3.1-r1 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/servant-0.20 ~amd64 -# required by dev-haskell/ansi-terminal-1.0::gentoo -# required by dev-haskell/prettyprinter-ansi-terminal-1.1.3::gentoo -# required by dev-haskell/optparse-applicative-0.18.1.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/ansi-terminal-types-0.11.5 ~amd64 -# required by dev-haskell/quickcheck-2.14.3::gentoo -# required by dev-haskell/digits-0.3.1::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/splitmix-0.1.0.4 ~amd64 -# required by dev-haskell/citeproc-0.8.1::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/unicode-collation-0.1.3.4 ~amd64 -# required by dev-haskell/transformers-base-0.4.6::gentoo -# required by dev-haskell/monad-control-1.0.3.1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/transformers-compat-0.7.2 ~amd64 -# required by dev-haskell/skylighting-0.14::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/skylighting-format-context-0.1.0.1 ~amd64 -# required by dev-haskell/contravariant-1.5.5::gentoo[statevar] -# required by dev-haskell/semigroupoids-5.3.7-r1::gentoo -# required by dev-haskell/semialign-1.3::gentoo[semigroupoids] -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/statevar-1.2.2 ~amd64 -# required by dev-haskell/th-lift-instances-0.1.20::gentoo -# required by dev-haskell/unicode-collation-0.1.3.4::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/th-lift-0.8.4 ~amd64 -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/simple-sendfile-0.2.30-r1 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/quickcheck-2.14.3 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-module-zip-1.1.0 ~amd64 -# required by dev-haskell/semigroupoids-5.3.7-r1::gentoo -# required by dev-haskell/semialign-1.3::gentoo[semigroupoids] -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/bifunctors-5.5.15 ~amd64 -# required by dev-haskell/skylighting-0.14::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/skylighting-format-ansi-0.1 ~amd64 -# required by dev-haskell/crypton-x509-system-1.6.7::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/crypton-x509-store-1.6.9 ~amd64 -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/optparse-applicative-0.18.1.0 ~amd64 -# required by dev-haskell/haddock-library-1.10.0-r2::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/parsec-3.1.15.0-r1 ~amd64 -# required by dev-haskell/citeproc-0.8.1::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/uniplate-1.6.13 ~amd64 -# required by dev-haskell/crypton-0.32::gentoo -# required by dev-haskell/crypton-x509-store-1.6.9::gentoo -# required by dev-haskell/crypton-x509-system-1.6.7::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/memory-0.18.0 ~amd64 -# required by dev-haskell/aeson-pretty-0.8.10::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/unordered-containers-0.2.19.1 ~amd64 -# required by dev-haskell/asn1-encoding-0.9.6::gentoo -# required by dev-haskell/crypton-x509-store-1.6.9::gentoo -# required by dev-haskell/crypton-x509-system-1.6.7::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hourglass-0.2.12-r1 ~amd64 -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/case-insensitive-1.2.1.0 ~amd64 -# required by dev-haskell/semialign-1.3::gentoo -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/indexed-traversable-instances-0.1.1.2 ~amd64 -# required by dev-haskell/semialign-1.3::gentoo[semigroupoids] -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/semigroupoids-5.3.7-r1 ~amd64 -# required by dev-haskell/singleton-bool-0.1.7::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/dec-0.0.5 ~amd64 -# required by dev-haskell/recv-0.1.0::gentoo -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/network-3.1.3.0 ~amd64 -# required by dev-haskell/pandoc-lua-marshal-0.2.2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-list-1.1.1 ~amd64 -# required by dev-haskell/toml-parser-1.3.0.0::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/prettyprinter-1.7.1 ~amd64 -# required by dev-haskell/commonmark-0.2.3::gentoo -# required by dev-haskell/commonmark-extensions-0.2.3.5::gentoo -# required by dev-haskell/commonmark-pandoc-0.2.1.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/unicode-data-0.4.0.1 ~amd64 -# required by dev-haskell/hslua-aeson-2.3.0.1::gentoo -# required by dev-haskell/hslua-2.3.0::gentoo -# required by dev-haskell/hslua-module-doclayout-1.1.0::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/aeson-2.1.2.1 ~amd64 -# required by dev-haskell/hslua-module-text-1.1.0.1::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-packaging-2.3.0 ~amd64 -# required by dev-haskell/text-conversions-0.3.1.1::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/base16-bytestring-1.0.2.0 ~amd64 -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/crypton-x509-system-1.6.7 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/random-1.2.1.1 ~amd64 -# required by dev-haskell/http2-4.1.2::gentoo -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/psqueues-0.2.7.3 ~amd64 -# required by app-text/pandoc (argument) -=app-text/pandoc-3 ~amd64 -# required by dev-haskell/http2-4.1.2::gentoo -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/network-byte-order-0.1.6 ~amd64 -# required by dev-haskell/bifunctors-5.5.15::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/th-abstraction-0.4.5.0 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/commonmark-pandoc-0.2.1.3 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/haddock-library-1.10.0-r2 ~amd64 -# required by dev-haskell/pretty-show-1.10::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/haskell-lexer-1.1 ~amd64 -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/wai-logger-2.4.0 ~amd64 -# required by dev-haskell/iproute-1.7.12::gentoo -# required by dev-haskell/http-client-0.7.14::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/byteorder-1.0.4 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/doctemplates-0.11 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/blaze-markup-0.8.2.8-r1 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/mime-types-0.1.1.0 ~amd64 -# required by dev-haskell/constraints-0.13.4::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/type-equality-1 ~amd64 -# required by dev-haskell/unix-time-0.4.10::gentoo -# required by dev-haskell/tls-1.8.0::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/old-time-1.1.0.3-r1 ~amd64 -# required by dev-haskell/blaze-markup-0.8.2.8-r1::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/blaze-builder-0.4.2.2 ~amd64 -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/servant-server-0.20 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/primitive-0.7.4.0 ~amd64 -# required by dev-haskell/unliftio-0.2.23.0-r1::gentoo -# required by dev-haskell/http2-4.1.2::gentoo -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/async-2.2.4-r1 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/data-fix-0.3.2-r1 ~amd64 -# required by dev-haskell/regex-tdfa-1.3.2.2::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/regex-base-0.94.0.2 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/http-media-0.8.0.0 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/text-conversions-0.3.1.1 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/generically-0.1.1-r1 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/xml-1.3.14 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/crypton-connection-0.3.1 ~amd64 -# required by dev-haskell/unliftio-0.2.23.0-r1::gentoo -# required by dev-haskell/http2-4.1.2::gentoo -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/unliftio-core-0.2.1.0 ~amd64 -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/attoparsec-aeson-2.1.0.0 ~amd64 -# required by dev-haskell/conduit-extra-1.3.6-r1::gentoo -# required by dev-haskell/xml-conduit-1.9.1.3::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/typed-process-0.2.10.1-r1 ~amd64 -# required by dev-haskell/hslua-repl-0.1.1::gentoo -# required by dev-haskell/hslua-cli-1.4.1::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/isocline-1.0.9 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/unicode-transforms-0.4.0.1 ~amd64 -# required by dev-haskell/data-default-0.7.1.1::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/data-default-class-0.1.2.0 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/indexed-traversable-0.1.2.1 ~amd64 -# required by dev-haskell/xml-conduit-1.9.1.3::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/cabal-doctest-1.0.9-r1 ~amd64 -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/vault-0.3.1.5-r2 ~amd64 -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/pandoc-server-0.1.0.3 ~amd64 -# required by dev-haskell/hashable-1.4.2.0-r2::gentoo -# required by dev-haskell/cassava-0.5.3.0::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/data-array-byte-0.1.0.1 ~amd64 -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/wai-extra-3.1.13.0 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/http-client-tls-0.3.6.3 ~amd64 -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/cookie-0.4.5 ~amd64 -# required by dev-haskell/unicode-collation-0.1.3.4::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/th-lift-instances-0.1.20 ~amd64 -# required by dev-haskell/network-uri-2.6.4.2::gentoo -# required by dev-haskell/commonmark-extensions-0.2.3.5::gentoo -# required by dev-haskell/commonmark-pandoc-0.2.1.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/th-compat-0.1.4 ~amd64 -# required by dev-haskell/fast-logger-3.2.2::gentoo -# required by dev-haskell/wai-logger-2.4.0::gentoo -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/unix-time-0.4.10 ~amd64 -# required by dev-haskell/semigroupoids-5.3.7-r1::gentoo -# required by dev-haskell/semialign-1.3::gentoo[semigroupoids] -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/tagged-0.8.7 ~amd64 -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=app-text/pandoc-cli-0.1.1-r1 ~amd64 -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/http2-4.1.2 ~amd64 -# required by dev-haskell/crypton-x509-store-1.6.9::gentoo -# required by dev-haskell/crypton-x509-system-1.6.7::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/pem-0.2.4 ~amd64 -# required by dev-haskell/crypton-x509-validation-1.6.12::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/crypton-x509-1.7.6 ~amd64 -# required by dev-haskell/attoparsec-iso8601-1.1.0.0-r1::gentoo -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/attoparsec-0.14.4-r1 ~amd64 -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/recv-0.1.0 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/dlist-1.0 ~amd64 -# required by dev-haskell/base-compat-batteries-0.13.0::gentoo -# required by dev-haskell/attoparsec-iso8601-1.1.0.0-r1::gentoo -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/base-compat-0.13.0 ~amd64 -# required by dev-haskell/these-1.2::gentoo -# required by dev-haskell/semialign-1.3::gentoo -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/assoc-1.1 ~amd64 -# required by dev-haskell/crypton-x509-validation-1.6.12::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/asn1-types-0.3.4 ~amd64 -# required by dev-haskell/data-default-0.7.1.1::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/data-default-instances-containers-0.0.1 ~amd64 -# required by dev-haskell/crypton-x509-1.7.6::gentoo -# required by dev-haskell/crypton-x509-system-1.6.7::gentoo -# required by dev-haskell/crypton-connection-0.3.1::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/asn1-parse-0.9.5 ~amd64 -# required by dev-haskell/base64-0.4.2.4::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/cabal-3.6.3.0 ~amd64 -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/http-date-0.0.11 ~amd64 -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/old-locale-1.0.0.7 ~amd64 -# required by dev-haskell/libyaml-0.1.2::gentoo -# required by dev-haskell/yaml-0.11.11.2::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/conduit-1.3.4.3 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/skylighting-0.14 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/strict-0.5 ~amd64 -# required by dev-haskell/scientific-0.3.7.0-r2::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/integer-logarithms-1.0.3.1-r2 ~amd64 -# required by dev-haskell/case-insensitive-1.2.1.0::gentoo -# required by dev-haskell/http-client-0.7.14::gentoo -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/semigroups-0.20 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/doclayout-0.4.0.1 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/typst-0.3.2.0 ~amd64 -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/http-types-0.12.3 ~amd64 -# required by dev-haskell/http2-4.1.2::gentoo -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/unliftio-0.2.23.0-r1 ~amd64 -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/ordered-containers-0.2.3 ~amd64 -# required by dev-haskell/yaml-0.11.11.2::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/libyaml-0.1.2 ~amd64 -# required by dev-haskell/skylighting-0.14::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/skylighting-format-blaze-html-0.1.1.1 ~amd64 -# required by dev-haskell/strict-0.5::gentoo -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/these-1.2 ~amd64 -# required by dev-haskell/onetuple-0.4.1.1::gentoo -# required by dev-haskell/base-compat-batteries-0.13.0::gentoo -# required by dev-haskell/attoparsec-iso8601-1.1.0.0-r1::gentoo -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/foldable1-classes-compat-0.1 ~amd64 -# required by dev-haskell/cabal-3.6.3.0::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-lang/ghc-9.2.8 ~amd64 -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/regex-tdfa-1.3.2.2 ~amd64 -# required by dev-haskell/vector-algorithms-0.9.0.1-r1::gentoo -# required by dev-haskell/mono-traversable-1.0.15.3::gentoo -# required by dev-haskell/conduit-1.3.4.3::gentoo -# required by dev-haskell/libyaml-0.1.2::gentoo -# required by dev-haskell/yaml-0.11.11.2::gentoo -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/bitvec-1.1.3.0 ~amd64 -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/warp-3.3.28 ~amd64 -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/wai-3.2.3 ~amd64 -# required by dev-haskell/happy-1.20.1.1::gentoo -# required by dev-haskell/pretty-show-1.10::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/mtl-2.2.2-r1 ~amd64 -# required by dev-haskell/wai-logger-2.4.0::gentoo -# required by dev-haskell/wai-extra-3.1.13.0::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/fast-logger-3.2.2 ~amd64 -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/constraints-0.13.4 ~amd64 -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/auto-update-0.1.6 ~amd64 -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-module-doclayout-1.1.0 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/pandoc-types-1.23.1 ~amd64 -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/mmorph-1.2.0 ~amd64 -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/gridtables-0.1.0.0 ~amd64 -# required by dev-haskell/http-client-tls-0.3.6.3::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/http-client-0.7.14 ~amd64 -# required by dev-lang/ghc-9.2.8::gentoo[-ghcbootstrap] -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=app-admin/haskell-updater-1.4.1.0 ~amd64 -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/file-embed-0.0.15.0 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/uuid-types-1.0.5-r1 ~amd64 -# required by dev-haskell/pandoc-lua-marshal-0.2.2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/safe-0.3.19 ~amd64 -# required by dev-haskell/hslua-repl-0.1.1::gentoo -# required by dev-haskell/hslua-cli-1.4.1::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-core-2.3.1 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/witherable-0.4.2-r1 ~amd64 -# required by dev-haskell/unliftio-0.2.23.0-r1::gentoo -# required by dev-haskell/http2-4.1.2::gentoo -# required by dev-haskell/warp-3.3.28::gentoo -# required by dev-haskell/wai-app-static-3.1.7.2-r1::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/safe-exceptions-0.1.7.3 ~amd64 -# required by dev-haskell/hslua-2.3.0::gentoo -# required by dev-haskell/hslua-module-doclayout-1.1.0::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/hslua-classes-2.3.0 ~amd64 -# required by dev-haskell/typst-0.3.2.0::gentoo -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/cassava-0.5.3.0 ~amd64 -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/pandoc-lua-engine-0.2.1.2 ~amd64 -# required by dev-haskell/wai-cors-0.2.7::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/base-unicode-symbols-0.2.4.2 ~amd64 -# required by dev-haskell/semigroupoids-5.3.7-r1::gentoo -# required by dev-haskell/semialign-1.3::gentoo[semigroupoids] -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/contravariant-1.5.5 ~amd64 -# required by dev-haskell/http-api-data-0.5.1::gentoo -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/attoparsec-iso8601-1.1.0.0-r1 ~amd64 -# required by dev-haskell/servant-0.20::gentoo -# required by dev-haskell/servant-server-0.20::gentoo -# required by dev-haskell/pandoc-server-0.1.0.3::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[server] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/string-conversions-0.4.0.1 ~amd64 -# required by dev-haskell/aeson-2.1.2.1::gentoo -# required by dev-haskell/attoparsec-aeson-2.1.0.0::gentoo -# required by dev-haskell/aeson-pretty-0.8.10::gentoo[executable] -# required by dev-haskell/pandoc-3.1.8-r2::gentoo -# required by dev-haskell/pandoc-lua-engine-0.2.1.2::gentoo -# required by app-text/pandoc-cli-0.1.1-r1::gentoo[lua] -# required by app-text/pandoc-3::gentoo -# required by app-text/pandoc (argument) -=dev-haskell/semialign-1.3 ~amd64 diff --git a/gentoo/portage/package.license/steam b/gentoo/portage/package.license/steam new file mode 100644 index 00000000..1e1fb7e1 --- /dev/null +++ b/gentoo/portage/package.license/steam @@ -0,0 +1 @@ +games-util/steam-launcher ValveSteamLicense diff --git a/gentoo/portage/package.mask/systemd b/gentoo/portage/package.mask/systemd new file mode 100644 index 00000000..9b52e5de --- /dev/null +++ b/gentoo/portage/package.mask/systemd @@ -0,0 +1 @@ +sys-apps/systemd diff --git a/gentoo/portage/package.use/00video_cards b/gentoo/portage/package.use/00video_cards index f3b4deb8..f503098c 100644 --- a/gentoo/portage/package.use/00video_cards +++ b/gentoo/portage/package.use/00video_cards @@ -1 +1 @@ -*/* VIDEO_CARDS: virgl +*/* VIDEO_CARDS: nvidia diff --git a/gentoo/portage/package.use/00xorg_entries b/gentoo/portage/package.use/00xorg_entries new file mode 100644 index 00000000..b99a910a --- /dev/null +++ b/gentoo/portage/package.use/00xorg_entries @@ -0,0 +1 @@ +*/* INPUT_DEVICES: libinput wacom diff --git a/gentoo/portage/package.use/doas b/gentoo/portage/package.use/doas deleted file mode 100644 index 2d1cc48a..00000000 --- a/gentoo/portage/package.use/doas +++ /dev/null @@ -1 +0,0 @@ -app-admin/doas persist diff --git a/gentoo/portage/package.use/installkernel b/gentoo/portage/package.use/installkernel deleted file mode 100644 index 6821038f..00000000 --- a/gentoo/portage/package.use/installkernel +++ /dev/null @@ -1,11 +0,0 @@ -sys-kernel/installkernel grub dracut -# required by media-libs/mesa-25.1.9::gentoo -# required by x11-drivers/xf86-video-ati-22.0.0::gentoo -# required by x11-base/xorg-drivers-21.1-r2::gentoo[video_cards_radeonsi,video_cards_radeon] -# required by x11-base/xorg-server-21.1.20::gentoo[xorg] -# required by x11-drivers/xf86-input-libinput-1.5.0::gentoo ->=media-libs/libglvnd-1.7.0 X -# required by x11-base/xorg-server-21.1.20::gentoo[elogind] -# required by x11-drivers/xf86-input-libinput-1.5.0::gentoo -# required by x11-base/xorg-drivers-21.1-r2::gentoo[input_devices_libinput] ->=sys-auth/pambase-20251013 elogind diff --git a/gentoo/portage/package.use/krita b/gentoo/portage/package.use/krita deleted file mode 100644 index 9123cbe6..00000000 --- a/gentoo/portage/package.use/krita +++ /dev/null @@ -1 +0,0 @@ -media-gfx/krita declarative network diff --git a/gentoo/portage/package.use/librewolf-bin b/gentoo/portage/package.use/librewolf-bin deleted file mode 100644 index 05239976..00000000 --- a/gentoo/portage/package.use/librewolf-bin +++ /dev/null @@ -1 +0,0 @@ -www-client/librewolf-bin harfbuzz pulseaudio system-pipewire diff --git a/gentoo/portage/package.use/onlyoffice-bin b/gentoo/portage/package.use/onlyoffice-bin deleted file mode 100644 index c5acd70c..00000000 --- a/gentoo/portage/package.use/onlyoffice-bin +++ /dev/null @@ -1 +0,0 @@ -app-office/onlyoffice-bin egl diff --git a/gentoo/portage/package.use/package.use b/gentoo/portage/package.use/package.use new file mode 100644 index 00000000..8bf1f9e5 --- /dev/null +++ b/gentoo/portage/package.use/package.use @@ -0,0 +1,1093 @@ +# required by x11-libs/pango-1.57.0::gentoo +# required by gnome-base/librsvg-2.60.0::gentoo +# required by x11-themes/adwaita-icon-theme-legacy-46.2::gentoo +# required by x11-themes/adwaita-icon-theme-48.1::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gnome-extra/polkit-gnome-0.105-r2::gentoo +# required by sys-auth/polkit-126-r2::gentoo[gtk] +# required by sys-auth/elogind-255.17-r1::gentoo[policykit] +# required by sys-apps/dbus-1.16.2::gentoo[elogind] +# required by gnome-base/dconf-0.40.0::gentoo +# required by dev-libs/glib-2.84.4::gentoo[dbus] +# required by x11-libs/gdk-pixbuf-2.42.12::gentoo +# required by dev-util/gtk-update-icon-cache-3.24.42::gentoo +>=media-libs/harfbuzz-12.1.0 truetype +sys-kernel/installkernel grub dracut +app-admin/doas persist +# required by media-sound/pulseaudio-daemon-17.0-r1::gentoo[alsa,alsa-plugin] +# required by media-libs/libpulse-17.0::gentoo +# required by media-sound/pavucontrol-6.1-r1::gentoo +# required by media-sound/pavucontrol (argument) +>=media-plugins/alsa-plugins-1.2.12 pulseaudio +media-video/mpv pipewire pulseaudio vaapi +# required by media-video/mpv-0.40.0-r3::gentoo +# required by media-video/mpv (argument) +>=media-video/ffmpeg-7.1.2 vaapi +# required by xfce-base/xfce4-panel-4.20.5::gentoo[dbusmenu] +# required by xfce-extra/xfce4-screenshooter-1.11.3::gentoo +# required by xfce-extra/xfce4-screenshooter (argument) +>=dev-libs/libdbusmenu-16.04.0-r4 gtk3 +# required by www-client/ungoogled-chromium-bin-142.0.7444.175::pf4public +# required by ungoogled-chromium-bin (argument) +>=sys-libs/zlib-1.3.1-r1 minizip +sys-auth/seatd builtin server +x11-base/xorg-server suid +#net-print/cups zeroconf +#net-print/cups-meta zeroconf +sys-libs/ncurses abi_x86_32 +net-firewall/ufw ipv6 +app-containers/docker apparmor +# required by app-containers/docker-28.0.4::gentoo +# required by app-containers/docker (argument) +>=app-containers/containerd-2.1.4 apparmor +# required by app-containers/containerd-2.1.4::gentoo +# required by app-containers/docker-28.0.4::gentoo +# required by app-containers/docker (argument) +>=app-containers/runc-1.3.3 apparmor +sys-fs/android-file-transfer-linux fuse +dev-qt/qtwidgets gtk +net-libs/nodejs npm +media-gfx/imagemagick heif jpeg svg tiff webp +# required by media-gfx/imagemagick-7.1.2.3-r1::gentoo[heif] +# required by media-gfx/imagemagick (argument) +>=media-libs/libheif-1.19.8 x265 +# required by app-emulation/wine-proton-10.0.2d::gentoo +# required by app-emulation/wine-proton (argument) +>=dev-libs/libgcrypt-1.11.2 abi_x86_32 +# required by x11-libs/pango-1.57.0::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/freetype-2.14.1-r1 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libglvnd-1.7.0 abi_x86_32 +# required by app-emulation/wine-proton-10.0.2d::gentoo +# required by app-emulation/wine-proton (argument) +>=media-libs/vulkan-loader-1.4.328.0 abi_x86_32 +# required by media-libs/libsdl2-2.32.6::gentoo[X] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXcursor-1.2.3 abi_x86_32 +# required by media-libs/libsdl2-2.32.6::gentoo[X] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXfixes-6.0.2 abi_x86_32 +# required by x11-libs/gtk+-3.24.51::gentoo[X] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXi-1.8.2 abi_x86_32 +# required by x11-libs/gtk+-3.24.51::gentoo[X] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXrandr-1.5.4 abi_x86_32 +# required by x11-libs/libXft-2.3.9::gentoo +# required by x11-libs/pango-1.57.0::gentoo[X] +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXrender-0.9.12 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[X] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXxf86vm-1.1.6 abi_x86_32 +# required by x11-libs/gtk+-3.24.51::gentoo[X] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXcomposite-0.4.6 abi_x86_32 +# required by net-print/cups-2.4.14::gentoo[dbus] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=sys-apps/dbus-1.16.2 abi_x86_32 +# required by x11-libs/pango-1.57.0::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/fontconfig-2.17.1 abi_x86_32 +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libsdl2-2.32.6 abi_x86_32 +# required by dev-libs/nettle-3.10.2::gentoo[gmp] +# required by net-libs/gnutls-3.8.10-r1::gentoo +# required by net-print/cups-2.4.14::gentoo[-openssl] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/gmp-6.3.0-r1 abi_x86_32 +# required by net-print/cups-2.4.14::gentoo[-openssl] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=net-libs/gnutls-3.8.10-r1 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[X] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libX11-1.8.12 abi_x86_32 +# required by x11-libs/cairo-1.18.4-r1::gentoo[X] +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXext-1.3.6 abi_x86_32 +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[alsa] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/alsa-lib-1.2.14 abi_x86_32 +# required by media-libs/gst-plugins-bad-1.24.11::gentoo +# required by media-plugins/gst-plugins-faad-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[aac] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/glib-2.84.4 abi_x86_32 +# required by media-libs/gst-plugins-ugly-1.24.11::gentoo +# required by media-plugins/gst-plugins-a52dec-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[a52,dvd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/gst-plugins-base-1.24.11-r1 abi_x86_32 +# required by media-plugins/gst-plugins-dvdread-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[dvd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/gstreamer-1.24.11 abi_x86_32 +# required by app-emulation/wine-proton-10.0.2d::gentoo[-llvm-libunwind,unwind] +# required by app-emulation/wine-proton (argument) +>=sys-libs/libunwind-1.8.2-r1 abi_x86_32 +# required by app-emulation/wine-proton-10.0.2d::gentoo[usb] +# required by app-emulation/wine-proton (argument) +>=dev-libs/libusb-1.0.29 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libdrm-2.4.127 abi_x86_32 +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[wayland,opengl,gles2] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/wayland-1.24.0 abi_x86_32 +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libxkbcommon-1.12.3 abi_x86_32 +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/gst-plugins-bad-1.24.11 abi_x86_32 +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-libav-1.24.11 abi_x86_32 +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-meta-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-flac-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[flac] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/gst-plugins-good-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[a52,dvd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-a52dec-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[aac] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-faad-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[dts] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-dts-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[mp3,dvd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/gst-plugins-ugly-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[dvd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-dvdread-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[dvd,mpeg,-vcd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-mpeg2dec-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[dvd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-resindvd-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[flac] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-flac-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[mp3] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-mpg123-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[x264] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-x264-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-x264-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[x264] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/x264-0.0.20240513 abi_x86_32 +# required by media-plugins/gst-plugins-mpg123-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[mp3] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-sound/mpg123-base-1.32.10-r2 abi_x86_32 +# required by media-plugins/gst-plugins-flac-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[flac] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/flac-1.5.0 abi_x86_32 +# required by media-libs/libvorbis-1.3.7-r2::gentoo +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[vorbis] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libogg-1.3.5-r2 abi_x86_32 +# required by media-plugins/gst-plugins-resindvd-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[dvd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libdvdnav-6.1.1 abi_x86_32 +# required by media-libs/libdvdnav-6.1.1::gentoo +# required by media-video/ffmpeg-7.1.2::gentoo[dvd] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libdvdread-6.1.3 abi_x86_32 +# required by media-libs/libdvdread-6.1.3::gentoo[css] +# required by media-video/ffmpeg-7.1.2::gentoo[dvd] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libdvdcss-1.4.3 abi_x86_32 +# required by media-plugins/gst-plugins-mpeg2dec-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[dvd,mpeg,-vcd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libmpeg2-0.5.1-r3 abi_x86_32 +# required by media-plugins/gst-plugins-dts-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[dts] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libdca-0.0.7 abi_x86_32 +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[orc] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-lang/orc-0.4.41 abi_x86_32 +# required by media-plugins/gst-plugins-faad-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[aac] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/faad2-2.11.1 abi_x86_32 +# required by media-plugins/gst-plugins-a52dec-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[a52,dvd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/a52dec-0.7.4-r9 abi_x86_32 +# required by media-libs/gst-plugins-bad-1.24.11::gentoo[bzip2] +# required by media-plugins/gst-plugins-faad-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[aac] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=app-arch/bzip2-1.0.8-r5 abi_x86_32 +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-video/ffmpeg-7.1.2 abi_x86_32 +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[X] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXv-1.0.13 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[X] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libxcb-1.17.0 abi_x86_32 +# required by media-video/ffmpeg-7.1.2::gentoo[dav1d] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/dav1d-1.5.0 abi_x86_32 +# required by media-video/ffmpeg-7.1.2::gentoo[jpegxl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libjxl-0.11.1 abi_x86_32 +# required by media-libs/libjxl-0.11.1::gentoo +# required by media-video/ffmpeg-7.1.2::gentoo[jpegxl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/lcms-2.17 abi_x86_32 +# required by media-video/ffmpeg-7.1.2::gentoo[libass] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libass-0.17.4 abi_x86_32 +# required by media-video/ffmpeg-7.1.2::gentoo[svg] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=gnome-base/librsvg-2.60.0 abi_x86_32 +# required by x11-libs/pango-1.57.0::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/cairo-1.18.4-r1 abi_x86_32 +# required by x11-libs/pango-1.57.0::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/harfbuzz-12.1.0 abi_x86_32 +# required by media-video/ffmpeg-7.1.2::gentoo[vaapi] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libva-2.22.0-r1 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[vdpau] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libvdpau-1.5 abi_x86_32 +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[vorbis] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libvorbis-1.3.7-r2 abi_x86_32 +# required by media-video/ffmpeg-7.1.2::gentoo[webp] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libwebp-1.5.0 abi_x86_32 +# required by llvm-core/llvm-20.1.8::gentoo[xml] +# required by media-libs/mesa-25.2.7::gentoo[llvm_slot_20,llvm] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/libxml2-2.15.0-r1 abi_x86_32 +# required by media-video/ffmpeg-7.1.2::gentoo[xvid] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/xvid-1.3.7-r2 abi_x86_32 +# required by media-libs/harfbuzz-12.1.0::gentoo[icu] +# required by media-libs/freetype-2.14.1-r1::gentoo[harfbuzz] +# required by media-libs/fontconfig-2.17.1::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/icu-77.1 abi_x86_32 +# required by media-libs/harfbuzz-12.1.0::gentoo[graphite] +# required by media-libs/freetype-2.14.1-r1::gentoo[harfbuzz] +# required by media-libs/fontconfig-2.17.1::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-gfx/graphite2-1.3.14_p20210810-r5 abi_x86_32 +# required by x11-libs/cairo-1.18.4-r1::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libpng-1.6.51 abi_x86_32 +# required by x11-libs/cairo-1.18.4-r1::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/pixman-0.46.4 abi_x86_32 +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/gdk-pixbuf-2.42.12 abi_x86_32 +# required by gnome-base/librsvg-2.60.0::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/pango-1.57.0 abi_x86_32 +# required by x11-libs/pango-1.57.0::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/fribidi-1.0.16 abi_x86_32 +# required by x11-libs/pango-1.57.0::gentoo[X] +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXft-2.3.9 abi_x86_32 +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libjpeg-turbo-3.1.1 abi_x86_32 +# required by media-libs/lcms-2.17::gentoo[tiff] +# required by media-libs/libjxl-0.11.1::gentoo +# required by media-video/ffmpeg-7.1.2::gentoo[jpegxl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/tiff-4.7.0-r1 abi_x86_32 +# required by media-libs/libjxl-0.11.1::gentoo +# required by media-video/ffmpeg-7.1.2::gentoo[jpegxl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=app-arch/brotli-1.1.0 abi_x86_32 +# required by media-libs/libjxl-0.11.1::gentoo +# required by media-video/ffmpeg-7.1.2::gentoo[jpegxl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-cpp/highway-1.3.0 abi_x86_32 +# required by media-libs/libjxl-0.11.1::gentoo[gif] +# required by media-video/ffmpeg-7.1.2::gentoo[jpegxl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/giflib-5.2.2 abi_x86_32 +# required by x11-libs/libxcb-1.17.0::gentoo +# required by x11-libs/xcb-util-keysyms-0.4.1::gentoo +# required by media-libs/mesa-25.2.7::gentoo[X] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXau-1.0.12 abi_x86_32 +# required by x11-libs/libxcb-1.17.0::gentoo +# required by x11-libs/xcb-util-keysyms-0.4.1::gentoo +# required by media-libs/mesa-25.2.7::gentoo[X] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXdmcp-1.1.5 abi_x86_32 +# required by llvm-core/llvm-20.1.8::gentoo[libffi] +# required by media-libs/mesa-25.2.7::gentoo[llvm_slot_20,llvm] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/libffi-3.5.2 abi_x86_32 +# required by x11-libs/libdrm-2.4.127::gentoo[video_cards_intel] +# required by media-libs/mesa-25.2.7::gentoo +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libpciaccess-0.18.1 abi_x86_32 +# required by sys-apps/systemd-utils-255.18::gentoo[udev] +# required by virtual/libudev-251-r2::gentoo[-systemd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[udev] +# required by app-emulation/wine-proton (argument) +>=sys-libs/libcap-2.76 abi_x86_32 +# required by sys-libs/libcap-2.76::gentoo[pam] +# required by sys-apps/systemd-utils-255.18::gentoo[udev] +# required by virtual/libudev-251-r2::gentoo[-systemd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[udev] +# required by app-emulation/wine-proton (argument) +>=sys-libs/pam-1.7.1-r2 abi_x86_32 +# required by sys-libs/pam-1.7.1-r2::gentoo[-berkdb] +# required by net-print/cups-2.4.14::gentoo[pam] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=sys-libs/gdbm-1.26 abi_x86_32 +# required by sys-libs/gdbm-1.26::gentoo[readline] +# required by sys-libs/pam-1.7.1-r2::gentoo[-berkdb] +# required by net-print/cups-2.4.14::gentoo[pam] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=sys-libs/readline-8.3_p1 abi_x86_32 +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/graphene-1.10.8-r1 abi_x86_32 +# required by dev-libs/glib-2.84.4::gentoo +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/libpcre2-10.46 abi_x86_32 +# required by sys-apps/systemd-utils-255.18::gentoo[udev] +# required by virtual/libudev-251-r2::gentoo[-systemd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[udev] +# required by app-emulation/wine-proton (argument) +>=sys-apps/util-linux-2.41.2 abi_x86_32 +# required by net-libs/gnutls-3.8.10-r1::gentoo +# required by net-print/cups-2.4.14::gentoo[-openssl] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/libtasn1-4.20.0 abi_x86_32 +# required by net-libs/gnutls-3.8.10-r1::gentoo +# required by net-print/cups-2.4.14::gentoo[-openssl] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/libunistring-1.3 abi_x86_32 +# required by net-libs/gnutls-3.8.10-r1::gentoo +# required by net-print/cups-2.4.14::gentoo[-openssl] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/nettle-3.10.2 abi_x86_32 +# required by net-libs/gnutls-3.8.10-r1::gentoo[idn] +# required by net-print/cups-2.4.14::gentoo[-openssl] +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=net-dns/libidn2-2.3.8 abi_x86_32 +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=gui-libs/libdecor-0.2.3 abi_x86_32 +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/mesa-25.2.7 abi_x86_32 +# required by media-libs/fontconfig-2.17.1::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/expat-2.7.3 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-util/spirv-tools-1.4.328.0 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[llvm_slot_20,llvm] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=llvm-core/llvm-20.1.8 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[X] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libxshmfence-1.3.3 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[X] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/xcb-util-keysyms-0.4.1 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[zstd] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=app-arch/zstd-1.5.7-r1 abi_x86_32 +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/gtk+-3.24.51 abi_x86_32 +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=app-accessibility/at-spi2-core-2.56.5 abi_x86_32 +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/libepoxy-1.5.10-r3 abi_x86_32 +# required by x11-libs/gtk+-3.24.51::gentoo[cups] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=net-print/cups-2.4.14 abi_x86_32 +# required by x11-libs/gtk+-3.24.51::gentoo[X] +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXdamage-1.1.6 abi_x86_32 +# required by app-accessibility/at-spi2-core-2.56.5::gentoo[X] +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=x11-libs/libXtst-1.2.5 abi_x86_32 +# required by dev-libs/libgcrypt-1.11.2::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo +# required by app-emulation/wine-proton (argument) +>=dev-libs/libgpg-error-1.56 abi_x86_32 +# required by dev-libs/glib-2.84.4::gentoo +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=virtual/libintl-0-r2 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=virtual/zlib-1.3.1-r1 abi_x86_32 +# required by virtual/zlib-1.3.1-r1::gentoo +# required by dev-util/mingw64-toolchain-13.0.0::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[-crossdev-mingw,-wow64] +# required by app-emulation/wine-proton (argument) +>=sys-libs/zlib-1.3.1-r1 abi_x86_32 +# required by media-libs/mesa-25.2.7::gentoo[-video_cards_r600,video_cards_radeon,llvm,video_cards_radeonsi] +# required by media-libs/gst-plugins-base-1.24.11-r1::gentoo[gles2,opengl] +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=virtual/libelf-3-r1 abi_x86_32 +# required by virtual/libelf-3-r1::gentoo +# required by dev-libs/glib-2.84.4::gentoo +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-libs/elfutils-0.193-r1 abi_x86_32 +# required by dev-libs/elfutils-0.193-r1::gentoo[lzma] +# required by virtual/libelf-3-r1::gentoo +# required by dev-libs/glib-2.84.4::gentoo +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=app-arch/xz-utils-5.8.1-r1 abi_x86_32 +# required by media-libs/libass-0.17.4::gentoo +# required by media-video/ffmpeg-7.1.2::gentoo[libass] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=virtual/libiconv-0-r2 abi_x86_32 +# required by media-libs/libsdl2-2.32.6::gentoo[opengl] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=virtual/opengl-8 abi_x86_32 +# required by media-libs/libsdl2-2.32.6::gentoo[opengl] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=virtual/glu-9.0-r2 abi_x86_32 +# required by dev-libs/libusb-1.0.29::gentoo[udev] +# required by app-emulation/wine-proton-10.0.2d::gentoo[usb] +# required by app-emulation/wine-proton (argument) +>=virtual/libudev-251-r2 abi_x86_32 +# required by virtual/libudev-251-r2::gentoo[-systemd] +# required by app-emulation/wine-proton-10.0.2d::gentoo[udev] +# required by app-emulation/wine-proton (argument) +>=sys-apps/systemd-utils-255.18 abi_x86_32 +# required by virtual/glu-9.0-r2::gentoo +# required by media-libs/libsdl2-2.32.6::gentoo[opengl] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-libs/glu-9.0.3 abi_x86_32 +# required by gnome-base/librsvg-2.60.0::gentoo +# required by x11-libs/gtk+-3.24.51::gentoo +# required by gui-libs/libdecor-0.2.3::gentoo[gtk] +# required by media-libs/libsdl2-2.32.6::gentoo[wayland] +# required by media-video/ffmpeg-7.1.2::gentoo[sdl] +# required by media-plugins/gst-plugins-libav-1.24.11::gentoo +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=dev-lang/rust-bin-1.89.0 abi_x86_32 +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-plugins/gst-plugins-cdparanoia-1.24.11 abi_x86_32 +# required by media-plugins/gst-plugins-cdparanoia-1.24.11::gentoo +# required by media-plugins/gst-plugins-meta-1.24.11::gentoo[cdda] +# required by app-emulation/wine-proton-10.0.2d::gentoo[gstreamer] +# required by app-emulation/wine-proton (argument) +>=media-sound/cdparanoia-3.10.2-r8 abi_x86_32 +# required by sys-libs/ncurses-6.5_p20250802::gentoo[gpm] +# required by sys-libs/ncurses (argument) +>=sys-libs/gpm-1.20.7-r6 abi_x86_32 +media-libs/vulkan-loader abi_x86_32 +media-libs/vulkan-layers abi_x86_32 +media-libs/freetype abi_x86_32 +media-libs/libpng abi_x86_32 +net-libs/gnutls abi_x86_32 +media-libs/libpulse abi_x86_32 +media-libs/alsa-lib abi_x86_32 +media-libs/libsdl2 abi_x86_32 +x11-apps/mesa-progs abi_x86_32 +media-plugins/gst-plugins-opus abi_x86_32 +media-libs/opus abi_x86_32 +app-accessibility/at-spi2-core abi_x86_32 +app-arch/bzip2 abi_x86_32 +app-arch/lz4 abi_x86_32 +app-arch/xz-utils abi_x86_32 +app-arch/zstd abi_x86_32 +app-crypt/p11-kit abi_x86_32 +dev-db/sqlite abi_x86_32 +dev-lang/rust-bin abi_x86_32 +dev-libs/dbus-glib abi_x86_32 +dev-libs/elfutils abi_x86_32 +dev-libs/expat abi_x86_32 +dev-libs/fribidi abi_x86_32 +dev-libs/glib abi_x86_32 +dev-libs/gmp abi_x86_32 +dev-libs/icu abi_x86_32 +dev-libs/json-glib abi_x86_32 +dev-libs/libevdev abi_x86_32 +dev-libs/libffi abi_x86_32 +dev-libs/libgcrypt abi_x86_32 +dev-libs/libgpg-error abi_x86_32 +dev-libs/libgudev abi_x86_32 +dev-libs/libgusb abi_x86_32 +dev-libs/libpcre2 abi_x86_32 +dev-libs/libtasn1 abi_x86_32 +dev-libs/libunistring abi_x86_32 +dev-libs/libusb abi_x86_32 +dev-libs/libxml2 abi_x86_32 +dev-libs/lzo abi_x86_32 +dev-libs/nettle abi_x86_32 +dev-libs/nspr abi_x86_32 +dev-libs/nss abi_x86_32 +dev-libs/openssl abi_x86_32 +dev-libs/wayland abi_x86_32 +dev-util/spirv-tools abi_x86_32 +dev-util/sysprof-capture abi_x86_32 +gnome-base/librsvg abi_x86_32 +gui-libs/libdecor abi_x86_32 +llvm-core/clang abi_x86_32 +llvm-core/llvm abi_x86_32 +media-gfx/graphite2 abi_x86_32 +media-libs/alsa-lib abi_x86_32 +media-libs/flac abi_x86_32 +media-libs/fontconfig abi_x86_32 +media-libs/freetype abi_x86_32 +media-libs/glu abi_x86_32 +media-libs/harfbuzz abi_x86_32 +media-libs/lcms abi_x86_32 +media-libs/libepoxy abi_x86_32 +media-libs/libglvnd abi_x86_32 +media-libs/libjpeg-turbo abi_x86_32 +media-libs/libogg abi_x86_32 +media-libs/libpng abi_x86_32 +media-libs/libpulse abi_x86_32 +media-libs/libsdl2 abi_x86_32 +media-libs/libsndfile abi_x86_32 +media-libs/libva abi_x86_32 +media-libs/libvorbis abi_x86_32 +media-libs/mesa abi_x86_32 +media-libs/openal abi_x86_32 +media-libs/opus abi_x86_32 +media-libs/libwebp abi_x86_32 +media-libs/tiff abi_x86_32 +media-sound/lame abi_x86_32 +media-sound/mpg123-base abi_x86_32 +media-video/pipewire bluetooth extra abi_x86_32 +net-dns/c-ares abi_x86_32 +net-dns/libidn2 abi_x86_32 +net-libs/gnutls abi_x86_32 +net-libs/libasyncns abi_x86_32 +net-libs/libndp abi_x86_32 +net-libs/libpsl abi_x86_32 +net-libs/nghttp2 abi_x86_32 +net-libs/nghttp3 abi_x86_32 +net-misc/curl abi_x86_32 +net-misc/networkmanager abi_x86_32 +net-print/cups abi_x86_32 +sys-apps/dbus abi_x86_32 +sys-apps/systemd abi_x86_32 +sys-apps/systemd-utils abi_x86_32 +sys-apps/util-linux abi_x86_32 +sys-libs/gdbm abi_x86_32 +sys-libs/gpm abi_x86_32 +sys-libs/libcap abi_x86_32 +sys-libs/libudev-compat abi_x86_32 +sys-libs/ncurses abi_x86_32 +sys-libs/pam abi_x86_32 +sys-libs/readline abi_x86_32 +sys-libs/zlib abi_x86_32 +virtual/glu abi_x86_32 +virtual/libelf abi_x86_32 +virtual/libiconv abi_x86_32 +virtual/libintl abi_x86_32 +virtual/libudev abi_x86_32 +virtual/libusb abi_x86_32 +virtual/opengl abi_x86_32 +virtual/rust abi_x86_32 +x11-libs/cairo abi_x86_32 +x11-libs/extest abi_x86_32 +x11-libs/gdk-pixbuf abi_x86_32 +x11-libs/gtk+ abi_x86_32 +x11-libs/gtk+ abi_x86_32 +x11-libs/libdrm abi_x86_32 +x11-libs/libICE abi_x86_32 +x11-libs/libpciaccess abi_x86_32 +x11-libs/libSM abi_x86_32 +x11-libs/libvdpau abi_x86_32 +x11-libs/libX11 abi_x86_32 +x11-libs/libXau abi_x86_32 +x11-libs/libxcb abi_x86_32 +x11-libs/libXcomposite abi_x86_32 +x11-libs/libXcursor abi_x86_32 +x11-libs/libXdamage abi_x86_32 +x11-libs/libXdmcp abi_x86_32 +x11-libs/libXext abi_x86_32 +x11-libs/libXfixes abi_x86_32 +x11-libs/libXft abi_x86_32 +x11-libs/libXi abi_x86_32 +x11-libs/libXinerama abi_x86_32 +x11-libs/libxkbcommon abi_x86_32 +x11-libs/libXrandr abi_x86_32 +x11-libs/libXrender abi_x86_32 +x11-libs/libXScrnSaver abi_x86_32 +x11-libs/libxshmfence abi_x86_32 +x11-libs/libXtst abi_x86_32 +x11-libs/libXxf86vm abi_x86_32 +x11-libs/pango abi_x86_32 +x11-libs/pixman abi_x86_32 +x11-libs/xcb-util-keysyms abi_x86_32 +x11-misc/colord abi_x86_32 +gui-libs/egl-gbm abi_x86_32 +gui-libs/egl-wayland abi_x86_32 +gui-libs/egl-x11 abi_x86_32 +x11-drivers/nvidia-drivers abi_x86_32 +games-util/game-device-udev-rules -acl abi_x86_32 +x11-drivers/nvidia-drivers abi_x86_32 +sys-libs/libcap abi_x86_32 +media-libs/glew abi_x86_32 +media-libs/imgui abi_x86_32 +media-libs/implot abi_x86_32 +games-util/mangohud abi_x86_32 +# required by games-util/mangohud-0.8.1::guru +# required by mangohud (argument) +>=dev-libs/spdlog-1.15.3 abi_x86_32 +# required by dev-libs/spdlog-1.15.3::gentoo +# required by games-util/mangohud-0.8.1::guru +# required by mangohud (argument) +>=dev-libs/libfmt-11.1.4 abi_x86_32 +# required by media-libs/glew-2.2.0-r1::gentoo[-egl-only] +# required by media-libs/imgui-1.89.9-r4::guru +# required by media-libs/implot-0.16-r2::guru +# required by games-util/mangohud-0.8.1::guru +# required by mangohud (argument) +>=x11-libs/libXmu-1.2.1 abi_x86_32 +# required by x11-libs/libXmu-1.2.1::gentoo +# required by media-libs/glew-2.2.0-r1::gentoo[-egl-only] +# required by media-libs/imgui-1.89.9-r4::guru +# required by media-libs/implot-0.16-r2::guru +# required by games-util/mangohud-0.8.1::guru +# required by mangohud (argument) +>=x11-libs/libXt-1.3.1-r1 abi_x86_32 +dev-lang/rust-bin clippy rust-analyzer rustfmt +net-print/cups zeroconf +net-print/cups-meta zeroconf +# required by net-print/cups-2.4.14::gentoo[zeroconf] +# required by net-print/libppd-2.1.1::gentoo +# required by net-print/cups-filters-2.0.1::gentoo +# required by net-print/cups-browsed-2.1.1-r1::gentoo +# required by net-print/cups-meta-1::gentoo[browsed] +# required by net-print/cups-meta (argument) +>=net-dns/avahi-0.9_rc2-r3 abi_x86_32 +# required by net-dns/avahi-0.9_rc2-r3::gentoo +# required by net-print/cups-2.4.14::gentoo[zeroconf] +# required by net-print/libppd-2.1.1::gentoo +# required by net-print/cups-filters-2.0.1::gentoo +# required by net-print/cups-browsed-2.1.1-r1::gentoo +# required by net-print/cups-meta-1::gentoo[browsed] +# required by net-print/cups-meta (argument) +>=dev-libs/libevent-2.1.12-r1 abi_x86_32 +app-text/dictd minimal +dev-libs/libnl utils +app-emulation/dxvk abi_x86_32 +dev-python/qtpy printsupport +net-misc/spice-gtk usbredir +net-dns/dnsmasq script +net-libs/gnutls tools pkcs11 +app-emulation/qemu QEMU_SOFTMMU_TARGETS: arm x86_64 sparc QEMU_USER_TARGETS: x86_64 +app-emulation/wine-staging pulseaudio +app-emulation/wine-proton pulseaudio +app-text/calibre unrar +dev-qt/qtgui jpeg +# required by dev-python/pyqt6-webengine-6.9.0::gentoo +# required by app-text/calibre-8.9.0::gentoo[python_single_target_python3_13] +# required by app-text/calibre (argument) +>=dev-python/pyqt6-6.9.1 quick webchannel diff --git a/gentoo/portage/package.use/picom b/gentoo/portage/package.use/picom deleted file mode 100644 index 9126ee4d..00000000 --- a/gentoo/portage/package.use/picom +++ /dev/null @@ -1 +0,0 @@ -x11-misc/picom doc drm dbus opengl pcre diff --git a/gentoo/portage/package.use/pyqt5 b/gentoo/portage/package.use/pyqt5 deleted file mode 100644 index 38a8a995..00000000 --- a/gentoo/portage/package.use/pyqt5 +++ /dev/null @@ -1 +0,0 @@ -dev-python/pyqt5 network debug declarative gui ssl widgets diff --git a/gentoo/portage/package.use/python b/gentoo/portage/package.use/python deleted file mode 100644 index 6ad45348..00000000 --- a/gentoo/portage/package.use/python +++ /dev/null @@ -1 +0,0 @@ -*/* PYTHON_TARGETS: python3_14 python3_13 diff --git a/gentoo/portage/package.use/qt5compat b/gentoo/portage/package.use/qt5compat deleted file mode 100644 index e4822386..00000000 --- a/gentoo/portage/package.use/qt5compat +++ /dev/null @@ -1 +0,0 @@ -dev-qt/qt5compat icu diff --git a/gentoo/portage/package.use/qtbase b/gentoo/portage/package.use/qtbase deleted file mode 100644 index 375d1e9f..00000000 --- a/gentoo/portage/package.use/qtbase +++ /dev/null @@ -1 +0,0 @@ -dev-qt/qtbase opengl diff --git a/gentoo/portage/package.use/qtdeclarative b/gentoo/portage/package.use/qtdeclarative deleted file mode 100644 index 9eaaf2cf..00000000 --- a/gentoo/portage/package.use/qtdeclarative +++ /dev/null @@ -1 +0,0 @@ -dev-qt/qtdeclarative opengl diff --git a/gentoo/portage/package.use/qttools b/gentoo/portage/package.use/qttools deleted file mode 100644 index 4a9c048c..00000000 --- a/gentoo/portage/package.use/qttools +++ /dev/null @@ -1 +0,0 @@ -dev-qt/qttools opengl diff --git a/gentoo/portage/package.use/st b/gentoo/portage/package.use/st deleted file mode 100644 index 5ffd729a..00000000 --- a/gentoo/portage/package.use/st +++ /dev/null @@ -1 +0,0 @@ -x11-terms/st savedconfig diff --git a/gentoo/portage/package.use/tealdeer b/gentoo/portage/package.use/tealdeer deleted file mode 100644 index 6c79c24c..00000000 --- a/gentoo/portage/package.use/tealdeer +++ /dev/null @@ -1 +0,0 @@ -app-misc/tealdeer diff --git a/gentoo/portage/package.use/ufw b/gentoo/portage/package.use/ufw deleted file mode 100644 index 70e04965..00000000 --- a/gentoo/portage/package.use/ufw +++ /dev/null @@ -1 +0,0 @@ -net-firewall/ufw ipv6 diff --git a/gentoo/portage/package.use/xorg b/gentoo/portage/package.use/xorg deleted file mode 100644 index e69de29b..00000000 diff --git a/gentoo/portage/package.use/zsh b/gentoo/portage/package.use/zsh deleted file mode 100644 index 118263ce..00000000 --- a/gentoo/portage/package.use/zsh +++ /dev/null @@ -1,99 +0,0 @@ -app-shells/zsh caps debug oc examples gdbm pcre -# required by www-client/ungoogled-chromium-bin-142.0.7444.162::pf4public -# required by www-client/ungoogled-chromium-bin (argument) ->=sys-libs/zlib-1.3.1-r1 minizip -# required by x11-misc/xdg-utils-1.2.1-r9::gentoo -# required by net-print/cups-2.4.14::gentoo[X] -# required by www-client/ungoogled-chromium-bin-142.0.7444.162::pf4public -# required by www-client/ungoogled-chromium-bin (argument) ->=app-text/xmlto-0.0.28-r11 text -# required by x11-misc/pcmanfm-1.3.2-r2::gentoo -# required by x11-misc/pcmanfm (argument) ->=x11-libs/libfm-1.3.2-r1 gtk -# required by gnome-base/gnome-keyring-48.0-r1::gentoo -# required by virtual/secret-service-0-r1::gentoo -# required by app-crypt/libsecret-0.21.7::gentoo -# required by app-crypt/gcr-4.4.0.1-r1::gentoo -# required by gnome-base/gvfs-1.56.1-r2::gentoo -# required by x11-libs/libfm-1.3.2-r1::gentoo[automount,-udisks] -# required by x11-misc/pcmanfm-1.3.2-r2::gentoo -# required by x11-misc/pcmanfm (argument) ->=app-crypt/gcr-3.41.2-r2:0 gtk -# required by gui-apps/gcolor3-2.4.0::guru -# required by gcolor3 (argument) ->=dev-libs/libportal-0.9.1 gtk -# required by media-gfx/gimp-2.10.38-r3::gentoo -# required by gimp (argument) ->=app-text/poppler-25.11.0 cairo -# required by media-gfx/gimp-2.10.38-r3::gentoo -# required by gimp (argument) ->=media-libs/gegl-0.4.58 cairo -# required by media-gfx/inkscape-1.4.2::gentoo[python_single_target_python3_13] -# required by inkscape (argument) ->=dev-python/pillow-11.3.0 webp tiff -# required by dev-python/pillow-11.3.0::gentoo[-test,tiff] -# required by media-gfx/inkscape-1.4.2::gentoo[python_single_target_python3_13] -# required by inkscape (argument) ->=media-libs/tiff-4.7.0-r1 jpeg -# required by xfce-base/xfce4-panel-4.20.5::gentoo[dbusmenu] -# required by xfce-extra/xfce4-screenshooter-1.11.2::gentoo -# required by xfce4-screenshooter (argument) ->=dev-libs/libdbusmenu-16.04.0-r4 gtk3 -# required by media-gfx/krita-5.2.13::gentoo[python_single_target_python3_13] -# required by krita (argument) ->=dev-python/pyqt5-5.15.11 widgets declarative gui -# required by dev-qt/qtwayland-6.9.3::gentoo -# required by kde-plasma/libplasma-6.4.5::gentoo -# required by kde-plasma/polkit-kde-agent-6.4.5::gentoo -# required by kde-frameworks/kauth-5.116.0::gentoo[policykit] -# required by kde-frameworks/kconfigwidgets-5.116.0::gentoo -# required by kde-frameworks/kiconthemes-5.116.0::gentoo -# required by kde-frameworks/kxmlgui-5.116.0::gentoo -# required by media-gfx/krita-5.2.13::gentoo -# required by media-gfx/krita (argument) ->=dev-qt/qtbase-6.9.3 libproxy wayland icu opengl -# required by kde-frameworks/kauth-6.18.0::gentoo[policykit] -# required by kde-frameworks/kio-6.18.0::gentoo -# required by kde-plasma/libplasma-6.4.5::gentoo -# required by kde-plasma/polkit-kde-agent-6.4.5::gentoo -# required by kde-frameworks/kauth-5.116.0::gentoo[policykit] -# required by kde-frameworks/kconfigwidgets-5.116.0::gentoo -# required by kde-frameworks/kiconthemes-5.116.0::gentoo -# required by kde-frameworks/kxmlgui-5.116.0::gentoo -# required by media-gfx/krita-5.2.13::gentoo -# required by media-gfx/krita (argument) ->=kde-frameworks/kwindowsystem-6.18.0 wayland -# required by kde-plasma/polkit-kde-agent-6.4.5::gentoo -# required by kde-frameworks/kauth-5.116.0::gentoo[policykit] -# required by kde-frameworks/kconfigwidgets-5.116.0::gentoo -# required by kde-frameworks/kiconthemes-5.116.0::gentoo -# required by kde-frameworks/kxmlgui-5.116.0::gentoo -# required by media-gfx/krita-5.2.13::gentoo -# required by media-gfx/krita (argument) ->=dev-qt/qt5compat-6.9.3 qml -# required by kde-plasma/libplasma-6.4.5::gentoo -# required by kde-plasma/polkit-kde-agent-6.4.5::gentoo -# required by kde-frameworks/kauth-5.116.0::gentoo[policykit] -# required by kde-frameworks/kconfigwidgets-5.116.0::gentoo -# required by kde-frameworks/kiconthemes-5.116.0::gentoo -# required by kde-frameworks/kxmlgui-5.116.0::gentoo -# required by media-gfx/krita-5.2.13::gentoo -# required by media-gfx/krita (argument) ->=kde-frameworks/kconfig-6.18.0 qml -# required by kde-frameworks/kauth-5.116.0::gentoo[policykit] -# required by kde-frameworks/kconfigwidgets-5.116.0::gentoo -# required by kde-frameworks/kiconthemes-5.116.0::gentoo -# required by kde-frameworks/kxmlgui-5.116.0::gentoo -# required by media-gfx/krita-5.2.13::gentoo -# required by media-gfx/krita (argument) ->=sys-auth/polkit-qt-0.200.0 qt5 -# required by kde-frameworks/kcoreaddons-5.116.0::gentoo -# required by kde-frameworks/kcrash-5.116.0::gentoo -# required by kde-frameworks/kglobalaccel-5.116.0-r2::gentoo -# required by kde-frameworks/kxmlgui-5.116.0::gentoo -# required by media-gfx/krita-5.2.13::gentoo -# required by media-gfx/krita (argument) ->=dev-qt/qtcore-5.15.18 icu -# required by app-office/onlyoffice-bin-9.0.4::gentoo -# required by onlyoffice-bin (argument) ->=dev-qt/qtgui-5.15.18 eglfs diff --git a/gentoo/portage/postsync.d/50-eix-postsync b/gentoo/portage/postsync.d/50-eix-postsync new file mode 120000 index 00000000..965aca0b --- /dev/null +++ b/gentoo/portage/postsync.d/50-eix-postsync @@ -0,0 +1 @@ +../../../usr/bin/eix-postsync \ No newline at end of file diff --git a/gentoo/portage/profile/systemd b/gentoo/portage/profile/systemd new file mode 100644 index 00000000..24ad079b --- /dev/null +++ b/gentoo/portage/profile/systemd @@ -0,0 +1 @@ +systemd diff --git a/gentoo/portage/repos.conf/eselect-repo.conf b/gentoo/portage/repos.conf/eselect-repo.conf index 63a98a4d..cc2b1463 100644 --- a/gentoo/portage/repos.conf/eselect-repo.conf +++ b/gentoo/portage/repos.conf/eselect-repo.conf @@ -1,6 +1,22 @@ # created by eselect-repo +[guru] +location = /var/db/repos/guru +sync-type = git +sync-uri = https://github.com/gentoo-mirror/guru.git + +[librewolf] +location = /var/db/repos/librewolf +sync-type = git +sync-uri = https://codeberg.org/librewolf/gentoo.git + [pf4public] location = /var/db/repos/pf4public sync-type = git sync-uri = https://github.com/PF4Public/gentoo-overlay.git + + +[steam-overlay] +location = /var/db/repos/steam-overlay +sync-type = git +sync-uri = https://github.com/anyc/steam-overlay.git diff --git a/gentoo/portage/repos.conf/eselect-repo.conf~ b/gentoo/portage/repos.conf/eselect-repo.conf~ new file mode 100644 index 00000000..c164753c --- /dev/null +++ b/gentoo/portage/repos.conf/eselect-repo.conf~ @@ -0,0 +1,21 @@ +# created by eselect-repo + +[guru] +location = /var/db/repos/guru +sync-type = git +sync-uri = https://github.com/gentoo-mirror/guru.git + +[librewolf] +location = /var/db/repos/librewolf +sync-type = git +sync-uri = https://codeberg.org/librewolf/gentoo.git + +[pf4public] +location = /var/db/repos/pf4public +sync-type = git +sync-uri = https://github.com/PF4Public/gentoo-overlay.git + +[zugaina] +location = /var/db/repos/zugaina +sync-type = rsync +sync-uri = rsync://gentoo.zugaina.org/zugaina-portage diff --git a/gentoo/portage/repos.conf/guru.conf b/gentoo/portage/repos.conf/guru.conf deleted file mode 100644 index 90fd5894..00000000 --- a/gentoo/portage/repos.conf/guru.conf +++ /dev/null @@ -1,4 +0,0 @@ -[guru] -location = /var/db/repos/guru -sync-type = git -sync-uri = https://github.com/gentoo-mirror/guru.git diff --git a/gentoo/portage/repos.conf/librewolf.conf b/gentoo/portage/repos.conf/librewolf.conf deleted file mode 100644 index b402078f..00000000 --- a/gentoo/portage/repos.conf/librewolf.conf +++ /dev/null @@ -1,6 +0,0 @@ -[librewolf] -priority = 50 -location = /var/db/repos/librewolf -sync-type = git -sync-uri = https://codeberg.org/librewolf/gentoo.git -auto-sync = Yes diff --git a/gentoo/portage/savedconfig/sys-firmware/ipxe-1.21.1_p20230601-r1 b/gentoo/portage/savedconfig/sys-firmware/ipxe-1.21.1_p20230601-r1 new file mode 100644 index 00000000..a1655023 --- /dev/null +++ b/gentoo/portage/savedconfig/sys-firmware/ipxe-1.21.1_p20230601-r1 @@ -0,0 +1,5 @@ +#undef BANNER_TIMEOUT +#define BANNER_TIMEOUT 0 +#define NET_PROTO_IPV6 +#define VMWARE_SETTINGS +#define CONSOLE_VMWARE diff --git a/gentoo/portage/savedconfig/sys-kernel/linux-firmware-20250808 b/gentoo/portage/savedconfig/sys-kernel/linux-firmware-20250808 index 01cf4914..f0a98fe3 100644 --- a/gentoo/portage/savedconfig/sys-kernel/linux-firmware-20250808 +++ b/gentoo/portage/savedconfig/sys-kernel/linux-firmware-20250808 @@ -86,751 +86,751 @@ a300_pfp.fw a300_pm4.fw acenic/tg1.bin acenic/tg2.bin -adaptec/starfire_rx.bin adaptec/starfire_tx.bin -advansys/38C0800.bin -advansys/38C1600.bin +adaptec/starfire_rx.bin advansys/3550.bin +advansys/38C1600.bin +advansys/38C0800.bin advansys/mcode.bin aeonsemi/as21x1x_fw.bin agere_ap_fw.bin agere_sta_fw.bin -airoha/en7581_npu_data.bin airoha/en7581_npu_rv32.bin airoha/EthMD32.dm.bin +airoha/en7581_npu_data.bin airoha/EthMD32.DSP.bin -amd/amd_sev_fam19h_modelaxh.sbin -amd/amd_sev_fam17h_model0xh.sbin -amd/amd_sev_fam19h_model0xh.sbin -amd/amd_sev_fam1ah_model0xh.sbin amd/amd_sev_fam17h_model3xh.sbin +amd/amd_sev_fam19h_model0xh.sbin +amd/amd_sev_fam17h_model0xh.sbin amd/amd_sev_fam19h_model1xh.sbin -amd-ucode/microcode_amd_fam16h.bin +amd/amd_sev_fam19h_modelaxh.sbin +amd/amd_sev_fam1ah_model0xh.sbin +amd-ucode/microcode_amd_fam1ah.bin amd-ucode/README amd-ucode/microcode_amd_fam15h.bin -amd-ucode/microcode_amd.bin +amd-ucode/microcode_amd_fam16h.bin amd-ucode/microcode_amd_fam17h.bin +amd-ucode/microcode_amd.bin amd-ucode/microcode_amd_fam19h.bin -amd-ucode/microcode_amd_fam1ah.bin -amdgpu/polaris10_ce_2.bin -amdgpu/fiji_uvd.bin -amdgpu/vega10_uvd.bin -amdgpu/yellow_carp_rlc.bin -amdgpu/vega10_sos.bin -amdgpu/vpe_6_1_3.bin -amdgpu/raven_ce.bin -amdgpu/vega20_mec2.bin -amdgpu/kabini_sdma1.bin -amdgpu/kaveri_mec.bin -amdgpu/arcturus_ta.bin -amdgpu/bonaire_pfp.bin -amdgpu/polaris10_ce.bin -amdgpu/gc_11_0_1_mes1.bin -amdgpu/navi12_gpu_info.bin -amdgpu/cyan_skillfish2_pfp.bin -amdgpu/smu_13_0_7.bin -amdgpu/picasso_ce.bin -amdgpu/tonga_mc.bin -amdgpu/psp_14_0_3_sos.bin -amdgpu/renoir_vcn.bin -amdgpu/gc_11_0_0_me.bin -amdgpu/vega20_asd.bin -amdgpu/bonaire_me.bin -amdgpu/vega10_pfp.bin -amdgpu/vangogh_vcn.bin -amdgpu/arcturus_asd.bin -amdgpu/polaris11_smc.bin -amdgpu/tahiti_mc.bin -amdgpu/polaris11_sdma.bin -amdgpu/vega12_sdma1.bin -amdgpu/vegam_sdma.bin -amdgpu/navi10_pfp.bin -amdgpu/dcn_3_2_0_dmcub.bin -amdgpu/carrizo_pfp.bin -amdgpu/polaris11_rlc.bin -amdgpu/aldebaran_sdma.bin -amdgpu/polaris11_k_mc.bin -amdgpu/raven2_vcn.bin -amdgpu/kabini_rlc.bin -amdgpu/green_sardine_sdma.bin -amdgpu/hawaii_uvd.bin -amdgpu/vega20_pfp.bin -amdgpu/vega12_rlc.bin -amdgpu/stoney_rlc.bin -amdgpu/verde_mc.bin -amdgpu/kabini_pfp.bin -amdgpu/navy_flounder_ce.bin -amdgpu/psp_13_0_14_sos.bin -amdgpu/gc_11_0_1_rlc.bin -amdgpu/topaz_smc.bin -amdgpu/topaz_mec2.bin -amdgpu/hainan_rlc.bin -amdgpu/gc_10_3_7_me.bin -amdgpu/gc_9_5_0_sjt_mec.bin -amdgpu/mullins_vce.bin -amdgpu/navi14_sdma1.bin -amdgpu/fiji_rlc.bin -amdgpu/vangogh_pfp.bin -amdgpu/renoir_rlc.bin -amdgpu/renoir_ce.bin -amdgpu/navi14_gpu_info.bin -amdgpu/picasso_mec.bin -amdgpu/aldebaran_ta.bin -amdgpu/tonga_mec2.bin -amdgpu/gc_12_0_0_pfp.bin -amdgpu/navi14_me.bin -amdgpu/gc_9_4_4_sjt_mec.bin -amdgpu/bonaire_uvd.bin -amdgpu/yellow_carp_toc.bin -amdgpu/navi14_sdma.bin -amdgpu/yellow_carp_vcn.bin -amdgpu/gc_11_5_3_imu.bin -amdgpu/gc_11_0_0_mes1.bin -amdgpu/banks_k_2_smc.bin -amdgpu/aldebaran_sos.bin -amdgpu/tonga_k_smc.bin -amdgpu/polaris10_sdma.bin -amdgpu/polaris12_rlc.bin -amdgpu/arcturus_ip_discovery.bin -amdgpu/yellow_carp_ta.bin -amdgpu/fiji_mc.bin -amdgpu/gc_10_3_7_mec2.bin -amdgpu/gc_11_0_4_mec.bin -amdgpu/navi10_gpu_info.bin -amdgpu/navi12_rlc.bin -amdgpu/polaris11_mec2_2.bin -amdgpu/topaz_rlc.bin -amdgpu/navi12_me.bin -amdgpu/gc_12_0_1_me.bin -amdgpu/cyan_skillfish2_sdma1.bin -amdgpu/renoir_pfp.bin -amdgpu/tonga_sdma.bin -amdgpu/gc_11_0_0_rlc.bin -amdgpu/aldebaran_mec.bin -amdgpu/navi12_asd.bin -amdgpu/vega20_mec.bin -amdgpu/beige_goby_dmcub.bin -amdgpu/gc_11_5_1_me.bin -amdgpu/aldebaran_ip_discovery.bin -amdgpu/hawaii_sdma1.bin -amdgpu/psp_13_0_12_ta.bin -amdgpu/vega10_rlc.bin -amdgpu/navi10_sdma.bin -amdgpu/sienna_cichlid_vcn.bin -amdgpu/verde_me.bin -amdgpu/polaris11_ce_2.bin -amdgpu/vega10_acg_smc.bin -amdgpu/gc_9_5_0_mec.bin -amdgpu/navy_flounder_smc.bin -amdgpu/dcn_3_1_4_dmcub.bin -amdgpu/yellow_carp_me.bin -amdgpu/polaris12_mec2.bin -amdgpu/vega12_sos.bin -amdgpu/beige_goby_pfp.bin -amdgpu/fiji_me.bin -amdgpu/gc_10_3_6_me.bin -amdgpu/sdma_5_2_6.bin -amdgpu/dcn_3_5_1_dmcub.bin -amdgpu/raven_pfp.bin -amdgpu/renoir_mec2.bin -amdgpu/umsch_mm_4_0_0.bin -amdgpu/kaveri_vce.bin -amdgpu/pitcairn_uvd.bin -amdgpu/picasso_gpu_info.bin -amdgpu/navi10_smc.bin -amdgpu/gc_11_5_3_rlc.bin -amdgpu/oland_ce.bin -amdgpu/kabini_uvd.bin -amdgpu/sdma_6_0_0.bin -amdgpu/green_sardine_ta.bin -amdgpu/sdma_4_4_2.bin -amdgpu/vega20_ce.bin -amdgpu/navi14_sos.bin -amdgpu/vangogh_mec.bin -amdgpu/psp_14_0_5_ta.bin -amdgpu/polaris12_pfp_2.bin -amdgpu/gc_11_0_1_mes_2.bin -amdgpu/vcn_4_0_6.bin -amdgpu/psp_13_0_0_ta_kicker.bin -amdgpu/raven2_ce.bin -amdgpu/vegam_mec2.bin -amdgpu/gc_10_3_6_rlc.bin -amdgpu/fiji_mec.bin -amdgpu/raven_mec.bin -amdgpu/gc_11_5_0_imu.bin -amdgpu/smu_13_0_6.bin -amdgpu/gc_11_5_1_mes_2.bin -amdgpu/vcn_4_0_4.bin -amdgpu/gc_9_4_3_sjt_mec.bin -amdgpu/navi10_ce.bin -amdgpu/gc_11_5_1_pfp.bin -amdgpu/vega10_asd.bin -amdgpu/dimgrey_cavefish_rlc.bin -amdgpu/gc_11_5_3_mes1.bin -amdgpu/polaris12_sdma.bin -amdgpu/vega12_sdma.bin -amdgpu/gc_11_0_0_imu.bin -amdgpu/tahiti_smc.bin -amdgpu/vegam_smc.bin -amdgpu/raven_kicker_rlc.bin -amdgpu/yellow_carp_mec2.bin -amdgpu/sdma_4_4_5.bin -amdgpu/navi14_mec2.bin -amdgpu/hawaii_rlc.bin -amdgpu/arcturus_sdma.bin -amdgpu/navi10_ta.bin -amdgpu/tonga_mec.bin -amdgpu/tahiti_pfp.bin -amdgpu/sdma_6_0_3.bin -amdgpu/gc_11_0_0_rlc_1.bin -amdgpu/gc_12_0_1_mes.bin -amdgpu/vcn_4_0_0.bin -amdgpu/gc_12_0_0_rlc.bin -amdgpu/sienna_cichlid_ta.bin -amdgpu/hawaii_pfp.bin -amdgpu/bonaire_ce.bin -amdgpu/polaris12_ce.bin -amdgpu/gc_12_0_1_pfp.bin -amdgpu/raven2_mec2.bin -amdgpu/vega10_ip_discovery.bin -amdgpu/vega12_ce.bin -amdgpu/sdma_6_1_2.bin -amdgpu/navi14_asd.bin -amdgpu/vega10_sdma.bin -amdgpu/gc_9_4_4_rlc.bin -amdgpu/navi12_vcn.bin -amdgpu/verde_k_smc.bin -amdgpu/navi14_mec_wks.bin -amdgpu/cyan_skillfish2_me.bin -amdgpu/gc_12_0_1_uni_mes.bin -amdgpu/polaris11_k_smc.bin -amdgpu/polaris10_pfp.bin -amdgpu/vegam_ce.bin -amdgpu/polaris10_uvd.bin -amdgpu/gc_10_3_7_rlc.bin -amdgpu/vpe_6_1_0.bin -amdgpu/oland_smc.bin -amdgpu/tonga_pfp.bin -amdgpu/arcturus_rlc.bin -amdgpu/navi12_dmcu.bin -amdgpu/pitcairn_pfp.bin -amdgpu/navy_flounder_rlc.bin -amdgpu/raven_gpu_info.bin -amdgpu/bonaire_vce.bin -amdgpu/oland_k_smc.bin -amdgpu/kaveri_pfp.bin -amdgpu/kaveri_mec2.bin -amdgpu/mullins_pfp.bin -amdgpu/psp_13_0_12_sos.bin -amdgpu/vangogh_me.bin -amdgpu/gc_12_0_0_mes.bin -amdgpu/gc_11_5_1_imu.bin -amdgpu/navi14_mec.bin -amdgpu/gc_12_0_0_toc.bin -amdgpu/vangogh_asd.bin -amdgpu/vega20_sos.bin -amdgpu/verde_rlc.bin -amdgpu/stoney_pfp.bin -amdgpu/navi12_smc.bin -amdgpu/hawaii_k_smc.bin -amdgpu/tahiti_me.bin -amdgpu/polaris12_me_2.bin -amdgpu/arcturus_vcn.bin -amdgpu/sdma_4_4_4.bin -amdgpu/tahiti_uvd.bin -amdgpu/navi10_mec2.bin -amdgpu/sdma_7_0_1.bin -amdgpu/renoir_ta.bin -amdgpu/navi10_me.bin -amdgpu/vangogh_ce.bin -amdgpu/sdma_6_0_2.bin -amdgpu/aldebaran_sjt_mec.bin -amdgpu/gc_11_5_0_rlc.bin -amdgpu/sdma_6_1_3.bin -amdgpu/topaz_me.bin -amdgpu/gc_9_4_3_mec.bin -amdgpu/cyan_skillfish2_sdma.bin -amdgpu/vcn_4_0_3.bin -amdgpu/psp_13_0_0_sos_kicker.bin -amdgpu/gc_11_0_0_imu_kicker.bin -amdgpu/mullins_sdma.bin -amdgpu/gc_12_0_1_imu.bin -amdgpu/yellow_carp_dmcub.bin -amdgpu/beige_goby_ta.bin -amdgpu/gc_11_0_1_me.bin -amdgpu/vegam_me.bin -amdgpu/dimgrey_cavefish_dmcub.bin -amdgpu/psp_14_0_0_ta.bin -amdgpu/pitcairn_mc.bin -amdgpu/gc_11_0_1_pfp.bin -amdgpu/tonga_rlc.bin -amdgpu/gc_11_0_3_mes_2.bin -amdgpu/hawaii_mec.bin -amdgpu/carrizo_mec2.bin -amdgpu/navi10_mec.bin -amdgpu/picasso_rlc_am4.bin -amdgpu/polaris10_k2_smc.bin -amdgpu/gc_12_0_1_mec.bin -amdgpu/smu_14_0_3.bin -amdgpu/gc_11_5_3_mes_2.bin -amdgpu/polaris12_mec2_2.bin -amdgpu/tonga_sdma1.bin -amdgpu/kaveri_uvd.bin -amdgpu/polaris11_uvd.bin -amdgpu/kaveri_sdma.bin -amdgpu/vpe_6_1_1.bin -amdgpu/gc_11_0_0_pfp.bin -amdgpu/navi10_sdma1.bin -amdgpu/polaris12_32_mc.bin -amdgpu/vega10_ce.bin -amdgpu/hawaii_smc.bin -amdgpu/vega20_rlc.bin -amdgpu/bonaire_sdma1.bin -amdgpu/gc_12_0_0_me.bin -amdgpu/fiji_sdma.bin -amdgpu/topaz_mc.bin -amdgpu/vegam_pfp.bin -amdgpu/green_sardine_rlc.bin -amdgpu/polaris10_mec2_2.bin -amdgpu/picasso_asd.bin -amdgpu/verde_smc.bin -amdgpu/topaz_sdma1.bin -amdgpu/polaris11_mec_2.bin -amdgpu/psp_14_0_5_toc.bin -amdgpu/polaris12_sdma1.bin -amdgpu/tonga_smc.bin -amdgpu/vcn_3_1_2.bin -amdgpu/navy_flounder_ta.bin -amdgpu/vega12_gpu_info.bin -amdgpu/renoir_mec.bin -amdgpu/navy_flounder_sos.bin -amdgpu/navi14_me_wks.bin -amdgpu/picasso_me.bin -amdgpu/dimgrey_cavefish_pfp.bin -amdgpu/gc_11_5_2_rlc.bin -amdgpu/vega12_pfp.bin -amdgpu/aldebaran_rlc.bin -amdgpu/polaris11_ce.bin -amdgpu/gc_11_0_0_mes_2.bin -amdgpu/gc_10_3_7_mec.bin -amdgpu/sienna_cichlid_me.bin -amdgpu/mullins_sdma1.bin -amdgpu/raven2_ta.bin -amdgpu/gc_11_5_0_me.bin -amdgpu/gc_11_5_2_mec.bin -amdgpu/vega20_me.bin -amdgpu/cyan_skillfish2_ce.bin -amdgpu/dimgrey_cavefish_sdma.bin -amdgpu/raven2_asd.bin -amdgpu/hainan_ce.bin -amdgpu/green_sardine_dmcub.bin -amdgpu/psp_13_0_6_sos.bin -amdgpu/dimgrey_cavefish_ta.bin -amdgpu/gc_12_0_0_mes1.bin -amdgpu/psp_14_0_0_toc.bin -amdgpu/dimgrey_cavefish_sos.bin -amdgpu/gc_10_3_7_pfp.bin -amdgpu/vega20_uvd.bin -amdgpu/mullins_me.bin -amdgpu/hainan_mc.bin -amdgpu/gc_12_0_0_mec.bin -amdgpu/polaris12_ce_2.bin -amdgpu/bonaire_mec.bin -amdgpu/polaris10_me.bin -amdgpu/gc_11_0_3_imu.bin -amdgpu/green_sardine_me.bin -amdgpu/hainan_pfp.bin -amdgpu/vangogh_toc.bin -amdgpu/psp_13_0_5_ta.bin -amdgpu/vcn_4_0_5.bin -amdgpu/psp_13_0_8_toc.bin -amdgpu/topaz_sdma.bin -amdgpu/psp_13_0_8_ta.bin -amdgpu/vcn_4_0_2.bin -amdgpu/vega20_vce.bin -amdgpu/raven_sdma.bin -amdgpu/gc_9_4_3_rlc.bin -amdgpu/polaris10_vce.bin -amdgpu/smu_13_0_10.bin -amdgpu/gc_10_3_6_mec.bin -amdgpu/gc_11_0_2_rlc.bin -amdgpu/polaris12_k_mc.bin -amdgpu/gc_11_0_2_mes1.bin -amdgpu/navi12_ta.bin -amdgpu/green_sardine_asd.bin -amdgpu/dimgrey_cavefish_vcn.bin -amdgpu/vega20_ta.bin -amdgpu/psp_14_0_1_toc.bin -amdgpu/gc_11_0_4_mes1.bin -amdgpu/mullins_mec.bin -amdgpu/psp_13_0_6_ta.bin -amdgpu/dcn_3_1_5_dmcub.bin -amdgpu/kaveri_rlc.bin -amdgpu/hawaii_mc.bin -amdgpu/dcn_3_6_dmcub.bin -amdgpu/polaris12_vce.bin -amdgpu/raven_me.bin -amdgpu/navy_flounder_sdma.bin -amdgpu/navi12_mec.bin -amdgpu/polaris12_mc.bin -amdgpu/oland_rlc.bin -amdgpu/pitcairn_smc.bin -amdgpu/raven2_rlc.bin -amdgpu/dcn_3_1_6_dmcub.bin -amdgpu/vcn_5_0_0.bin -amdgpu/vangogh_rlc.bin -amdgpu/fiji_mec2.bin -amdgpu/gc_11_0_0_mec.bin -amdgpu/kaveri_me.bin -amdgpu/green_sardine_pfp.bin -amdgpu/polaris11_me_2.bin -amdgpu/gc_11_0_3_mec.bin -amdgpu/raven2_pfp.bin -amdgpu/pitcairn_ce.bin -amdgpu/polaris12_pfp.bin -amdgpu/gc_10_3_6_pfp.bin -amdgpu/tonga_ce.bin -amdgpu/gc_11_0_1_mes.bin -amdgpu/navi12_pfp.bin -amdgpu/psp_13_0_10_sos.bin -amdgpu/vega12_uvd.bin -amdgpu/bonaire_rlc.bin -amdgpu/hainan_me.bin -amdgpu/vega20_smc.bin -amdgpu/gc_12_0_1_rlc.bin -amdgpu/beige_goby_sdma.bin -amdgpu/hawaii_ce.bin -amdgpu/dimgrey_cavefish_ce.bin -amdgpu/psp_14_0_2_ta.bin -amdgpu/polaris12_mec_2.bin -amdgpu/psp_14_0_3_ta.bin -amdgpu/raven_rlc.bin -amdgpu/yellow_carp_asd.bin -amdgpu/aldebaran_vcn.bin -amdgpu/navi14_smc.bin -amdgpu/kabini_mec.bin -amdgpu/tonga_me.bin -amdgpu/smu_13_0_14.bin -amdgpu/bonaire_mc.bin -amdgpu/polaris11_mec2.bin -amdgpu/vegam_vce.bin -amdgpu/sienna_cichlid_sos.bin -amdgpu/green_sardine_mec.bin -amdgpu/sienna_cichlid_mec.bin -amdgpu/gc_11_5_1_mec.bin -amdgpu/polaris10_sdma1.bin -amdgpu/gc_11_0_2_me.bin -amdgpu/gc_11_0_4_rlc.bin -amdgpu/navi12_ce.bin -amdgpu/vegam_rlc.bin -amdgpu/psp_13_0_11_ta.bin -amdgpu/polaris10_me_2.bin -amdgpu/vega20_ip_discovery.bin -amdgpu/vega10_vce.bin -amdgpu/gc_11_0_1_mec.bin -amdgpu/psp_13_0_14_ta.bin -amdgpu/pitcairn_k_smc.bin -amdgpu/navy_flounder_pfp.bin -amdgpu/beige_goby_vcn.bin -amdgpu/psp_13_0_7_sos.bin -amdgpu/beige_goby_me.bin -amdgpu/aldebaran_smc.bin -amdgpu/gc_11_0_2_mec.bin -amdgpu/raven2_me.bin -amdgpu/stoney_ce.bin -amdgpu/polaris12_uvd.bin -amdgpu/gc_12_0_0_uni_mes.bin -amdgpu/psp_13_0_5_toc.bin -amdgpu/bonaire_sdma.bin -amdgpu/raven_mec2.bin -amdgpu/carrizo_vce.bin -amdgpu/psp_13_0_0_sos.bin -amdgpu/picasso_mec2.bin -amdgpu/navy_flounder_mec.bin -amdgpu/mullins_uvd.bin -amdgpu/bonaire_k_smc.bin -amdgpu/gc_12_0_1_toc.bin -amdgpu/oland_pfp.bin -amdgpu/aldebaran_sjt_mec2.bin -amdgpu/polaris11_sdma1.bin -amdgpu/vega10_gpu_info.bin -amdgpu/tahiti_rlc.bin -amdgpu/fiji_smc.bin -amdgpu/vangogh_mec2.bin -amdgpu/renoir_asd.bin -amdgpu/gc_11_0_1_imu.bin -amdgpu/gc_11_0_3_rlc.bin -amdgpu/psp_14_0_4_ta.bin -amdgpu/navi14_pfp.bin -amdgpu/topaz_ce.bin -amdgpu/sienna_cichlid_pfp.bin -amdgpu/sienna_cichlid_dmcub.bin -amdgpu/hainan_k_smc.bin -amdgpu/dcn_4_0_1_dmcub.bin -amdgpu/gc_11_0_0_rlc_kicker.bin -amdgpu/hawaii_me.bin -amdgpu/navi14_ce.bin -amdgpu/kabini_ce.bin -amdgpu/navi12_sos.bin -amdgpu/navi14_mec2_wks.bin -amdgpu/gc_11_5_2_me.bin -amdgpu/kaveri_ce.bin -amdgpu/beige_goby_mec.bin -amdgpu/sienna_cichlid_smc.bin -amdgpu/gc_11_0_3_mes1.bin -amdgpu/carrizo_uvd.bin -amdgpu/vega12_me.bin -amdgpu/gc_11_5_1_rlc.bin -amdgpu/polaris12_me.bin -amdgpu/dcn_3_2_1_dmcub.bin -amdgpu/mullins_rlc.bin -amdgpu/dimgrey_cavefish_mec2.bin -amdgpu/raven_dmcu.bin -amdgpu/oland_me.bin -amdgpu/fiji_ce.bin -amdgpu/sdma_6_0_1.bin -amdgpu/stoney_sdma.bin -amdgpu/pitcairn_me.bin -amdgpu/carrizo_rlc.bin -amdgpu/navi14_ta.bin -amdgpu/smu_13_0_0_kicker.bin -amdgpu/dimgrey_cavefish_mec.bin -amdgpu/raven2_gpu_info.bin -amdgpu/oland_mc.bin -amdgpu/gc_11_0_4_pfp.bin -amdgpu/polaris11_pfp_2.bin -amdgpu/raven_asd.bin -amdgpu/psp_13_0_7_ta.bin -amdgpu/polaris10_pfp_2.bin -amdgpu/gc_11_5_3_pfp.bin -amdgpu/beige_goby_smc.bin -amdgpu/si58_mc.bin -amdgpu/gc_11_0_2_mes.bin -amdgpu/gc_11_0_4_mes_2.bin -amdgpu/polaris10_k_mc.bin -amdgpu/picasso_rlc.bin -amdgpu/polaris10_mec2.bin -amdgpu/vega12_vce.bin -amdgpu/psp_13_0_4_toc.bin -amdgpu/smu_14_0_2.bin -amdgpu/raven_ta.bin -amdgpu/polaris10_mc.bin -amdgpu/arcturus_smc.bin -amdgpu/vega10_me.bin -amdgpu/gc_10_3_6_ce.bin -amdgpu/gc_11_5_2_mes_2.bin -amdgpu/verde_ce.bin -amdgpu/psp_13_0_4_ta.bin -amdgpu/bonaire_smc.bin -amdgpu/yellow_carp_ce.bin -amdgpu/renoir_sdma.bin -amdgpu/gc_11_0_0_mes.bin -amdgpu/polaris12_smc.bin -amdgpu/polaris10_smc.bin -amdgpu/topaz_k_smc.bin -amdgpu/beige_goby_mec2.bin -amdgpu/hainan_smc.bin -amdgpu/cyan_skillfish2_mec.bin -amdgpu/gc_11_5_0_mes_2.bin -amdgpu/carrizo_mec.bin -amdgpu/raven2_mec.bin -amdgpu/sienna_cichlid_ce.bin -amdgpu/yellow_carp_pfp.bin -amdgpu/gc_11_0_2_imu.bin -amdgpu/navi12_sdma1.bin -amdgpu/arcturus_mec2.bin -amdgpu/raven_vcn.bin amdgpu/gc_9_5_0_rlc.bin -amdgpu/beige_goby_ce.bin -amdgpu/navi10_vcn.bin -amdgpu/stoney_uvd.bin -amdgpu/yellow_carp_mec.bin -amdgpu/navi10_rlc.bin -amdgpu/yellow_carp_sdma.bin -amdgpu/psp_13_0_0_ta.bin -amdgpu/carrizo_ce.bin -amdgpu/gc_11_5_3_me.bin -amdgpu/stoney_mec.bin -amdgpu/gc_11_5_2_imu.bin -amdgpu/vcn_4_0_6_1.bin -amdgpu/tahiti_ce.bin -amdgpu/tahiti_k_smc.bin -amdgpu/gc_11_0_4_imu.bin -amdgpu/polaris11_pfp.bin -amdgpu/pitcairn_rlc.bin -amdgpu/gc_11_0_3_pfp.bin +amdgpu/navi10_asd.bin +amdgpu/navi10_mec2.bin amdgpu/oland_uvd.bin -amdgpu/gc_11_5_2_mes1.bin -amdgpu/green_sardine_mec2.bin -amdgpu/navi14_rlc.bin -amdgpu/hawaii_sdma.bin -amdgpu/gc_12_0_1_mes1.bin -amdgpu/gc_11_5_2_pfp.bin -amdgpu/cyan_skillfish2_mec2.bin -amdgpu/dimgrey_cavefish_me.bin -amdgpu/sdma_7_0_0.bin -amdgpu/polaris11_mec.bin -amdgpu/raven2_sdma.bin -amdgpu/navy_flounder_dmcub.bin -amdgpu/navi12_mec2.bin -amdgpu/psp_13_0_8_asd.bin -amdgpu/picasso_ip_discovery.bin -amdgpu/dimgrey_cavefish_smc.bin -amdgpu/kaveri_sdma1.bin -amdgpu/vegam_mec.bin -amdgpu/psp_14_0_2_sos.bin -amdgpu/renoir_dmcub.bin -amdgpu/picasso_pfp.bin -amdgpu/arcturus_sos.bin -amdgpu/sienna_cichlid_mec2.bin -amdgpu/psp_13_0_11_toc.bin -amdgpu/isp_4_1_1.bin -amdgpu/polaris11_k2_smc.bin -amdgpu/vega12_ip_discovery.bin -amdgpu/carrizo_sdma1.bin -amdgpu/vega10_smc.bin -amdgpu/polaris10_mec.bin -amdgpu/gc_11_5_0_pfp.bin -amdgpu/topaz_pfp.bin -amdgpu/kabini_vce.bin -amdgpu/fiji_pfp.bin -amdgpu/kabini_me.bin -amdgpu/gc_11_5_3_mec.bin -amdgpu/vegam_uvd.bin -amdgpu/arcturus_gpu_info.bin -amdgpu/psp_14_0_4_toc.bin -amdgpu/dcn_3_5_dmcub.bin -amdgpu/vega10_mec.bin -amdgpu/psp_13_0_5_asd.bin -amdgpu/picasso_sdma.bin -amdgpu/polaris10_rlc.bin -amdgpu/gc_11_0_2_mes_2.bin -amdgpu/gc_11_0_4_mes.bin -amdgpu/vegam_sdma1.bin -amdgpu/gc_10_3_6_mec2.bin -amdgpu/polaris10_k_smc.bin -amdgpu/polaris11_vce.bin -amdgpu/vega12_mec.bin -amdgpu/renoir_gpu_info.bin -amdgpu/polaris12_mec.bin -amdgpu/sdma_6_1_0.bin +amdgpu/hawaii_ce.bin +amdgpu/polaris10_smc_sk.bin +amdgpu/vegam_ce.bin +amdgpu/gc_11_0_0_mes.bin +amdgpu/polaris11_k_smc.bin +amdgpu/navi10_mec.bin +amdgpu/polaris12_rlc.bin +amdgpu/psp_13_0_14_ta.bin +amdgpu/polaris10_mec2_2.bin +amdgpu/vega20_mec2.bin +amdgpu/oland_rlc.bin +amdgpu/vega20_ce.bin +amdgpu/navi10_vcn.bin amdgpu/psp_13_0_10_ta.bin +amdgpu/gc_11_0_4_mes.bin +amdgpu/gc_11_0_4_mes_2.bin +amdgpu/vega12_sos.bin +amdgpu/navi12_smc.bin +amdgpu/yellow_carp_pfp.bin +amdgpu/fiji_mec2.bin +amdgpu/smu_13_0_6.bin +amdgpu/sienna_cichlid_ce.bin +amdgpu/navy_flounder_dmcub.bin +amdgpu/bonaire_me.bin +amdgpu/bonaire_k_smc.bin +amdgpu/vcn_4_0_6.bin +amdgpu/smu_13_0_14.bin +amdgpu/sdma_6_0_3.bin +amdgpu/polaris10_mec2.bin +amdgpu/tahiti_mc.bin +amdgpu/polaris11_pfp.bin +amdgpu/carrizo_vce.bin +amdgpu/renoir_pfp.bin +amdgpu/topaz_sdma.bin +amdgpu/tahiti_rlc.bin +amdgpu/green_sardine_ce.bin +amdgpu/mullins_sdma1.bin +amdgpu/gc_11_0_1_imu.bin +amdgpu/vega12_pfp.bin +amdgpu/kaveri_sdma.bin +amdgpu/psp_14_0_4_toc.bin +amdgpu/kabini_uvd.bin +amdgpu/raven2_vcn.bin +amdgpu/raven2_gpu_info.bin +amdgpu/navi14_ta.bin +amdgpu/yellow_carp_vcn.bin +amdgpu/gc_12_0_1_imu.bin +amdgpu/carrizo_pfp.bin +amdgpu/vega10_me.bin +amdgpu/green_sardine_me.bin +amdgpu/navi10_smc.bin +amdgpu/topaz_mec.bin +amdgpu/yellow_carp_dmcub.bin +amdgpu/gc_11_0_2_me.bin +amdgpu/arcturus_rlc.bin +amdgpu/raven_pfp.bin +amdgpu/tonga_k_smc.bin +amdgpu/vega20_pfp.bin +amdgpu/tonga_sdma.bin +amdgpu/hawaii_pfp.bin +amdgpu/gc_11_0_0_pfp.bin +amdgpu/bonaire_rlc.bin +amdgpu/gc_11_5_1_mes1.bin +amdgpu/sienna_cichlid_mec.bin +amdgpu/polaris11_mec_2.bin +amdgpu/polaris10_pfp_2.bin +amdgpu/tonga_sdma1.bin +amdgpu/dimgrey_cavefish_mec2.bin +amdgpu/vega20_sos.bin +amdgpu/raven2_mec2.bin +amdgpu/carrizo_sdma1.bin +amdgpu/stoney_mec.bin +amdgpu/gc_10_3_6_me.bin +amdgpu/navi14_mec_wks.bin +amdgpu/hawaii_uvd.bin +amdgpu/gc_12_0_1_mes1.bin +amdgpu/beige_goby_sos.bin +amdgpu/beige_goby_sdma.bin +amdgpu/psp_13_0_7_ta.bin +amdgpu/vega10_gpu_info.bin amdgpu/carrizo_sdma.bin -amdgpu/mullins_ce.bin -amdgpu/vangogh_sdma.bin -amdgpu/gc_11_0_2_pfp.bin -amdgpu/raven2_ip_discovery.bin -amdgpu/vangogh_dmcub.bin -amdgpu/gc_10_3_7_ce.bin -amdgpu/navy_flounder_mec2.bin -amdgpu/verde_uvd.bin -amdgpu/vega12_mec2.bin -amdgpu/vega20_sdma1.bin -amdgpu/navi14_ce_wks.bin -amdgpu/stoney_me.bin -amdgpu/fiji_vce.bin -amdgpu/picasso_ta.bin -amdgpu/gc_11_0_3_me.bin -amdgpu/vcn_5_0_1.bin -amdgpu/vega20_sdma.bin -amdgpu/navi10_sos.bin -amdgpu/fiji_sdma1.bin -amdgpu/polaris10_mec_2.bin -amdgpu/arcturus_mec.bin +amdgpu/gc_10_3_6_ce.bin +amdgpu/picasso_pfp.bin +amdgpu/yellow_carp_sdma.bin amdgpu/carrizo_me.bin amdgpu/aldebaran_mec2.bin -amdgpu/polaris11_me.bin -amdgpu/verde_pfp.bin -amdgpu/polaris11_mc.bin -amdgpu/beige_goby_sos.bin -amdgpu/topaz_mec.bin -amdgpu/vega12_asd.bin -amdgpu/gc_11_0_4_me.bin -amdgpu/raven_ip_discovery.bin -amdgpu/smu_13_0_0.bin -amdgpu/vega10_sdma1.bin -amdgpu/gc_12_0_0_imu.bin -amdgpu/vega10_mec2.bin -amdgpu/navy_flounder_vcn.bin -amdgpu/navy_flounder_me.bin -amdgpu/green_sardine_ce.bin -amdgpu/green_sardine_vcn.bin -amdgpu/gc_11_5_0_mes1.bin -amdgpu/hawaii_vce.bin -amdgpu/navi10_asd.bin -amdgpu/tonga_uvd.bin -amdgpu/navi14_pfp_wks.bin -amdgpu/polaris11_smc_sk.bin -amdgpu/sdma_5_2_7.bin -amdgpu/beige_goby_rlc.bin -amdgpu/vega12_smc.bin -amdgpu/gc_11_5_1_mes1.bin -amdgpu/tonga_vce.bin -amdgpu/cyan_skillfish2_rlc.bin -amdgpu/gc_11_5_0_mec.bin -amdgpu/polaris10_smc_sk.bin -amdgpu/sienna_cichlid_rlc.bin -amdgpu/sdma_6_1_1.bin -amdgpu/stoney_vce.bin -amdgpu/sienna_cichlid_sdma.bin -amdgpu/psp_14_0_1_ta.bin -amdgpu/renoir_me.bin +amdgpu/vangogh_toc.bin +amdgpu/tonga_rlc.bin +amdgpu/sienna_cichlid_vcn.bin +amdgpu/hainan_rlc.bin amdgpu/kabini_sdma.bin -amdgpu/polaris12_k_smc.bin -amdgpu/navi14_vcn.bin +amdgpu/gc_11_0_0_me.bin +amdgpu/vega20_ip_discovery.bin +amdgpu/gc_11_5_0_mec.bin +amdgpu/dimgrey_cavefish_pfp.bin +amdgpu/navi14_rlc.bin +amdgpu/polaris10_ce.bin +amdgpu/verde_ce.bin +amdgpu/gc_12_0_0_me.bin +amdgpu/vangogh_dmcub.bin +amdgpu/gc_11_0_2_pfp.bin +amdgpu/polaris10_pfp.bin +amdgpu/picasso_gpu_info.bin +amdgpu/polaris12_mec2.bin +amdgpu/cyan_skillfish2_mec.bin +amdgpu/navy_flounder_mec2.bin +amdgpu/gc_11_5_3_mes1.bin +amdgpu/navi12_dmcu.bin +amdgpu/gc_11_0_0_rlc_1.bin +amdgpu/yellow_carp_mec2.bin +amdgpu/gc_12_0_1_mec.bin +amdgpu/gc_11_0_3_pfp.bin +amdgpu/gc_10_3_7_me.bin +amdgpu/sdma_6_1_2.bin +amdgpu/beige_goby_ce.bin +amdgpu/cyan_skillfish2_sdma.bin +amdgpu/sienna_cichlid_me.bin +amdgpu/raven2_ta.bin +amdgpu/gc_11_5_1_pfp.bin +amdgpu/polaris12_ce_2.bin +amdgpu/carrizo_mec2.bin +amdgpu/psp_13_0_0_ta_kicker.bin +amdgpu/gc_12_0_0_imu.bin +amdgpu/dcn_3_5_dmcub.bin +amdgpu/gc_11_5_2_pfp.bin +amdgpu/arcturus_ta.bin +amdgpu/picasso_rlc_am4.bin +amdgpu/raven_rlc.bin +amdgpu/polaris12_mec2_2.bin +amdgpu/polaris11_k_mc.bin +amdgpu/navy_flounder_pfp.bin +amdgpu/gc_9_4_4_sjt_mec.bin +amdgpu/gc_11_5_3_imu.bin +amdgpu/tonga_ce.bin +amdgpu/bonaire_mc.bin +amdgpu/kaveri_mec.bin +amdgpu/carrizo_mec.bin +amdgpu/sdma_4_4_2.bin +amdgpu/kaveri_pfp.bin +amdgpu/vega20_ta.bin +amdgpu/vangogh_sdma.bin +amdgpu/gc_12_0_1_rlc.bin +amdgpu/mullins_ce.bin +amdgpu/polaris10_k_smc.bin +amdgpu/sdma_5_2_6.bin +amdgpu/dimgrey_cavefish_sos.bin +amdgpu/vegam_rlc.bin +amdgpu/polaris11_smc.bin +amdgpu/vega20_rlc.bin +amdgpu/gc_11_5_0_imu.bin +amdgpu/stoney_uvd.bin +amdgpu/hainan_smc.bin +amdgpu/stoney_pfp.bin +amdgpu/gc_11_0_3_me.bin +amdgpu/gc_12_0_0_mes.bin +amdgpu/sdma_6_1_3.bin +amdgpu/gc_11_5_0_me.bin +amdgpu/arcturus_vcn.bin +amdgpu/vpe_6_1_1.bin +amdgpu/sdma_4_4_4.bin +amdgpu/tonga_me.bin +amdgpu/hawaii_sdma.bin +amdgpu/bonaire_pfp.bin +amdgpu/isp_4_1_1.bin +amdgpu/polaris11_rlc.bin +amdgpu/vcn_4_0_6_1.bin +amdgpu/vangogh_mec.bin +amdgpu/raven_ce.bin +amdgpu/hawaii_smc.bin +amdgpu/verde_smc.bin +amdgpu/vcn_5_0_1.bin +amdgpu/psp_13_0_12_sos.bin +amdgpu/psp_13_0_14_sos.bin +amdgpu/bonaire_ce.bin +amdgpu/fiji_mec.bin +amdgpu/aldebaran_sjt_mec.bin +amdgpu/polaris12_mec_2.bin +amdgpu/vega10_sdma1.bin +amdgpu/gc_11_5_2_mec.bin +amdgpu/gc_11_0_3_mes_2.bin +amdgpu/vega12_sdma.bin +amdgpu/carrizo_ce.bin +amdgpu/raven_vcn.bin +amdgpu/pitcairn_pfp.bin +amdgpu/hainan_mc.bin +amdgpu/navy_flounder_mec.bin amdgpu/picasso_vcn.bin +amdgpu/vega12_ip_discovery.bin +amdgpu/sienna_cichlid_ta.bin +amdgpu/polaris11_uvd.bin +amdgpu/mullins_vce.bin +amdgpu/bonaire_sdma.bin +amdgpu/dimgrey_cavefish_dmcub.bin +amdgpu/raven_gpu_info.bin +amdgpu/tahiti_ce.bin +amdgpu/vega10_ip_discovery.bin +amdgpu/dcn_4_0_1_dmcub.bin +amdgpu/raven_mec.bin +amdgpu/vcn_4_0_2.bin +amdgpu/gc_10_3_6_mec.bin +amdgpu/psp_13_0_0_sos_kicker.bin +amdgpu/gc_11_0_0_mes_2.bin +amdgpu/psp_13_0_8_toc.bin +amdgpu/polaris11_smc_sk.bin +amdgpu/navy_flounder_me.bin +amdgpu/fiji_ce.bin +amdgpu/green_sardine_sdma.bin +amdgpu/gc_11_0_2_rlc.bin +amdgpu/vega10_sos.bin +amdgpu/psp_14_0_2_sos.bin +amdgpu/kabini_mec.bin +amdgpu/kaveri_ce.bin +amdgpu/polaris11_me.bin +amdgpu/hainan_pfp.bin +amdgpu/fiji_vce.bin +amdgpu/navi10_rlc.bin +amdgpu/picasso_asd.bin +amdgpu/psp_14_0_2_ta.bin +amdgpu/psp_13_0_4_toc.bin +amdgpu/vpe_6_1_3.bin +amdgpu/vega10_pfp.bin +amdgpu/pitcairn_mc.bin +amdgpu/polaris11_sdma1.bin +amdgpu/beige_goby_me.bin +amdgpu/topaz_mec2.bin +amdgpu/polaris10_rlc.bin +amdgpu/psp_14_0_5_toc.bin +amdgpu/renoir_asd.bin +amdgpu/gc_11_0_0_rlc_kicker.bin +amdgpu/cyan_skillfish2_rlc.bin +amdgpu/renoir_vcn.bin +amdgpu/green_sardine_mec2.bin +amdgpu/psp_13_0_8_asd.bin +amdgpu/tonga_vce.bin +amdgpu/tonga_pfp.bin +amdgpu/topaz_mc.bin amdgpu/navi12_sdma.bin +amdgpu/gc_9_5_0_sjt_mec.bin +amdgpu/vega10_rlc.bin +amdgpu/navy_flounder_rlc.bin +amdgpu/kaveri_mec2.bin +amdgpu/gc_11_0_0_imu_kicker.bin +amdgpu/gc_11_0_0_imu.bin +amdgpu/gc_11_0_4_mec.bin +amdgpu/polaris11_k2_smc.bin +amdgpu/psp_13_0_11_toc.bin +amdgpu/topaz_smc.bin +amdgpu/arcturus_mec.bin +amdgpu/polaris12_sdma1.bin +amdgpu/verde_k_smc.bin +amdgpu/tonga_uvd.bin +amdgpu/gc_11_0_4_me.bin +amdgpu/vega12_sdma1.bin +amdgpu/gc_11_0_2_mes.bin +amdgpu/gc_11_0_3_mec.bin +amdgpu/verde_rlc.bin +amdgpu/dcn_3_2_1_dmcub.bin +amdgpu/raven2_me.bin +amdgpu/raven2_ip_discovery.bin +amdgpu/psp_14_0_4_ta.bin +amdgpu/raven_asd.bin +amdgpu/vega12_mec.bin +amdgpu/green_sardine_mec.bin +amdgpu/polaris10_ce_2.bin +amdgpu/vega12_uvd.bin +amdgpu/topaz_pfp.bin +amdgpu/aldebaran_ta.bin +amdgpu/beige_goby_mec2.bin +amdgpu/vega10_asd.bin +amdgpu/umsch_mm_4_0_0.bin +amdgpu/psp_14_0_5_ta.bin +amdgpu/polaris12_mc.bin +amdgpu/yellow_carp_ce.bin +amdgpu/polaris11_mec.bin +amdgpu/arcturus_asd.bin +amdgpu/navi14_pfp.bin +amdgpu/polaris12_k_mc.bin +amdgpu/beige_goby_smc.bin +amdgpu/arcturus_mec2.bin +amdgpu/fiji_sdma1.bin +amdgpu/navi14_ce.bin +amdgpu/fiji_uvd.bin +amdgpu/polaris10_mec.bin +amdgpu/gc_10_3_7_mec2.bin +amdgpu/gc_11_0_1_me.bin +amdgpu/tahiti_smc.bin +amdgpu/si58_mc.bin +amdgpu/vega20_sdma1.bin +amdgpu/green_sardine_asd.bin +amdgpu/vega10_vce.bin +amdgpu/gc_11_0_0_rlc.bin +amdgpu/carrizo_rlc.bin +amdgpu/psp_14_0_0_toc.bin +amdgpu/renoir_mec.bin +amdgpu/gc_11_0_0_mes1.bin +amdgpu/tahiti_k_smc.bin +amdgpu/gc_11_0_4_imu.bin +amdgpu/gc_11_5_3_rlc.bin +amdgpu/vega20_asd.bin +amdgpu/topaz_k_smc.bin +amdgpu/gc_11_0_0_mec.bin +amdgpu/dimgrey_cavefish_smc.bin +amdgpu/kaveri_me.bin +amdgpu/beige_goby_pfp.bin +amdgpu/picasso_ce.bin +amdgpu/gc_10_3_7_ce.bin +amdgpu/oland_ce.bin +amdgpu/navi12_ce.bin +amdgpu/stoney_vce.bin +amdgpu/navy_flounder_vcn.bin +amdgpu/sdma_7_0_0.bin +amdgpu/pitcairn_k_smc.bin +amdgpu/polaris12_32_mc.bin +amdgpu/hawaii_me.bin +amdgpu/vangogh_asd.bin +amdgpu/polaris11_ce.bin +amdgpu/hawaii_k_smc.bin +amdgpu/kabini_pfp.bin +amdgpu/renoir_sdma.bin +amdgpu/cyan_skillfish2_pfp.bin +amdgpu/gc_11_0_1_mes1.bin +amdgpu/gc_11_5_1_rlc.bin +amdgpu/picasso_rlc.bin +amdgpu/hawaii_sdma1.bin +amdgpu/navi14_sos.bin +amdgpu/kabini_rlc.bin +amdgpu/sienna_cichlid_sos.bin +amdgpu/renoir_mec2.bin +amdgpu/gc_11_5_3_pfp.bin +amdgpu/polaris12_uvd.bin +amdgpu/gc_11_0_3_mes1.bin +amdgpu/polaris10_smc.bin +amdgpu/hainan_k_smc.bin +amdgpu/gc_11_0_2_imu.bin +amdgpu/yellow_carp_mec.bin +amdgpu/navi12_sos.bin +amdgpu/dimgrey_cavefish_rlc.bin +amdgpu/arcturus_ip_discovery.bin +amdgpu/beige_goby_dmcub.bin +amdgpu/smu_13_0_10.bin +amdgpu/dcn_3_6_dmcub.bin +amdgpu/vega10_mec.bin +amdgpu/gc_12_0_1_me.bin +amdgpu/polaris12_me.bin +amdgpu/polaris10_vce.bin +amdgpu/navi14_asd.bin +amdgpu/vegam_smc.bin +amdgpu/psp_14_0_3_sos.bin +amdgpu/aldebaran_rlc.bin +amdgpu/navi14_me_wks.bin +amdgpu/bonaire_uvd.bin +amdgpu/gc_10_3_6_rlc.bin +amdgpu/mullins_uvd.bin +amdgpu/cyan_skillfish2_ce.bin +amdgpu/sdma_5_2_7.bin +amdgpu/aldebaran_sjt_mec2.bin +amdgpu/gc_12_0_0_mec.bin +amdgpu/mullins_rlc.bin +amdgpu/vega20_mec.bin +amdgpu/gc_11_0_2_mec.bin +amdgpu/gc_11_5_1_mes_2.bin +amdgpu/sdma_6_1_0.bin +amdgpu/picasso_mec2.bin +amdgpu/vegam_mec2.bin +amdgpu/yellow_carp_asd.bin +amdgpu/gc_11_0_4_rlc.bin +amdgpu/renoir_rlc.bin +amdgpu/stoney_ce.bin +amdgpu/polaris12_smc.bin +amdgpu/hawaii_mec.bin +amdgpu/hawaii_vce.bin +amdgpu/gc_11_5_0_rlc.bin +amdgpu/pitcairn_rlc.bin +amdgpu/polaris11_vce.bin +amdgpu/navi10_me.bin +amdgpu/psp_13_0_8_ta.bin +amdgpu/green_sardine_pfp.bin +amdgpu/dcn_3_2_0_dmcub.bin +amdgpu/gc_11_5_2_rlc.bin +amdgpu/gc_11_0_1_pfp.bin +amdgpu/gc_10_3_6_mec2.bin +amdgpu/navi14_mec2_wks.bin +amdgpu/tonga_mec2.bin +amdgpu/raven_me.bin +amdgpu/gc_9_4_3_rlc.bin +amdgpu/polaris10_sdma.bin amdgpu/gc_9_4_4_mec.bin -amdnpu/17f0_10/npu.sbin.1.0.0.63 -amdnpu/17f0_10/npu.sbin -amdnpu/1502_00/npu.sbin.1.5.2.380 -amdnpu/1502_00/npu.sbin -amdnpu/17f0_11/npu.sbin.1.0.0.166 +amdgpu/polaris10_k2_smc.bin +amdgpu/polaris11_mec2.bin +amdgpu/sienna_cichlid_smc.bin +amdgpu/kaveri_vce.bin +amdgpu/raven_sdma.bin +amdgpu/yellow_carp_toc.bin +amdgpu/pitcairn_uvd.bin +amdgpu/vega10_sdma.bin +amdgpu/navy_flounder_sos.bin +amdgpu/polaris11_mec2_2.bin +amdgpu/vangogh_ce.bin +amdgpu/navi12_mec.bin +amdgpu/psp_14_0_1_ta.bin +amdgpu/polaris11_me_2.bin +amdgpu/vega12_mec2.bin +amdgpu/vega12_asd.bin +amdgpu/sienna_cichlid_rlc.bin +amdgpu/navi10_ce.bin +amdgpu/gc_12_0_1_toc.bin +amdgpu/smu_14_0_2.bin +amdgpu/vega12_ce.bin +amdgpu/mullins_pfp.bin +amdgpu/psp_13_0_7_sos.bin +amdgpu/polaris12_k_smc.bin +amdgpu/aldebaran_smc.bin +amdgpu/hainan_me.bin +amdgpu/polaris10_uvd.bin +amdgpu/polaris10_me_2.bin +amdgpu/psp_13_0_6_ta.bin +amdgpu/gc_11_5_0_mes1.bin +amdgpu/polaris11_ce_2.bin +amdgpu/sienna_cichlid_pfp.bin +amdgpu/psp_14_0_1_toc.bin +amdgpu/sdma_6_0_0.bin +amdgpu/polaris12_pfp.bin +amdgpu/verde_pfp.bin +amdgpu/gc_11_5_3_me.bin +amdgpu/vcn_4_0_0.bin +amdgpu/smu_14_0_3.bin +amdgpu/topaz_rlc.bin +amdgpu/navi12_sdma1.bin +amdgpu/vega20_vce.bin +amdgpu/navi12_rlc.bin +amdgpu/gc_11_5_1_mec.bin +amdgpu/sdma_6_0_2.bin +amdgpu/bonaire_vce.bin +amdgpu/gc_10_3_7_pfp.bin +amdgpu/mullins_me.bin +amdgpu/gc_10_3_6_pfp.bin +amdgpu/polaris12_ce.bin +amdgpu/beige_goby_mec.bin +amdgpu/kabini_me.bin +amdgpu/gc_12_0_0_mes1.bin +amdgpu/gc_9_4_4_rlc.bin +amdgpu/vegam_uvd.bin +amdgpu/dimgrey_cavefish_sdma.bin +amdgpu/gc_11_0_1_mes_2.bin +amdgpu/navi14_mec.bin +amdgpu/sienna_cichlid_dmcub.bin +amdgpu/picasso_me.bin +amdgpu/cyan_skillfish2_sdma1.bin +amdgpu/smu_13_0_0.bin +amdgpu/dcn_3_1_5_dmcub.bin +amdgpu/navi12_vcn.bin +amdgpu/navy_flounder_ta.bin +amdgpu/vega20_me.bin +amdgpu/stoney_sdma.bin +amdgpu/hawaii_rlc.bin +amdgpu/vangogh_mec2.bin +amdgpu/dcn_3_5_1_dmcub.bin +amdgpu/polaris10_k_mc.bin +amdgpu/polaris12_mec.bin +amdgpu/picasso_ip_discovery.bin +amdgpu/psp_13_0_11_ta.bin +amdgpu/vcn_4_0_4.bin +amdgpu/fiji_smc.bin +amdgpu/psp_13_0_0_ta.bin +amdgpu/gc_11_5_3_mes_2.bin +amdgpu/navi10_ta.bin +amdgpu/gc_12_0_0_toc.bin +amdgpu/polaris11_sdma.bin +amdgpu/navi14_ce_wks.bin +amdgpu/pitcairn_ce.bin +amdgpu/gc_10_3_7_rlc.bin +amdgpu/vcn_3_1_2.bin +amdgpu/vega10_mec2.bin +amdgpu/gc_11_5_1_me.bin +amdgpu/vega12_smc.bin +amdgpu/vcn_5_0_0.bin +amdgpu/navi14_pfp_wks.bin +amdgpu/green_sardine_vcn.bin +amdgpu/gc_11_5_1_imu.bin +amdgpu/vega12_rlc.bin +amdgpu/navi12_gpu_info.bin +amdgpu/picasso_ta.bin +amdgpu/bonaire_smc.bin +amdgpu/renoir_me.bin +amdgpu/raven2_asd.bin +amdgpu/navi12_asd.bin +amdgpu/green_sardine_dmcub.bin +amdgpu/topaz_me.bin +amdgpu/navy_flounder_smc.bin +amdgpu/sdma_6_0_1.bin +amdgpu/gc_12_0_0_rlc.bin +amdgpu/carrizo_uvd.bin +amdgpu/oland_k_smc.bin +amdgpu/psp_13_0_4_ta.bin +amdgpu/vegam_pfp.bin +amdgpu/gc_11_5_2_imu.bin +amdgpu/tonga_mc.bin +amdgpu/vegam_vce.bin +amdgpu/beige_goby_ta.bin +amdgpu/vega12_vce.bin +amdgpu/sienna_cichlid_sdma.bin +amdgpu/vega20_sdma.bin +amdgpu/gc_11_5_2_me.bin +amdgpu/navi10_sos.bin +amdgpu/topaz_ce.bin +amdgpu/fiji_rlc.bin +amdgpu/tahiti_pfp.bin +amdgpu/polaris11_mc.bin +amdgpu/oland_mc.bin +amdgpu/gc_11_5_0_pfp.bin +amdgpu/vega10_smc.bin +amdgpu/polaris12_sdma.bin +amdgpu/raven2_mec.bin +amdgpu/polaris10_mc.bin +amdgpu/vegam_mec.bin +amdgpu/hawaii_mc.bin +amdgpu/bonaire_sdma1.bin +amdgpu/psp_13_0_5_ta.bin +amdgpu/gc_12_0_1_pfp.bin +amdgpu/raven_dmcu.bin +amdgpu/green_sardine_ta.bin +amdgpu/vangogh_rlc.bin +amdgpu/dimgrey_cavefish_ta.bin +amdgpu/vega10_acg_smc.bin +amdgpu/gc_11_0_2_mes1.bin +amdgpu/mullins_sdma.bin +amdgpu/polaris12_vce.bin +amdgpu/gc_11_5_2_mes_2.bin +amdgpu/navi12_mec2.bin +amdgpu/tonga_mec.bin +amdgpu/aldebaran_vcn.bin +amdgpu/beige_goby_vcn.bin +amdgpu/gc_9_4_3_mec.bin +amdgpu/navi12_me.bin +amdgpu/gc_12_0_0_uni_mes.bin +amdgpu/arcturus_smc.bin +amdgpu/arcturus_sos.bin +amdgpu/renoir_ta.bin +amdgpu/navy_flounder_ce.bin +amdgpu/psp_13_0_10_sos.bin +amdgpu/vega20_smc.bin +amdgpu/sdma_7_0_1.bin +amdgpu/kaveri_uvd.bin +amdgpu/renoir_dmcub.bin +amdgpu/navi14_sdma.bin +amdgpu/fiji_me.bin +amdgpu/navi12_pfp.bin +amdgpu/sdma_4_4_5.bin +amdgpu/vangogh_vcn.bin +amdgpu/vegam_sdma1.bin +amdgpu/cyan_skillfish2_me.bin +amdgpu/oland_smc.bin +amdgpu/tonga_smc.bin +amdgpu/smu_13_0_7.bin +amdgpu/gc_11_0_1_rlc.bin +amdgpu/gc_9_4_3_sjt_mec.bin +amdgpu/psp_13_0_5_asd.bin +amdgpu/oland_pfp.bin +amdgpu/vega12_gpu_info.bin +amdgpu/gc_11_0_3_rlc.bin +amdgpu/stoney_rlc.bin +amdgpu/gc_12_0_1_mes.bin +amdgpu/yellow_carp_ta.bin +amdgpu/topaz_sdma1.bin +amdgpu/kaveri_sdma1.bin +amdgpu/fiji_pfp.bin +amdgpu/raven_ta.bin +amdgpu/verde_mc.bin +amdgpu/fiji_mc.bin +amdgpu/vegam_me.bin +amdgpu/navi10_sdma1.bin +amdgpu/psp_14_0_0_ta.bin +amdgpu/raven2_ce.bin +amdgpu/vega10_uvd.bin +amdgpu/kaveri_rlc.bin +amdgpu/dimgrey_cavefish_mec.bin +amdgpu/stoney_me.bin +amdgpu/dimgrey_cavefish_ce.bin +amdgpu/vcn_4_0_5.bin +amdgpu/cyan_skillfish2_mec2.bin +amdgpu/vpe_6_1_0.bin +amdgpu/tahiti_uvd.bin +amdgpu/navi14_me.bin +amdgpu/aldebaran_sdma.bin +amdgpu/gc_12_0_0_pfp.bin +amdgpu/polaris10_sdma1.bin +amdgpu/vega10_ce.bin +amdgpu/verde_uvd.bin +amdgpu/gc_12_0_1_uni_mes.bin +amdgpu/navi12_ta.bin +amdgpu/psp_13_0_0_sos.bin +amdgpu/picasso_mec.bin +amdgpu/dimgrey_cavefish_vcn.bin +amdgpu/psp_13_0_6_sos.bin +amdgpu/raven2_sdma.bin +amdgpu/fiji_sdma.bin +amdgpu/dcn_3_1_6_dmcub.bin +amdgpu/pitcairn_smc.bin +amdgpu/gc_11_5_3_mec.bin +amdgpu/psp_14_0_3_ta.bin +amdgpu/verde_me.bin +amdgpu/navi14_sdma1.bin +amdgpu/psp_13_0_12_ta.bin +amdgpu/gc_11_0_3_imu.bin +amdgpu/oland_me.bin +amdgpu/raven2_pfp.bin +amdgpu/beige_goby_rlc.bin +amdgpu/raven_mec2.bin +amdgpu/kabini_vce.bin +amdgpu/vangogh_pfp.bin +amdgpu/kabini_sdma1.bin +amdgpu/navy_flounder_sdma.bin +amdgpu/aldebaran_mec.bin +amdgpu/dimgrey_cavefish_me.bin +amdgpu/gc_11_0_1_mec.bin +amdgpu/yellow_carp_me.bin +amdgpu/polaris10_mec_2.bin +amdgpu/vegam_sdma.bin +amdgpu/yellow_carp_rlc.bin +amdgpu/gc_11_5_2_mes1.bin +amdgpu/sienna_cichlid_mec2.bin +amdgpu/pitcairn_me.bin +amdgpu/aldebaran_sos.bin +amdgpu/vega12_me.bin +amdgpu/tahiti_me.bin +amdgpu/gc_11_0_1_mes.bin +amdgpu/picasso_sdma.bin +amdgpu/banks_k_2_smc.bin +amdgpu/gc_11_0_4_pfp.bin +amdgpu/navi14_vcn.bin +amdgpu/gc_11_5_0_mes_2.bin +amdgpu/navi14_gpu_info.bin +amdgpu/gc_11_0_2_mes_2.bin +amdgpu/arcturus_sdma.bin +amdgpu/psp_13_0_5_toc.bin +amdgpu/vega20_uvd.bin +amdgpu/polaris12_me_2.bin +amdgpu/smu_13_0_0_kicker.bin +amdgpu/polaris12_pfp_2.bin +amdgpu/gc_9_5_0_mec.bin +amdgpu/arcturus_gpu_info.bin +amdgpu/sdma_6_1_1.bin +amdgpu/vcn_4_0_3.bin +amdgpu/green_sardine_rlc.bin +amdgpu/dcn_3_1_4_dmcub.bin +amdgpu/navi10_sdma.bin +amdgpu/vangogh_me.bin +amdgpu/navi10_gpu_info.bin +amdgpu/kabini_ce.bin +amdgpu/aldebaran_ip_discovery.bin +amdgpu/navi14_mec2.bin +amdgpu/mullins_mec.bin +amdgpu/polaris10_me.bin +amdgpu/renoir_gpu_info.bin +amdgpu/navi14_smc.bin +amdgpu/raven_ip_discovery.bin +amdgpu/bonaire_mec.bin +amdgpu/raven2_rlc.bin +amdgpu/hainan_ce.bin +amdgpu/navi10_pfp.bin +amdgpu/gc_10_3_7_mec.bin +amdgpu/gc_11_0_4_mes1.bin +amdgpu/renoir_ce.bin +amdgpu/polaris11_pfp_2.bin +amdgpu/raven_kicker_rlc.bin amdnpu/17f0_11/npu.sbin -amdtee/amd_pmf_v3_1.bin -amdtee/amd_pmf_v3.bin +amdnpu/17f0_11/npu.sbin.1.0.0.166 +amdnpu/1502_00/npu.sbin +amdnpu/1502_00/npu.sbin.1.5.2.380 +amdnpu/17f0_10/npu.sbin +amdnpu/17f0_10/npu.sbin.1.0.0.63 amdtee/773bd96f-b83f-4d52-b12dc529b13d8543.bin +amdtee/amd_pmf_v3.bin +amdtee/amd_pmf_v3_1.bin amdtee/f29bb3d9-bd66-5441-afb88acc2b2b60d6.bin +amlogic/aml_w155s2_bt_uart.bin amlogic/aml_w265s2_bt_uart.bin amlogic/aml_w265s1_bt_uart.bin -amlogic/aml_w155s2_bt_uart.bin amphion/vpu/vpu_fw_imx8_enc.bin amphion/vpu/vpu_fw_imx8_dec.bin ar3k/ramps_0x01020001_26.dfu -ar3k/ramps_0x01020201_26.dfu -ar3k/AthrBT_0x41020000.dfu -ar3k/30000/PS_ASIC.pst -ar3k/30000/RamPatch.txt -ar3k/30000/ar3kbdaddr.pst -ar3k/AthrBT_0x11020000.dfu -ar3k/1020201/PS_ASIC.pst -ar3k/1020201/RamPatch.txt -ar3k/ramps_0x01020200_40.dfu -ar3k/ramps_0x31010100_40.dfu -ar3k/ramps_0x11020000_40.dfu ar3k/ramps_0x01020201_40.dfu +ar3k/ramps_0x31010100_40.dfu +ar3k/ramps_0x01020200_40.dfu ar3k/AthrBT_0x01020001.dfu -ar3k/ramps_0x31010000_40.dfu -ar3k/AthrBT_0x01020200.dfu -ar3k/AthrBT_0x11020100.dfu -ar3k/1020200/PS_ASIC.pst -ar3k/1020200/RamPatch.txt -ar3k/1020200/ar3kbdaddr.pst -ar3k/AthrBT_0x31010000.dfu -ar3k/ramps_0x41020000_40.dfu +ar3k/30101/ar3kbdaddr.pst ar3k/30101/PS_ASIC.pst ar3k/30101/RamPatch.txt -ar3k/30101/ar3kbdaddr.pst -ar3k/AthrBT_0x01020201.dfu ar3k/ramps_0x11020100_40.dfu -ar3k/AthrBT_0x31010100.dfu ar3k/1020201coex/ramps_0x01020201_26_HighPriority.dfu +ar3k/1020200/ar3kbdaddr.pst +ar3k/1020200/PS_ASIC.pst +ar3k/1020200/RamPatch.txt +ar3k/ramps_0x31010000_40.dfu +ar3k/1020201/PS_ASIC.pst +ar3k/1020201/RamPatch.txt +ar3k/AthrBT_0x31010100.dfu +ar3k/ramps_0x01020201_26.dfu +ar3k/30000/ar3kbdaddr.pst +ar3k/30000/PS_ASIC.pst +ar3k/30000/RamPatch.txt +ar3k/AthrBT_0x31010000.dfu +ar3k/ramps_0x11020000_40.dfu +ar3k/AthrBT_0x11020100.dfu +ar3k/AthrBT_0x01020201.dfu +ar3k/ramps_0x41020000_40.dfu ar3k/ramps_0x01020200_26.dfu -ar3k/30101coex/PS_ASIC.pst -ar3k/30101coex/PS_ASIC_aclHighPri.pst -ar3k/30101coex/RamPatch.txt ar3k/30101coex/ar3kbdaddr.pst +ar3k/30101coex/PS_ASIC.pst ar3k/30101coex/PS_ASIC_aclLowPri.pst +ar3k/30101coex/RamPatch.txt +ar3k/30101coex/PS_ASIC_aclHighPri.pst +ar3k/AthrBT_0x11020000.dfu +ar3k/AthrBT_0x01020200.dfu +ar3k/AthrBT_0x41020000.dfu ar5523.bin ar7010.fw ar7010_1_1.fw @@ -840,1741 +840,1741 @@ ar9271.fw arm/mali/arch10.8/mali_csffw.bin as102_data1_st.hex as102_data2_st.hex -ath10k/QCA9888/hw2.0/board-2.bin -ath10k/QCA9888/hw2.0/notice_ath10k_firmware-5.txt -ath10k/QCA9888/hw2.0/firmware-5.bin -ath10k/QCA9984/hw1.0/board-2.bin -ath10k/QCA9984/hw1.0/notice_ath10k_firmware-5.txt -ath10k/QCA9984/hw1.0/firmware-5.bin -ath10k/QCA99X0/hw2.0/board-2.bin -ath10k/QCA99X0/hw2.0/notice_ath10k_firmware-5.txt -ath10k/QCA99X0/hw2.0/firmware-5.bin ath10k/QCA9887/hw1.0/board.bin -ath10k/QCA9887/hw1.0/notice_ath10k_firmware-5.txt ath10k/QCA9887/hw1.0/firmware-5.bin -ath10k/QCA9377/hw1.0/board.bin -ath10k/QCA9377/hw1.0/notice_ath10k_firmware-sdio-5.txt -ath10k/QCA9377/hw1.0/board-2.bin -ath10k/QCA9377/hw1.0/notice_ath10k_firmware-6.txt -ath10k/QCA9377/hw1.0/notice_ath10k_firmware-5.txt -ath10k/QCA9377/hw1.0/firmware-5.bin -ath10k/QCA9377/hw1.0/firmware-6.bin -ath10k/QCA9377/hw1.0/firmware-sdio-5.bin -ath10k/QCA6174/hw2.1/board.bin -ath10k/QCA6174/hw2.1/board-2.bin -ath10k/QCA6174/hw2.1/notice_ath10k_firmware-5.txt -ath10k/QCA6174/hw2.1/firmware-5.bin -ath10k/QCA6174/hw3.0/notice_ath10k_firmware-sdio-6.txt -ath10k/QCA6174/hw3.0/board.bin -ath10k/QCA6174/hw3.0/firmware-sdio-6.bin +ath10k/QCA9887/hw1.0/notice_ath10k_firmware-5.txt +ath10k/QCA9888/hw2.0/firmware-5.bin +ath10k/QCA9888/hw2.0/notice_ath10k_firmware-5.txt +ath10k/QCA9888/hw2.0/board-2.bin ath10k/QCA6174/hw3.0/notice_ath10k_firmware-4.txt -ath10k/QCA6174/hw3.0/board-2.bin -ath10k/QCA6174/hw3.0/notice_ath10k_firmware-6.txt -ath10k/QCA6174/hw3.0/firmware-6.bin +ath10k/QCA6174/hw3.0/board.bin +ath10k/QCA6174/hw3.0/notice_ath10k_firmware-sdio-6.txt +ath10k/QCA6174/hw3.0/firmware-sdio-6.bin ath10k/QCA6174/hw3.0/firmware-4.bin -ath10k/WCN3990/hw1.0/qrb4210/wlanmdsp.mbn -ath10k/WCN3990/hw1.0/qrb4210/firmware-5.bin -ath10k/WCN3990/hw1.0/notice.txt_wlanmdsp -ath10k/WCN3990/hw1.0/board-2.bin +ath10k/QCA6174/hw3.0/firmware-6.bin +ath10k/QCA6174/hw3.0/notice_ath10k_firmware-6.txt +ath10k/QCA6174/hw3.0/board-2.bin +ath10k/QCA6174/hw2.1/board.bin +ath10k/QCA6174/hw2.1/firmware-5.bin +ath10k/QCA6174/hw2.1/notice_ath10k_firmware-5.txt +ath10k/QCA6174/hw2.1/board-2.bin +ath10k/QCA9984/hw1.0/firmware-5.bin +ath10k/QCA9984/hw1.0/notice_ath10k_firmware-5.txt +ath10k/QCA9984/hw1.0/board-2.bin +ath10k/QCA4019/hw1.0/firmware-5.bin +ath10k/QCA4019/hw1.0/notice_ath10k_firmware-5.txt +ath10k/QCA4019/hw1.0/board-2.bin +ath10k/QCA99X0/hw2.0/firmware-5.bin +ath10k/QCA99X0/hw2.0/notice_ath10k_firmware-5.txt +ath10k/QCA99X0/hw2.0/board-2.bin ath10k/WCN3990/hw1.0/wlanmdsp.mbn ath10k/WCN3990/hw1.0/firmware-5.bin ath10k/WCN3990/hw1.0/qcm2290/wlanmdsp.mbn ath10k/WCN3990/hw1.0/qcm2290/firmware-5.bin -ath10k/QCA988X/hw2.0/board.bin +ath10k/WCN3990/hw1.0/notice.txt_wlanmdsp +ath10k/WCN3990/hw1.0/qrb4210/wlanmdsp.mbn +ath10k/WCN3990/hw1.0/qrb4210/firmware-5.bin +ath10k/WCN3990/hw1.0/board-2.bin +ath10k/QCA9377/hw1.0/board.bin +ath10k/QCA9377/hw1.0/firmware-5.bin +ath10k/QCA9377/hw1.0/firmware-sdio-5.bin +ath10k/QCA9377/hw1.0/notice_ath10k_firmware-5.txt +ath10k/QCA9377/hw1.0/firmware-6.bin +ath10k/QCA9377/hw1.0/notice_ath10k_firmware-6.txt +ath10k/QCA9377/hw1.0/notice_ath10k_firmware-sdio-5.txt +ath10k/QCA9377/hw1.0/board-2.bin ath10k/QCA988X/hw2.0/notice_ath10k_firmware-4.txt -ath10k/QCA988X/hw2.0/notice_ath10k_firmware-5.txt +ath10k/QCA988X/hw2.0/board.bin ath10k/QCA988X/hw2.0/firmware-5.bin ath10k/QCA988X/hw2.0/firmware-4.bin -ath10k/QCA4019/hw1.0/board-2.bin -ath10k/QCA4019/hw1.0/notice_ath10k_firmware-5.txt -ath10k/QCA4019/hw1.0/firmware-5.bin -ath11k/WCN6855/hw2.1/board-2.bin -ath11k/WCN6855/hw2.1/amss.bin -ath11k/WCN6855/hw2.1/regdb.bin -ath11k/WCN6855/hw2.1/m3.bin -ath11k/WCN6855/hw2.0/board-2.bin -ath11k/WCN6855/hw2.0/amss.bin -ath11k/WCN6855/hw2.0/regdb.bin -ath11k/WCN6855/hw2.0/m3.bin -ath11k/WCN6855/hw2.0/Notice.txt -ath11k/WCN6750/hw1.0/wpss.mdt -ath11k/WCN6750/hw1.0/qcm6490/wpss.mbn -ath11k/WCN6750/hw1.0/board-2.bin -ath11k/WCN6750/hw1.0/sc7280/wpss.mbn -ath11k/WCN6750/hw1.0/Notice.txt -ath11k/QCA6698AQ/hw2.1/board-2.bin -ath11k/QCA6698AQ/hw2.1/amss.bin -ath11k/QCA6698AQ/hw2.1/m3.bin -ath11k/QCA6698AQ/hw2.1/Notice.txt -ath11k/QCA2066/hw2.1/board-2.bin -ath11k/QCA2066/hw2.1/amss.bin -ath11k/QCA2066/hw2.1/m3.bin -ath11k/QCA2066/hw2.1/Notice.txt -ath11k/QCN9074/hw1.0/.notice -ath11k/QCN9074/hw1.0/board-2.bin -ath11k/QCN9074/hw1.0/amss.bin -ath11k/QCN9074/hw1.0/m3.bin -ath11k/QCN9074/hw1.0/Notice.txt -ath11k/IPQ5018/hw1.0/m3_fw.b02 -ath11k/IPQ5018/hw1.0/q6_fw.b02 -ath11k/IPQ5018/hw1.0/q6_fw.flist -ath11k/IPQ5018/hw1.0/q6_fw.b08 -ath11k/IPQ5018/hw1.0/q6_fw.mdt -ath11k/IPQ5018/hw1.0/m3_fw.b00 -ath11k/IPQ5018/hw1.0/m3_fw.mdt -ath11k/IPQ5018/hw1.0/m3_fw.flist -ath11k/IPQ5018/hw1.0/q6_fw.b09 -ath11k/IPQ5018/hw1.0/board-2.bin -ath11k/IPQ5018/hw1.0/q6_fw.b04 -ath11k/IPQ5018/hw1.0/q6_fw.b01 -ath11k/IPQ5018/hw1.0/q6_fw.b10 -ath11k/IPQ5018/hw1.0/q6_fw.b13 -ath11k/IPQ5018/hw1.0/m3_fw.b01 -ath11k/IPQ5018/hw1.0/q6_fw.b00 -ath11k/IPQ5018/hw1.0/q6_fw.b07 -ath11k/IPQ5018/hw1.0/Notice.txt -ath11k/IPQ5018/hw1.0/q6_fw.b03 -ath11k/IPQ5018/hw1.0/q6_fw.b11 -ath11k/IPQ5018/hw1.0/q6_fw.b05 -ath11k/IPQ5018/hw1.0/q6_fw.b14 -ath11k/IPQ8074/hw2.0/m3_fw.b02 -ath11k/IPQ8074/hw2.0/q6_fw.b02 -ath11k/IPQ8074/hw2.0/q6_fw.flist -ath11k/IPQ8074/hw2.0/q6_fw.b08 +ath10k/QCA988X/hw2.0/notice_ath10k_firmware-5.txt +ath11k/IPQ8074/hw2.0/m3_fw.mdt +ath11k/IPQ8074/hw2.0/q6_fw.b00 ath11k/IPQ8074/hw2.0/q6_fw.mdt ath11k/IPQ8074/hw2.0/m3_fw.b00 -ath11k/IPQ8074/hw2.0/m3_fw.mdt -ath11k/IPQ8074/hw2.0/m3_fw.flist -ath11k/IPQ8074/hw2.0/board-2.bin +ath11k/IPQ8074/hw2.0/q6_fw.b08 ath11k/IPQ8074/hw2.0/q6_fw.b04 -ath11k/IPQ8074/hw2.0/q6_fw.b01 -ath11k/IPQ8074/hw2.0/m3_fw.b01 -ath11k/IPQ8074/hw2.0/q6_fw.b00 -ath11k/IPQ8074/hw2.0/q6_fw.b07 +ath11k/IPQ8074/hw2.0/q6_fw.flist +ath11k/IPQ8074/hw2.0/m3_fw.flist ath11k/IPQ8074/hw2.0/Notice.txt +ath11k/IPQ8074/hw2.0/m3_fw.b02 ath11k/IPQ8074/hw2.0/q6_fw.b03 ath11k/IPQ8074/hw2.0/q6_fw.b05 -ath11k/QCA6390/hw2.0/board-2.bin -ath11k/QCA6390/hw2.0/amss.bin +ath11k/IPQ8074/hw2.0/m3_fw.b01 +ath11k/IPQ8074/hw2.0/q6_fw.b02 +ath11k/IPQ8074/hw2.0/q6_fw.b07 +ath11k/IPQ8074/hw2.0/board-2.bin +ath11k/IPQ8074/hw2.0/q6_fw.b01 +ath11k/QCN9074/hw1.0/.notice +ath11k/QCN9074/hw1.0/m3.bin +ath11k/QCN9074/hw1.0/Notice.txt +ath11k/QCN9074/hw1.0/board-2.bin +ath11k/QCN9074/hw1.0/amss.bin ath11k/QCA6390/hw2.0/m3.bin ath11k/QCA6390/hw2.0/Notice.txt -ath11k/IPQ6018/hw1.0/m3_fw.b02 -ath11k/IPQ6018/hw1.0/q6_fw.b02 -ath11k/IPQ6018/hw1.0/q6_fw.flist -ath11k/IPQ6018/hw1.0/q6_fw.b08 +ath11k/QCA6390/hw2.0/board-2.bin +ath11k/QCA6390/hw2.0/amss.bin +ath11k/IPQ5018/hw1.0/m3_fw.mdt +ath11k/IPQ5018/hw1.0/q6_fw.b00 +ath11k/IPQ5018/hw1.0/q6_fw.mdt +ath11k/IPQ5018/hw1.0/m3_fw.b00 +ath11k/IPQ5018/hw1.0/q6_fw.b08 +ath11k/IPQ5018/hw1.0/q6_fw.b09 +ath11k/IPQ5018/hw1.0/q6_fw.b14 +ath11k/IPQ5018/hw1.0/q6_fw.b04 +ath11k/IPQ5018/hw1.0/q6_fw.flist +ath11k/IPQ5018/hw1.0/q6_fw.b10 +ath11k/IPQ5018/hw1.0/m3_fw.flist +ath11k/IPQ5018/hw1.0/Notice.txt +ath11k/IPQ5018/hw1.0/m3_fw.b02 +ath11k/IPQ5018/hw1.0/q6_fw.b03 +ath11k/IPQ5018/hw1.0/q6_fw.b05 +ath11k/IPQ5018/hw1.0/m3_fw.b01 +ath11k/IPQ5018/hw1.0/q6_fw.b02 +ath11k/IPQ5018/hw1.0/q6_fw.b07 +ath11k/IPQ5018/hw1.0/board-2.bin +ath11k/IPQ5018/hw1.0/q6_fw.b13 +ath11k/IPQ5018/hw1.0/q6_fw.b11 +ath11k/IPQ5018/hw1.0/q6_fw.b01 +ath11k/WCN6750/hw1.0/qcm6490/wpss.mbn +ath11k/WCN6750/hw1.0/sc7280/wpss.mbn +ath11k/WCN6750/hw1.0/Notice.txt +ath11k/WCN6750/hw1.0/board-2.bin +ath11k/WCN6750/hw1.0/wpss.mdt +ath11k/WCN6855/hw2.0/m3.bin +ath11k/WCN6855/hw2.0/regdb.bin +ath11k/WCN6855/hw2.0/Notice.txt +ath11k/WCN6855/hw2.0/board-2.bin +ath11k/WCN6855/hw2.0/amss.bin +ath11k/WCN6855/hw2.1/m3.bin +ath11k/WCN6855/hw2.1/regdb.bin +ath11k/WCN6855/hw2.1/board-2.bin +ath11k/WCN6855/hw2.1/amss.bin +ath11k/IPQ6018/hw1.0/m3_fw.mdt +ath11k/IPQ6018/hw1.0/q6_fw.b00 ath11k/IPQ6018/hw1.0/q6_fw.mdt ath11k/IPQ6018/hw1.0/m3_fw.b00 -ath11k/IPQ6018/hw1.0/m3_fw.mdt -ath11k/IPQ6018/hw1.0/m3_fw.flist -ath11k/IPQ6018/hw1.0/board-2.bin +ath11k/IPQ6018/hw1.0/q6_fw.b08 ath11k/IPQ6018/hw1.0/q6_fw.b04 -ath11k/IPQ6018/hw1.0/q6_fw.b01 -ath11k/IPQ6018/hw1.0/m3_fw.b01 -ath11k/IPQ6018/hw1.0/q6_fw.b00 -ath11k/IPQ6018/hw1.0/q6_fw.b07 +ath11k/IPQ6018/hw1.0/q6_fw.flist +ath11k/IPQ6018/hw1.0/m3_fw.flist ath11k/IPQ6018/hw1.0/Notice.txt +ath11k/IPQ6018/hw1.0/m3_fw.b02 ath11k/IPQ6018/hw1.0/q6_fw.b03 ath11k/IPQ6018/hw1.0/q6_fw.b05 -ath12k/QCN9274/hw2.0/firmware-2.bin -ath12k/QCN9274/hw2.0/board-2.bin -ath12k/QCN9274/hw2.0/Notice.txt -ath12k/WCN7850/hw2.0/board-2.bin -ath12k/WCN7850/hw2.0/amss.bin +ath11k/IPQ6018/hw1.0/m3_fw.b01 +ath11k/IPQ6018/hw1.0/q6_fw.b02 +ath11k/IPQ6018/hw1.0/q6_fw.b07 +ath11k/IPQ6018/hw1.0/board-2.bin +ath11k/IPQ6018/hw1.0/q6_fw.b01 +ath11k/QCA6698AQ/hw2.1/m3.bin +ath11k/QCA6698AQ/hw2.1/Notice.txt +ath11k/QCA6698AQ/hw2.1/board-2.bin +ath11k/QCA6698AQ/hw2.1/amss.bin +ath11k/QCA2066/hw2.1/m3.bin +ath11k/QCA2066/hw2.1/Notice.txt +ath11k/QCA2066/hw2.1/board-2.bin +ath11k/QCA2066/hw2.1/amss.bin ath12k/WCN7850/hw2.0/m3.bin ath12k/WCN7850/hw2.0/Notice.txt +ath12k/WCN7850/hw2.0/board-2.bin +ath12k/WCN7850/hw2.0/amss.bin +ath12k/QCN9274/hw2.0/firmware-2.bin +ath12k/QCN9274/hw2.0/Notice.txt +ath12k/QCN9274/hw2.0/board-2.bin ath3k-1.fw -ath6k/AR6004/hw1.2/fw-2.bin -ath6k/AR6004/hw1.2/bdata.bin -ath6k/AR6004/hw1.3/bdata.bin -ath6k/AR6004/hw1.3/fw-3.bin ath6k/AR6003/hw2.0/otp.bin.z77 -ath6k/AR6003/hw2.0/bdata.WB31.bin -ath6k/AR6003/hw2.0/bdata.SD32.bin -ath6k/AR6003/hw2.0/data.patch.bin ath6k/AR6003/hw2.0/bdata.SD31.bin +ath6k/AR6003/hw2.0/bdata.SD32.bin +ath6k/AR6003/hw2.0/bdata.WB31.bin +ath6k/AR6003/hw2.0/data.patch.bin ath6k/AR6003/hw2.0/athwlan.bin.z77 -ath6k/AR6003/hw1.0/otp.bin.z77 -ath6k/AR6003/hw1.0/bdata.WB31.bin -ath6k/AR6003/hw1.0/bdata.SD32.bin -ath6k/AR6003/hw1.0/data.patch.bin -ath6k/AR6003/hw1.0/bdata.SD31.bin -ath6k/AR6003/hw1.0/athwlan.bin.z77 +ath6k/AR6003/hw2.1.1/fw-2.bin ath6k/AR6003/hw2.1.1/endpointping.bin ath6k/AR6003/hw2.1.1/otp.bin -ath6k/AR6003/hw2.1.1/fw-2.bin -ath6k/AR6003/hw2.1.1/bdata.WB31.bin -ath6k/AR6003/hw2.1.1/bdata.SD32.bin -ath6k/AR6003/hw2.1.1/data.patch.bin ath6k/AR6003/hw2.1.1/bdata.SD31.bin -ath6k/AR6003/hw2.1.1/fw-3.bin +ath6k/AR6003/hw2.1.1/bdata.SD32.bin +ath6k/AR6003/hw2.1.1/bdata.WB31.bin +ath6k/AR6003/hw2.1.1/data.patch.bin ath6k/AR6003/hw2.1.1/athwlan.bin -ath6k/AR6002/data.patch.hw2_0.bin -ath6k/AR6002/eeprom.data -ath6k/AR6002/eeprom.bin -ath6k/AR6002/athwlan.bin.z77 +ath6k/AR6003/hw2.1.1/fw-3.bin +ath6k/AR6003/hw1.0/otp.bin.z77 +ath6k/AR6003/hw1.0/bdata.SD31.bin +ath6k/AR6003/hw1.0/bdata.SD32.bin +ath6k/AR6003/hw1.0/bdata.WB31.bin +ath6k/AR6003/hw1.0/data.patch.bin +ath6k/AR6003/hw1.0/athwlan.bin.z77 ath6k/AR6003.1/hw2.1.1/endpointping.bin ath6k/AR6003.1/hw2.1.1/otp.bin -ath6k/AR6003.1/hw2.1.1/bdata.WB31.bin -ath6k/AR6003.1/hw2.1.1/bdata.SD32.bin -ath6k/AR6003.1/hw2.1.1/data.patch.bin ath6k/AR6003.1/hw2.1.1/bdata.SD31.bin +ath6k/AR6003.1/hw2.1.1/bdata.SD32.bin +ath6k/AR6003.1/hw2.1.1/bdata.WB31.bin +ath6k/AR6003.1/hw2.1.1/data.patch.bin ath6k/AR6003.1/hw2.1.1/athwlan.bin +ath6k/AR6002/data.patch.hw2_0.bin +ath6k/AR6002/eeprom.bin +ath6k/AR6002/athwlan.bin.z77 +ath6k/AR6002/eeprom.data +ath6k/AR6004/hw1.3/bdata.bin +ath6k/AR6004/hw1.3/fw-3.bin +ath6k/AR6004/hw1.2/fw-2.bin +ath6k/AR6004/hw1.2/bdata.bin ath9k_htc/htc_7010-1.4.0.fw ath9k_htc/htc_9271-1.4.0.fw -atmel/wilc1000_wifi_firmware.bin atmel/wilc1000_wifi_firmware-1.bin +atmel/wilc1000_fw.bin +atmel/wilc1000_wifi_firmware.bin atmel/wilc1000_ap_fw.bin atmel/wilc1000_p2p_fw.bin -atmel/wilc1000_fw.bin atmel/wilc3000_wifi_firmware-1.bin -atusb/atusb-0.2.dfu atusb/atusb-0.3.dfu atusb/rzusb-0.3.bin +atusb/atusb-0.2.dfu av7110/bootcode.bin bmi260-init-data.fw -bnx2/bnx2-mips-06-6.2.3.fw -bnx2/bnx2-rv2p-09-6.0.17.fw bnx2/bnx2-rv2p-09ax-6.0.17.fw +bnx2/bnx2-rv2p-09-6.0.17.fw bnx2/bnx2-mips-09-6.2.1b.fw bnx2/bnx2-rv2p-06-6.0.15.fw +bnx2/bnx2-mips-06-6.2.3.fw +bnx2x/bnx2x-e2-7.13.1.0.fw bnx2x/bnx2x-e1h-7.13.15.0.fw bnx2x/bnx2x-e1h-7.13.21.0.fw -bnx2x/bnx2x-e1-7.13.1.0.fw -bnx2x/bnx2x-e2-7.13.15.0.fw -bnx2x/bnx2x-e1-7.13.15.0.fw bnx2x/bnx2x-e1-7.13.11.0.fw -bnx2x/bnx2x-e2-7.13.21.0.fw -bnx2x/bnx2x-e2-7.13.11.0.fw -bnx2x/bnx2x-e1h-7.13.1.0.fw +bnx2x/bnx2x-e2-7.13.15.0.fw bnx2x/bnx2x-e1-7.13.21.0.fw -bnx2x/bnx2x-e2-7.13.1.0.fw +bnx2x/bnx2x-e1-7.13.15.0.fw +bnx2x/bnx2x-e2-7.13.21.0.fw +bnx2x/bnx2x-e1h-7.13.1.0.fw bnx2x/bnx2x-e1h-7.13.11.0.fw -brcm/brcmfmac4356-pcie.gpd-win-pocket.txt -brcm/brcmfmac43455-sdio.pine64,pinenote-v1.2.txt -brcm/brcmfmac43430a0-sdio.ilife-S806.txt -brcm/brcmfmac43455-sdio.clm_blob -brcm/brcmfmac43340-sdio.Insyde-VESPA2.txt -brcm/brcmfmac43143-sdio.bin -brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt -brcm/brcmfmac43362-sdio.ASUSTeK COMPUTER INC.-ME176C.txt -brcm/brcmfmac4366b-pcie.bin -brcm/brcmfmac43455-sdio.raspberrypi,5-compute-module.txt -brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt -brcm/brcmfmac43012-sdio.bin -brcm/brcmfmac43455-sdio.pine64,soquartz-blade.txt -brcm/brcmfmac43455-sdio.Raspberry Pi Foundation-Raspberry Pi Compute Module 4.txt -brcm/brcmfmac43362-sdio.lemaker,bananapro.txt -brcm/brcmfmac4330-sdio.bin -brcm/brcmfmac4358-pcie.bin -brcm/brcmfmac43362-sdio.kobo,tolino-shine2hd.txt -brcm/brcmfmac43430a0-sdio.bin -brcm/brcmfmac43570-pcie.bin -brcm/brcmfmac43430-sdio.AP6212.txt -brcm/brcmfmac43241b4-sdio.Intel Corp.-VALLEYVIEW C0 PLATFORM.txt -brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt -brcm/brcmfmac54591-pcie.clm_blob -brcm/brcmfmac43430-sdio.starfive,visionfive-v1.txt -brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt -brcm/brcmfmac43362-sdio.kobo,aura.txt -brcm/brcmfmac43430-sdio.friendlyarm,nanopi-neo4.txt -brcm/brcmfmac43455-sdio.pine64,pinebook-pro.txt -brcm/brcmfmac43143.bin -brcm/brcmfmac43455-sdio.acepc-t8.txt -brcm/brcmfmac4354-sdio.clm_blob -brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt -brcm/brcmfmac43602-pcie.bin -brcm/bcm43xx_hdr-0.fw -brcm/brcmfmac43430-sdio.friendlyarm,nanopi-r1.txt -brcm/brcmfmac4366c-pcie.bin -brcm/brcmfmac4350-pcie.bin -brcm/brcmfmac43455-sdio.khadas,vim.txt -brcm/brcmfmac4356-sdio.khadas,vim2.txt -brcm/brcmfmac4356-sdio.firefly,firefly-rk3399.txt -brcm/brcmfmac43455-sdio.Raspberry Pi Foundation-Raspberry Pi 4 Model B.txt -brcm/brcmfmac43430-sdio.sinovoip,bananapi-m64.txt -brcm/brcmfmac4334-sdio.bin -brcm/brcmfmac43455-sdio.pine64,soquartz-model-a.txt -brcm/brcmfmac43241b4-sdio.bin -brcm/brcmfmac43241b0-sdio.bin -brcm/brcmfmac43455-sdio.pine64,rockpro64-v2.0.txt -brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt -brcm/brcmfmac43569.bin -brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.txt -brcm/brcmfmac4356-sdio.vamrs,rock960.txt -brcm/brcmfmac4354-sdio.nvidia,p2371-2180.txt -brcm/brcmfmac43362-sdio.WC121.txt -brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt -brcm/brcmfmac43430a0-sdio.ONDA-V80 PLUS.txt -brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt -brcm/brcmfmac4356-sdio.friendlyarm,nanopc-t4.txt -brcm/brcmfmac43455-sdio.beagle,am5729-beagleboneai.txt -brcm/brcmfmac43455-sdio.raspberrypi,500.txt -brcm/brcmfmac43455-sdio.pine64,pinenote-v1.1.txt -brcm/brcmfmac4356-sdio.friendlyarm,nanopi-m4.txt -brcm/brcmfmac43340-sdio.bin -brcm/bcm4329-fullmac-4.bin -brcm/brcmfmac4356-pcie.Intel Corporation-CHERRYVIEW D1 PLATFORM.txt -brcm/brcmfmac4373.bin -brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt +bnx2x/bnx2x-e1-7.13.1.0.fw +bnx2x/bnx2x-e2-7.13.11.0.fw +brcm/brcmfmac4330-sdio.Prowise-PT301.txt +brcm/brcmfmac4354-sdio.bin brcm/brcmfmac43455-sdio.Radxa-ROCK Pi X.txt -brcm/brcmfmac43570-pcie.clm_blob -brcm/brcmfmac4329-sdio.bin -brcm/brcmfmac4356-pcie.bin -brcm/brcmfmac43455-sdio.pine64,pinephone-pro.txt -brcm/brcmfmac4371-pcie.bin -brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt +brcm/brcmfmac43430-sdio.beagle,beaglev-starlight-jh7100-a1.txt +brcm/brcmfmac43455-sdio.acepc-t8.txt +brcm/brcmfmac4373-sdio.clm_blob brcm/brcmfmac43242a.bin -brcm/brcmfmac43602-pcie.ap.bin -brcm/brcmfmac43340-sdio.ASUSTeK COMPUTER INC.-TF103CE.txt -brcm/brcmfmac43012-sdio.clm_blob -brcm/brcmfmac43455-sdio.pine64,quartz64-b.txt -brcm/brcmfmac43455-sdio.pine64,rockpro64-v2.1.txt -brcm/brcmfmac43430-sdio.ilife-S806.txt -brcm/brcmfmac43430-sdio.clm_blob -brcm/brcmfmac4356-sdio.AP6356S.txt -brcm/brcmfmac43340-sdio.predia-basic.txt -brcm/brcmfmac43455-sdio.pine64,soquartz-cm4io.txt -brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt -brcm/bcm43xx-0.fw -brcm/brcmfmac43430-sdio.sinovoip,bpi-m3.txt -brcm/brcmfmac4356-pcie.clm_blob -brcm/brcmfmac54591-pcie.bin -brcm/brcmfmac43455-sdio.AW-CM256SM.txt -brcm/brcmfmac4339-sdio.bin -brcm/brcmfmac43430-sdio.bin +brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt +brcm/brcmfmac4356-sdio.khadas,vim2.txt +brcm/brcmfmac43362-sdio.kobo,aura.txt +brcm/BCM-0bb4-0306.hcd brcm/brcmfmac43430-sdio.MUR1DX.txt -brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt +brcm/brcmfmac43236b.bin +brcm/brcmfmac54591-pcie.clm_blob +brcm/brcmfmac43455-sdio.pine64,pinephone-pro.txt +brcm/brcmfmac43569.bin +brcm/brcmfmac43455-sdio.pine64,quartz64-a.txt +brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt +brcm/brcmfmac4335-sdio.bin +brcm/brcmfmac4356-sdio.clm_blob +brcm/brcmfmac43602-pcie.bin +brcm/brcmfmac43455-sdio.pine64,rockpro64-v2.0.txt +brcm/brcmfmac43430-sdio.bin +brcm/brcmfmac43455-sdio.bin +brcm/brcmfmac4334-sdio.bin +brcm/brcmfmac4356-sdio.firefly,firefly-rk3399.txt +brcm/brcmfmac4356-pcie.Xiaomi Inc-Mipad2.txt +brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt +brcm/brcmfmac43362-sdio.ASUSTeK COMPUTER INC.-ME176C.txt +brcm/brcmfmac43430-sdio.AP6212.txt +brcm/brcmfmac4356-pcie.gpd-win-pocket.txt +brcm/brcmfmac43455-sdio.beagle,am5729-beagleboneai.txt +brcm/brcmfmac4356-pcie.Intel Corporation-CHERRYVIEW D1 PLATFORM.txt +brcm/brcmfmac43241b4-sdio.Advantech-MICA-071.txt +brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt +brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt brcm/BCM-0a5c-6410.hcd +brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt +brcm/brcmfmac4354-sdio.nvidia,p2371-2180.txt +brcm/brcmfmac43455-sdio.pine64,pinebook-pro.txt +brcm/bcm43xx-0.fw +brcm/brcmfmac43570-pcie.clm_blob +brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt +brcm/brcmfmac43241b0-sdio.bin +brcm/brcmfmac4356-sdio.bin +brcm/brcmfmac43012-sdio.bin +brcm/brcmfmac4356-pcie.bin +brcm/brcmfmac43430a0-sdio.bin +brcm/brcmfmac43430-sdio.beagle,beaglev-starlight-jh7100-r0.txt +brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt +brcm/brcmfmac43455-sdio.pine64,rockpro64-v2.1.txt +brcm/brcmfmac4339-sdio.bin +brcm/brcmfmac43430a0-sdio.ONDA-V80 PLUS.txt +brcm/bcm43xx_hdr-0.fw +brcm/brcmfmac43430-sdio.friendlyarm,nanopi-neo4.txt +brcm/brcmfmac4350-pcie.bin +brcm/brcmfmac4371-pcie.bin +brcm/brcmfmac4356-pcie.clm_blob +brcm/brcmfmac43340-sdio.Insyde-VESPA2.txt +brcm/brcmfmac43455-sdio.clm_blob +brcm/brcmfmac43362-sdio.WC121.txt +brcm/brcmfmac43455-sdio.raspberrypi,5-compute-module.txt +brcm/brcmfmac4330-sdio.bin +brcm/brcmfmac43430-sdio.sinovoip,bananapi-m64.txt +brcm/brcmfmac43362-sdio.bin +brcm/brcmfmac4366b-pcie.bin +brcm/brcmfmac4356-sdio.friendlyarm,nanopi-m4.txt +brcm/brcmfmac4329-sdio.bin +brcm/brcmfmac43455-sdio.pine64,pinenote-v1.2.txt +brcm/brcmfmac4373.bin +brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-plus.txt +brcm/brcmfmac43602-pcie.ap.bin +brcm/brcmfmac43455-sdio.raspberrypi,500.txt +brcm/brcmfmac43362-sdio.lemaker,bananapro.txt +brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.txt +brcm/brcmfmac4366c-pcie.bin +brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt +brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt +brcm/brcmfmac43455-sdio.Raspberry Pi Foundation-Raspberry Pi Compute Module 4.txt +brcm/brcmfmac43455-sdio.khadas,vim.txt +brcm/brcmfmac43430-sdio.clm_blob +brcm/brcmfmac43241b4-sdio.Intel Corp.-VALLEYVIEW C0 PLATFORM.txt +brcm/brcmfmac43241b4-sdio.bin +brcm/brcmfmac43455-sdio.MINIX-NEO Z83-4.txt +brcm/brcmfmac4350c2-pcie.bin +brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt +brcm/bcm4329-fullmac-4.bin +brcm/brcmfmac4373-sdio.bin +brcm/brcmfmac43455-sdio.pine64,pinenote-v1.1.txt +brcm/brcmfmac43143-sdio.bin +brcm/brcmfmac4356-sdio.AP6356S.txt +brcm/brcmfmac43430a0-sdio.ilife-S806.txt +brcm/brcmfmac4358-pcie.bin +brcm/brcmfmac4356-sdio.friendlyarm,nanopc-t4.txt +brcm/brcmfmac43455-sdio.pine64,quartz64-b.txt +brcm/brcmfmac43430-sdio.friendlyarm,nanopi-r1.txt +brcm/brcmfmac43455-sdio.pine64,soquartz-model-a.txt +brcm/brcmfmac43430-sdio.ilife-S806.txt +brcm/brcmfmac43455-sdio.pine64,soquartz-cm4io.txt +brcm/brcmfmac4354-sdio.clm_blob +brcm/brcmfmac43570-pcie.bin +brcm/brcmfmac43340-sdio.bin +brcm/brcmfmac43430-sdio.starfive,visionfive-v1.txt +brcm/brcmfmac43012-sdio.clm_blob +brcm/brcmfmac43455-sdio.pine64,soquartz-blade.txt +brcm/brcmfmac43143.bin +brcm/brcmfmac43455-sdio.Raspberry Pi Foundation-Raspberry Pi 4 Model B.txt +brcm/brcmfmac43340-sdio.ASUSTeK COMPUTER INC.-TF103CE.txt +brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt +brcm/brcmfmac43340-sdio.predia-basic.txt brcm/brcmfmac43241b5-sdio.bin brcm/brcmfmac43340-sdio.meegopad-t08.txt -brcm/brcmfmac43430-sdio.beagle,beaglev-starlight-jh7100-a1.txt -brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-plus.txt -brcm/brcmfmac43362-sdio.bin -brcm/brcmfmac4373-sdio.bin -brcm/brcmfmac43241b4-sdio.Advantech-MICA-071.txt -brcm/brcmfmac43455-sdio.bin -brcm/brcmfmac4356-sdio.bin -brcm/brcmfmac4373-sdio.clm_blob -brcm/brcmfmac4356-sdio.clm_blob -brcm/brcmfmac43455-sdio.MINIX-NEO Z83-4.txt -brcm/brcmfmac43236b.bin -brcm/brcmfmac4335-sdio.bin -brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt -brcm/brcmfmac4330-sdio.Prowise-PT301.txt -brcm/brcmfmac43455-sdio.pine64,quartz64-a.txt -brcm/brcmfmac4350c2-pcie.bin -brcm/brcmfmac4354-sdio.bin -brcm/brcmfmac4356-pcie.Xiaomi Inc-Mipad2.txt -brcm/BCM-0bb4-0306.hcd -brcm/brcmfmac43430-sdio.beagle,beaglev-starlight-jh7100-r0.txt +brcm/brcmfmac54591-pcie.bin +brcm/brcmfmac4356-sdio.vamrs,rock960.txt +brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt +brcm/brcmfmac43455-sdio.AW-CM256SM.txt +brcm/brcmfmac43430-sdio.sinovoip,bpi-m3.txt +brcm/brcmfmac43362-sdio.kobo,tolino-shine2hd.txt cadence/mhdp8546.bin carl9170-1.fw -cavium/cnn55xx_ae.fw cavium/cnn55xx_se.fw +cavium/cnn55xx_ae.fw cbfw-3.2.5.1.bin -cirrus/cs35l41-dsp1-spk-prot-104331f1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431294-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431034-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10431f12.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b42.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a2c-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433011-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431ccf-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431863-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid1-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid0-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-17aa391b-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431683-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a8f-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa386e-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8da8-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c89c6-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104316a3-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8e2c-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431caf.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa392e-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10431c33-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8c52-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c50-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid0-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a30-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b47.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8994.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be8-spkid1-l0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d08-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-17aa231a-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8a2e-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid0-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-10431454-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8c66-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a30.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa3878-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c898f.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c51-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ad8.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbf.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-17aa392e-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c89c3-r1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3847-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3932-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10280b28-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa390c-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-17aa390c-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e11-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-104330d1-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104316a3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104318d3-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104312b4-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9b.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431863-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-vlv1776.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280b27-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-10431074-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c15-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431463-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431b93.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid0-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ad8.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be5-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431cef-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bdd-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8971.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2319-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b70.bin -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0-amp1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d91.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa22f1-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid2-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3878-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cf5-l1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c48.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431ed3.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280b27-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38c8-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431194-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cdf-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431fb3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a50.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa38c7-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be6-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10433061-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431d1f-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10251844-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c50-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431054-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431454-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bdf-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c49.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa38ab-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a20-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104314e3-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2317-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104314e3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3877-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid1.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid1-ampr.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid0-l1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c17-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c33-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cde.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa2318-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c89e7-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431533-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280c4d.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a28-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431e02.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa392d-spkid0-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bdd.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid3.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b8f-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbe.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431caf-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b7-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2c-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38a9-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid2.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be5-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8995.bin -cirrus/cs35l41-dsp1-spk-prot-10431ed3-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0-amp4.bin -cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid1-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10431044-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10431df3-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8bdf-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a30-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431194-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be7-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433061.wmfw -cirrus/cs35l41-dsp1-spk-prot-104330e1-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbd.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431483.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c6a-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid1-l1.bin -cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid1-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10431fb3.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431034-spkid0-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10431463.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d86-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e12.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431294-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8da1.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa2317-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431433-spkid0-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid0-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-104330e1-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431663-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8b3a-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2d-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8d91-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid0-ampl.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid1-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid1-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2a-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a50-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid1-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10431044-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10433011-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa390d-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c89c6.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d8c-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b44.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b72.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d85-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9e-spkid0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3911-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid0-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-17aa3911-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa38b6-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ce0-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2d-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cdf-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2317-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid0-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-103c8c53.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa390c-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431503-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a6e-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9b-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-10431473-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431024-spkid0-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-104314d3-spkid1-l0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d85-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2316-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3921-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be8-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b8f-r1.bin -cirrus/cs35l41-dsp1-spk-prot-10433ff0-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bde-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b5-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c71.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431473.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433fd0-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a20-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104331e1-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8973.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa38c8.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a2d-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c33-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a50-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8975-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38fa-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431573-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c89c6-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e60-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-1f660105.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b3a-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c67.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa386e-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8cdd.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433ff0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431cef-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ce0.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c17-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280b28.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431e13-amp4.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d85.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8cf5.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433a50-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431fb3-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8c26.bin -cirrus/cs35l41-dsp1-spk-prot-10431cdf-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431493-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ce0-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104316f3-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid0-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cdf-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cdd-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8981-r1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c16.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431433-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8da8-spkid1.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8d9d-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280b28-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433071-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431264-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b5-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433061-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c51-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c16-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10433071-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8992.bin -cirrus/cs35l41-dsp1-spk-prot-10431533-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2e-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid1-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a6e-l1.bin -cirrus/cs35l41-dsp1-spk-prot-10431054-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431663-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4f.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1-amp1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d8e.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d08-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c15-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8981.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-104331f1-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid0-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid1-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a29-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e3b-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c51.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433d88.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be6-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b6-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433d78.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-104330e1.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8c53-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10433e00-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2319-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2318-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d8e-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10431c33-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431573.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431cdf.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid1-r1.bin -cirrus/cs35l41-dsp1-spk-prot-104330d1-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8da1-spkid1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e18-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e36.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431ed3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be2-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f3.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c17-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa22f2-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa231a-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b4-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2d.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8e19-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4f-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be7-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0-amp3.bin -cirrus/cs35l56-b0-dsp1-misc-17aa233c-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be3-spkid1-l0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d01-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431c43.wmfw -cirrus/cs35l41-dsp1-spk-prot-104331e1-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e11.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid0-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa38fa-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433391.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38c8-spkid1-l1.bin -cirrus/cs35l56-b0-dsp1-misc-17aa391e-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8e1b.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa386e-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104331e1-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38a9-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b4-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a6e-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ca7.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431503-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431da2-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4e.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431683-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2b-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be0-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431314-spkid1.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8c52-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431f1f.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8e2c-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid1-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d01-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e37-spkid1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e16.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a31-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c896e-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431da2.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e13.wmfw -cirrus/cs35l41-dsp1-spk-prot-104312b4-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0-amp3.bin -cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431683.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be5.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa2319.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8d90-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3877-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b63-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9d.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8d91-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10280b28-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a40-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8e2c.wmfw -cirrus/cs35l41-dsp1-spk-prot-104388f4-spkid1.bin -cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2b-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b63-l1.bin -cirrus/cs35l41-dsp1-spk-prot-10431663.wmfw -cirrus/cs35l41-dsp1-spk-prot-10251844.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433071-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f3-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10431f62-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c9f-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b74.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c89e7-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104316d3-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38f9-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa392e-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b7-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3932-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431473-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid3-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-10431da2-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104330d1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8bdd-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431074.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8d92.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa386f-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431314-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cf5-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid2-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a31-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10251826-l0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e17.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be3.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa386f-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104331e1.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa3910-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431054-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433011-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c9f.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bde-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c46.wmfw -cirrus/cs35l41-dsp1-spk-prot-104316a3-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3865.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-104330d1-spkid0-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d08-amp1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d8e-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be6.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b8f.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431314-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b6-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8da7.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be3-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433061-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431463-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid2-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-103c8974.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a6e.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d01-amp3.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid0-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2316-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid1-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2c-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9d-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-104388f4.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be0-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c70.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be0-spkid1-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e16-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c68-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid3-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-104318d3-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8c53-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431454-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c16-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9c-spkid1.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431024-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431c43-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c896e.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431533-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c50-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431e13-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4f-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-104388f4-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c17-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3905.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8a2a-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c50.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8d9b-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be9-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c9f-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f2-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8d92-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10433fd0-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc4.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c67-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3866-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be5-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8a2d-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8992.wmfw -cirrus/cs35l41-dsp1-spk-prot-104314e3.wmfw -cirrus/cs35l41-dsp1-spk-prot-104331e1-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431cef-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431cdf-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a60-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a29-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a8f-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431194-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8975-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be9-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431f43-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10433e20-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b4-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3905-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b8f-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f2-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431503-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b3a-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9c-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-10431f63.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433a60-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be1-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a83-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a29-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be8-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104330e1-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104316a3-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b6-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433391-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9e.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa231a.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433e20-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a60-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8975.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8e14.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b92.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c47.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e13-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-10431f63-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e3b-spkid0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be1-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa391b-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b43.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cde-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c6a-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431fb3-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a20-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8c53-amp4.bin -cirrus/cs35l56-b0-dsp1-misc-17aa391e-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e61.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431433-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431663-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104316d3-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ca7.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa391b.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be5-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b45.bin -cirrus/cs35l56-b0-dsp1-misc-10431034-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc1.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8e1c-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431cef.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa3855.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8cdf-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid1-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid1-l0.bincfg -cirrus/cs35l54-b0-dsp1-misc-103c8d86-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10433a40-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cdd-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid1-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-10433a30-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ce0-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8c52-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10431433-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8e61-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a28-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cde-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8be9-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431024-spkid1-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid3-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10431054.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e3a.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431483-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-104314d3-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431df3-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2a-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431493-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b4.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa392d-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10433011.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid1-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2319-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10433ff0-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e60.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431454.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid2-ampl.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104318d3-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2316-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8d9f.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c68-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38c7.wmfw -cirrus/cs35l41-dsp1-spk-prot-104316f3-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431ccf.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431ccf-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431ee2-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c72.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d08.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa231a-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1-amp3.bin cirrus/cs35l41-dsp1-spk-prot-10431483-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-17aa390d-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c66.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c4f-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e60-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid0-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d8c.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8e19-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2c-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104314d3-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431024-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10433a40-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa386e-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-104318d3.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa38b4-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433fd0-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104314e3-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c70.wmfw -cirrus/cs35l41-dsp1-spk-prot-104330c1-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104312af.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a2e-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431caf-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8971.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433e20-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0-amp4.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8d90-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10251826-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431ed3-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10251844-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431294-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3911-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-104312b4-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9f-spkid0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid1-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-103c896e-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431d1f-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431ccf-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8be1-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2b-spkid0-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e15-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-104316f3-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431314-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8981-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431cdf-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid1-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2b-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433071.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a2e.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a31.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e36-spkid1.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38fa.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b63-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431473-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-104330c1-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa38c7-spkid0-r1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bdf-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c67-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc2.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8d9e-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-104330c1-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a28-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431d1f-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8c52.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a28-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-104316d3-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-104330e1-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be7-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9f-spkid1.bin -cirrus/cs35l56-b0-dsp1-misc-10431f43-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10431493.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431034-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a30-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433fd0.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be9.wmfw -cirrus/cs35l41-dsp1-spk-prot-10251826.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid0-amp1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d86.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e13-spkid0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3847-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bde-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c43-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-1f660105.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38f9-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3878.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid0-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b46.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8e18.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c66-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e36-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2317.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b7-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a30.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c66-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid0-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1-amp4.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e18-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8995.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-17aa38b4.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280b28-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa392e.wmfw cirrus/cs35l54-b0-dsp1-misc-103c8e16-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-104314d3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431863-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-104312b4.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a30-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid0-amp2.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d8d.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b70.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1-amp4.bin -cirrus/cs35l56-b0-dsp1-misc-103c8c53-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10431194-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431ccf-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431f62-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8c52-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b47.bin -cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa38ab-spkid1-l0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d01.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c15-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431df3-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b5-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10431c03.wmfw -cirrus/cs35l41-dsp1-spk-prot-104331f1-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2318.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c51-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10433a30-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-1025182c-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431863.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431483-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431454-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38ab-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c68.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c47.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c16-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8991.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431f62-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433a50-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431493-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10280b27.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8e1c.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c898e.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cf5-r1.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3910-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433e00.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa3877.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-104331f1-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3921-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-104331f1-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10433a20.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431034-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8ca4.bin -cirrus/cs35l41-dsp1-spk-prot-10433a20-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431034-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431683-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431da2-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c898e.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b3a.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431caf-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b5.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c67-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a83-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433391-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be3-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid0-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38a9-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid2.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8e1a-amp2.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e17-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8974.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bde.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10280b28-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa392e-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2a.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8981-l1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2317-spkid0-r0.bin cirrus/cs35l54-b0-dsp1-misc-103c8e15-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431433-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-17aa386e.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa38ab.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e62-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c50-spkid1-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d91-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431433-spkid0-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e14-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8e12-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3866-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bdf-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431044-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c17.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431264-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10433a60-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280beb-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8da0-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c71.bin -cirrus/cs35l41/v6.56.0/halo_cspl_RAM_revB2_29.58.0.wmfw -cirrus/cs35l41/v6.83.0/halo_cspl_RAM_revB2_29.85.0.wmfw -cirrus/cs35l41/v6.51.0/halo_cspl_RAM_revB2_29.53.0.wmfw -cirrus/cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw -cirrus/cs35l41/v6.78.0/halo_cspl_RAM_revB2_29.80.0.wmfw -cirrus/cs35l41/v6.39.0/halo_cspl_RAM_revB2_29.41.0.wmfw -cirrus/cs35l41/v6.63.0/halo_cspl_RAM_revB2_29.65.0.wmfw -cirrus/cs35l41/v6.47.0/halo_cspl_RAM_revB2_29.49.0.wmfw -cirrus/cs35l41/bincfgs/cs35l41-dsp1-19_5dB.bincfg -cirrus/cs35l41/bincfgs/cs35l41-dsp1-16_5dB.bincfg -cirrus/cs35l41/bincfgs/cs35l41-dsp1-14_5dB.bincfg -cirrus/cs35l41/v6.68.0/halo_cspl_RAM_revB2_29.70.0.wmfw -cirrus/cs35l41/v6.80.0/halo_cspl_RAM_revB2_29.82.0.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3932-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid3-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-104316d3.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10431f62-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a50-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38c7-spkid0-l1.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid1-ampl.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a28.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c89e7-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433071.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa3855.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433011-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8981.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431573.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c898e.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8d-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38c7-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cdf-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa392d-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431f62-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bdd-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid0.wmfw cirrus/cs35l54-b0-dsp1-misc-103c8e1a.wmfw cirrus/cs35l56-b0-dsp1-misc-17aa3932.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d8c-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431f1f-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa233c-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b46.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431483-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-104316f3.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8da7-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-10431573-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid0-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-10431503-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104312af-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431ee2.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d85-amp4.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3910-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431a8f.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c4d.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa3921-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b43.bin -cirrus/cs35l41-dsp1-spk-prot-10433391-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431e13-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0-amp3.bin -cirrus/cs35l56-b0-dsp1-misc-103c8e1b-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c89c3.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431054-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cdf.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d85-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10431433-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104314e3-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e37.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431cef-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2319-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa2318-r0.bincfg -cirrus/cs35l54-b0-dsp1-misc-103c8e15.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c6a.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e3b.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a29-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2e-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104316d3-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b3a-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bdd-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa22f2-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431f62.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa3866.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8be2-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1-amp3.bin -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e61-spkid1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d8f-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be9-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431194.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa22f3-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431463-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431a8f-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38c8-spkid1-r1.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431663-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa3847.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8e1b-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid1-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa391e-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431c9f-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f3-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid0-r0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c89c3-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b72.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10431d1f.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid0-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-104316f3-spkid0-l0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d86-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-10431863-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid1-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10280beb-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c49.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433e20.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b92.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc3.wmfw -cirrus/cs35l41-dsp1-spk-prot-104312af-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431573-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-104330c1-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be1-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431b93-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c89c3-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e62.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8bb3.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8da7-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bde-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431433-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8b77.bin -cirrus/cs35l41-dsp1-spk-prot-104318d3-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8991.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c67-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c89c3-l1.bin -cirrus/cs35l41-dsp1-spk-prot-10433ff0-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8981-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431fb3-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431294.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8a2c.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431ee2-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431df3.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431294-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c46.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c51-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10431683-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa2318-l0.bincfg -cirrus/cs35l54-b0-dsp1-misc-103c8d01-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a31-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431473-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8b8f-l1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38c7-spkid0-l1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be0-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa390b-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10433ff0-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be8-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8981-l1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e1a-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38ab-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f2.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8b74.bin -cirrus/cs35l41-dsp1-spk-prot-103c8973.bin -cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid0-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c16-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104316a3.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c66-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid0-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-17aa390b-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c898f.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa38b7.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433011-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431f1f-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431b93-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0-amp3.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d8d-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8972.bin -cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8994.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be6-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c68-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8a2b.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be2-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid0-ampl.bin -cirrus/cs35l41-dsp1-spk-prot-vlv1776.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431074-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431044-spkid0-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa38a9.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431c43-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b3a-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be7.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c16.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid0.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa3866-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1.wmfw cirrus/cs35l41-dsp1-spk-prot-10433e00-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c43-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c89e7.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa3847-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa38c8-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8972.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c4f-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431e13-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c6a-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431e12.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433391-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433061-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b5-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b63.wmfw -cirrus/cs35l41-dsp1-spk-prot-104317f3.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-1025182c.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8bdd-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a8f-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa231a-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10431e13.wmfw -cirrus/cs35l41-dsp1-spk-prot-104314d3.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b7-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10431f1f-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433061.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280b28.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8cdf-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431473-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa233c.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8ce0-spkid0-l0.bin cirrus/cs35l41-dsp1-spk-prot-10431433.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1.wmfw -cirrus/cs35l56/CS35L56_Rev3.11.26.wmfw -cirrus/cs35l56/CS35L56_Rev3.11.21.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3932-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2e-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3911-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e3a.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid1-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c6a-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104330e1-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bdd-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10433e20.wmfw +cirrus/cs35l41-dsp1-spk-prot-10433a50-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid0-l0.bincfg +cirrus/cs35l54-b0-dsp1-misc-103c8e15-amp2.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d91.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8973.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a30-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b77.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa390b.wmfw +cirrus/cs35l41-dsp1-spk-prot-vlv1776.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b46.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa22f1-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431314-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bdd.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a30-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433ff0-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9d.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c6a-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b47.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c89c3-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c89c6-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a28-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b44.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431ed3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c67-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9c-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2a-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38ab-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8e2c.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431cef.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0-amp4.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f2-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-17aa3878-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b5-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-vlv1776.wmfw +cirrus/cs35l56-b0-dsp1-misc-103c8e2c-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c51-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-17aa2318-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433fd0-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8ca7.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b70.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e60.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8b92.bin +cirrus/cs35l41-dsp1-spk-prot-104331e1-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0-amp3.bin +cirrus/cs35l54-b0-dsp1-misc-103c8e18-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bdf-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431194-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104330e1-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e3a-spkid1.bin +cirrus/cs35l56-b0-dsp1-misc-10431f43-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431663-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431314-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10433a30.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c89e7-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431493-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8973.bin +cirrus/cs35l41-dsp1-spk-prot-10431c03.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8d9f-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-10433a20-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431454.wmfw +cirrus/cs35l41-dsp1-spk-prot-104330c1.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431ed3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2318-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8ce0.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8bdf-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa386e-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431024-spkid0-amp2.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8e.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431e13-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3878-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104312b4-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431034-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8b42.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431473-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f2-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2316-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b3a.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8995.wmfw +cirrus/cs35l41-dsp1-spk-prot-104316f3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8c48.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431caf-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431ed3-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431034-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b45.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8ca4.bin +cirrus/cs35l41-dsp1-spk-prot-10431493.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-104318d3-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid1-ampl.bin +cirrus/cs35l56-b0-dsp1-misc-17aa392e-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot.bin +cirrus/cs35l41-dsp1-spk-prot-104330c1-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1-amp4.bin +cirrus/cs35l56-b0-dsp1-misc-17aa390c-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431074-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c898f.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431c33-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433e00.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431463.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid1-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d08-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be6-spkid1-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8e18.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8e14.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa38b4-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bdf-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid0-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431463-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431b93-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2316-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b3a-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2a-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c896e-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8974.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8972.wmfw +cirrus/cs35l56/CS35L56_Rev3.11.11.1.wmfw cirrus/cs35l56/CS35L56_Rev3.11.25.wmfw -cirrus/cs35l56/CS35L56_Rev3.11.11.wmfw +cirrus/cs35l56/CS35L56_Rev3.11.26.wmfw cirrus/cs35l56/CS35L56_Rev3.11.20.wmfw -cirrus/cs35l56/CS35L56_Rev3.11.18.wmfw +cirrus/cs35l56/CS35L56_Rev3.11.28.wmfw cirrus/cs35l56/CS35L56_Rev3.11.16.wmfw cirrus/cs35l56/CS35L56_Rev3.11.28B.wmfw -cirrus/cs35l56/CS35L56_Rev3.11.28.wmfw -cirrus/cs35l56/CS35L56_Rev3.11.11.1.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa3905-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431a83.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433e00-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa390b.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433a40.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431573-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa392d-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa3932-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2316-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431314-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38c7-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8cf5-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104312af-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb4.wmfw -cirrus/cs35l56-b0-dsp1-misc-17aa392e.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid0-l0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e19.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid0-r1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa2317-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b42.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38f9.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c9f-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa233c.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433fd0-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e3a-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b77.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c6a-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-103c8d91.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433e20-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431da2-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a83-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10433e00-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431f43-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10431024-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431caf-spkid0-l0.bin +cirrus/cs35l56/CS35L56_Rev3.11.18.wmfw +cirrus/cs35l56/CS35L56_Rev3.11.21.wmfw +cirrus/cs35l56/CS35L56_Rev3.11.11.wmfw +cirrus/cs35l41-dsp1-spk-prot-104314d3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3866.wmfw +cirrus/cs35l41-dsp1-spk-prot-104331e1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c66.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0-amp3.bin +cirrus/cs35l56-b0-dsp1-misc-17aa391e-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be1-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3865.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c67-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433ff0-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be0-spkid0-r0.bin cirrus/cs35l41-dsp1-spk-prot-103c8c72.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431f43.wmfw -cirrus/cs35l41-dsp1-spk-prot-10433a30-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433071-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b44.bin -cirrus/cs35l41-dsp1-spk-prot-103c8d9c.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8e17-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431b93-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280beb.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e11-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2a.wmfw -cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8da8.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e62-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa2316.wmfw -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-10431074-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a29.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431264.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8e1c-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a28.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431b93-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid1-ampr.bin -cirrus/cs35l41-dsp1-spk-prot-17aa386f.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8c15-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a30-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431024-spkid1-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8da1-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid0-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid0-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid1.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431c33.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d8d-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-1025182c-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0-amp4.bin -cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1-amp3.bin -cirrus/cs35l41-dsp1-spk-prot-103c8da0-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid0-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid0-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431cdf-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa22f3-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e37-spkid0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-17aa38a9-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431ed3-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa3865-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431463-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-17aa38b6.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid1-l0.bincfg -cirrus/cs35l54-b0-dsp1-misc-103c8d8f-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8e12-spkid1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8da0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431533-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431493-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ce0-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104330d1-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8ca4.wmfw -cirrus/cs35l54-b0-dsp1-misc-103c8d08-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b63-r1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8a2a-spkid1-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be7.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c26.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8be6-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431f62-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid0-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8a6e-r1.bin -cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid1-r0.bin -cirrus/cs35l56-b0-dsp1-misc-10431264-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10431a83-spkid0-r0.bin -cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid1-ampr.bin -cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431533.wmfw -cirrus/cs35l41-dsp1-spk-prot-17aa3865-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c68-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8c48.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be2-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10433a60.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid0-amp1.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d86-amp2.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid0-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid3.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8d90.wmfw -cirrus/cs35l41-dsp1-spk-prot-103c8e3a-spkid0.bin -cirrus/cs35l56-b0-dsp1-misc-10431f43-amp4.bin -cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid1-l0.bin -cirrus/cs35l41-dsp1-spk-prot-104312b4-spkid0-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8d8f.wmfw -cirrus/cs35l56-b0-dsp1-misc-103c8d92-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid1-l0.bincfg -cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid1-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-10433a40-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c43-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid1-r0.bincfg -cirrus/cs35l41-dsp1-spk-prot-103c8a31-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be2.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431df3-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-17aa3847-spkid0-l0.bin -cirrus/cs35l41-dsp1-spk-prot-10431503.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid1-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-104312b4-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431503-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4d.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8e15.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be8-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431314-spkid1-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10431e13-amp4.bin +cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid0-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid0-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431314-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431533-spkid1-r0.bin cirrus/cs35l56-b0-dsp1-misc-10431044-spkid0.wmfw -cirrus/cs35l56-b0-dsp1-misc-10431264-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10431314-spkid1-amp2.bin -cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1-amp1.bin -cirrus/cs35l56-b0-dsp1-misc-17aa390d-spkid0.wmfw -cirrus/cs35l41-dsp1-spk-prot-104312af-spkid0-r0.bin -cirrus/cs35l54-b0-dsp1-misc-103c8e14-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-103c8c15.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431d1f-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be7-spkid0-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8b45.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid0-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431e13-amp3.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1-amp2.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d86-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c48.bin +cirrus/cs35l41-dsp1-spk-prot-10431194.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8be9-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38a9-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-104331f1.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid1-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-10431074.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa391b.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431caf-spkid0-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8d-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3905-amp2.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d08-amp4.bin cirrus/cs35l54-b0-dsp1-misc-103c8d91-amp1.bin -cirrus/cs35l41-dsp1-spk-prot-104330c1.wmfw -cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid0-l0.bincfg -cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid1-r0.bin -cirrus/cs35l41-dsp1-spk-prot-103c8be8.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8d9e.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431194-spkid0-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d01.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c66-spkid0-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8c-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-104331f1-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431264-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid0-r1.bin +cirrus/cs35l41-dsp1-spk-prot-10433a40-spkid0-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d08-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da8-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38a9-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid1-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid0-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3865-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid2-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-10280b27.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431663-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c33-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431cef-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2316-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid1-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10431ee2-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-104330d1-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c33-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104314e3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b5.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b63.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8d8f-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10431e13-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10433d78.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa3847-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid2-ampr.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid0-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e13-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b72.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c17-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431463-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3921-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431433-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4e.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e61-spkid1.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-103c8e1c-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-17aa386f-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104314e3-spkid1-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8e18-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-104316f3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b63-r1.bin +cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104331f1-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431fb3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da1-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a30-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431a8f.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8ce0-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a30-spkid1-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8c-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c17-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280beb-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431ccf-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3877-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431663-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid0-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431044-spkid0-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10431454-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb3.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431533-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc3.wmfw +cirrus/cs35l56-b0-dsp1-misc-103c8e1c-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a29-spkid0-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d85-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e12-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-10433391.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c70.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431433-spkid1-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8cf5-r1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e36-spkid1.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa3865-l0.bin cirrus/cs35l41-dsp1-spk-prot-103c8bdf.wmfw -cirrus/cs35l41-dsp1-spk-prot-10431f63-l0.bin -cirrus/cs35l56-b0-dsp1-misc-10431044-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa22f3-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8e11-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431df3-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38c7-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10433061-spkid1-r0.bin cirrus/cs35l41-dsp1-spk-prot-10431074-spkid1-l0.bin -cis/SW_7xx_SER.cis -cis/COMpad4.cis +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid1-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-10431a83-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8991.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a6e-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431da2-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431314-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid2.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4f-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b7-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3877-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cf5-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c16-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c16-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a30-spkid1-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d86-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-103c8c53-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b7-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b70.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c50-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f3-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433071-spkid1-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d01-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3932-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e13.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa392e-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431cdf.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431863-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid1-ampl.bin +cirrus/cs35l56-b0-dsp1-misc-10431f43-amp4.bin +cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431a63.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa2317.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa38c7-spkid0-r1.bin +cirrus/cs35l41-dsp1-spk-prot-10431473-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8b63-l1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a28-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8971.bin +cirrus/cs35l41-dsp1-spk-prot-1025182c-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104312af-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f3-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433ff0-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid1-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a6e.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1-amp3.bin +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b5-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104312af-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2d-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431294-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da7-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa386f-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8e-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-103c8e1b-amp2.bin +cirrus/cs35l54-b0-dsp1-misc-103c8e17-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b7-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431cef-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c15-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10251826-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431a83-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b6-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cf5.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431264-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b92.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431533-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431533-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104331e1-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a6e-r1.bin +cirrus/cs35l41-dsp1-spk-prot-10431ccf-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431433-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431044-spkid1-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c4f-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c17-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104330e1-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433fd0.wmfw +cirrus/cs35l41-dsp1-spk-prot-104330c1-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa231a-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid0-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be0-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c16-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid3-ampl.bin +cirrus/cs35l56-b0-dsp1-misc-10431264-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f3-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431f43-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431e12.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431c43-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cde-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10433a40-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid0-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a31-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280b28-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc4.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8bde-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b63-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b47.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431cdf-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433fd0-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid0-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431b93-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be8.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280b28-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-104318d3-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid0-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3877.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be9-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f2-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d85-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10431503.wmfw +cirrus/cs35l41-dsp1-spk-prot-10251844-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be0.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-104314e3-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa390b-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431054-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431024-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be5-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8e1b.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8e17.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be7-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431ccf-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8ce0-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-104316a3-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc2.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431d1f.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8d91-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid1-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-103c8d91.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e12.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8992.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8d01-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc1.wmfw +cirrus/cs35l41-dsp1-spk-prot-104316f3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2a-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8bde-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e13-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a31-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c16-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104388f4-spkid1.bin +cirrus/cs35l56-b0-dsp1-misc-10431044-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b6.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2317-spkid1-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d85.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431d1f-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104318d3.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa38c7.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8d85-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid1-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9c-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8d9f-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa231a-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid1-r0.bincfg +cirrus/cs35l54-b0-dsp1-misc-103c8e1a-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10433061-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431314-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e61-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bde-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b4-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c9f-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104316d3.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8e19-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be8-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b72.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431f12.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431df3-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid1-r0.bincfg +cirrus/cs35l54-b0-dsp1-misc-103c8e14-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431683.wmfw +cirrus/cs35l41-dsp1-spk-prot-104330e1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be5-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431f62-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a40.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa3866-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104331f1-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a40-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431c43-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38c8-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cdd-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8975-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431294-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be5-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be2.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431264.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8992.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be5.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431ed3.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431f1f.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431573-spkid1-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d01-amp4.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid1-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e37-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9d-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8971.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b8f.wmfw +cirrus/cs35l41-dsp1-spk-prot-104316f3-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10251826.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3932-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-104318d3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c68-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a20.wmfw +cirrus/cs35l41-dsp1-spk-prot-104312af.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a2e-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-1f660105.bin +cirrus/cs35l41-dsp1-spk-prot-104317f3.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be6-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c67-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2319.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431e02.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid0.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9e-spkid0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be3.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa391e-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a2b-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3878.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c66-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431fb3-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431074-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c67.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa38fa.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8be2-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c47.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8da7.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa392e-amp3.bin +cirrus/cs35l56-b0-dsp1-misc-10431f43-amp3.bin +cirrus/cs35l41/v6.78.0/halo_cspl_RAM_revB2_29.80.0.wmfw +cirrus/cs35l41/v6.51.0/halo_cspl_RAM_revB2_29.53.0.wmfw +cirrus/cs35l41/bincfgs/cs35l41-dsp1-19_5dB.bincfg +cirrus/cs35l41/bincfgs/cs35l41-dsp1-14_5dB.bincfg +cirrus/cs35l41/bincfgs/cs35l41-dsp1-16_5dB.bincfg +cirrus/cs35l41/v6.47.0/halo_cspl_RAM_revB2_29.49.0.wmfw +cirrus/cs35l41/v6.63.0/halo_cspl_RAM_revB2_29.65.0.wmfw +cirrus/cs35l41/v6.39.0/halo_cspl_RAM_revB2_29.41.0.wmfw +cirrus/cs35l41/v6.80.0/halo_cspl_RAM_revB2_29.82.0.wmfw +cirrus/cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw +cirrus/cs35l41/v6.68.0/halo_cspl_RAM_revB2_29.70.0.wmfw +cirrus/cs35l41/v6.56.0/halo_cspl_RAM_revB2_29.58.0.wmfw +cirrus/cs35l41/v6.83.0/halo_cspl_RAM_revB2_29.85.0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431054-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be7-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2317-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a31-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431b93.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431503-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be2-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10433011-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid1-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-10431a83-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431433-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8c68.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10433e20-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10431f63-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4f-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a60-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa386e-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bdf-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431054.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280beb.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8cdf-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433ff0-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-104316d3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c9f-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431044-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be1-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104316f3.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8995.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid1-l0.bincfg +cirrus/cs35l54-b0-dsp1-misc-103c8e19.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431ee2-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431054-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e12-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-104312b4-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bdd-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433e00-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8a29-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa390d-spkid0.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8e1a-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9b-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38f9-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c51-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431cef-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104316a3.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8d86-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid0-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-17aa390d-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10280b27-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4f-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431034-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104316d3-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid1-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-17aa3905.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431294-spkid0-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8e17-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c66-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa231a-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8c4f.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a40-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9b.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431024-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431483-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8e60-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-10433a30-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2b-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431493-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2e-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431da2-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b43.wmfw +cirrus/cs35l41-dsp1-spk-prot.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10431863-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c49.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b74.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2318-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a20-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2316-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10251844-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a6e-l1.bin +cirrus/cs35l41-dsp1-spk-prot-10431493-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e3b-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-10433e20-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2318-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8b43.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c26.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e62-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b8f-l1.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cde.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431ccf-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a30.wmfw +cirrus/cs35l41-dsp1-spk-prot-10433391-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bde-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c46.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c15-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2319-r0.bincfg +cirrus/cs35l54-b0-dsp1-misc-103c8d86-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10431683-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c15-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10433a60.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e60-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e36-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9c.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be7-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c9f.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa391b-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c71.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38ab-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be7-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c89c3.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431493-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e11-spkid0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9b-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38c8-spkid1-l1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c49.wmfw +cirrus/cs35l41-dsp1-spk-prot-10433011-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8975-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2c-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid0-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8f-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10433391-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431d1f-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3932-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-104388f4.wmfw +cirrus/cs35l56-b0-dsp1-misc-103c8d90.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431f43.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid1-amp1.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d01-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-1f660105.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c6a-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431683-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10431b93-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid1-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid2-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-10433a50.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cbd.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9d-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da1-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8a2d-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433061-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431da2.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa2319-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be0-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431a8f-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b46.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa392d-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a20-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104388f4-spkid0.bin +cirrus/cs35l56-b0-dsp1-misc-10431df3-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8b42.bin +cirrus/cs35l41-dsp1-spk-prot-10431caf.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c51.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431f63.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3910-spkid1-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431054-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104330d1.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8d08-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cdf.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3921-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be6-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431df3-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10433011-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da8.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa390c-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid2.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be1.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa38b6-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2a-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da8-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be3-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa390d-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bde.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid2-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-103c896e.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cbf.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431863-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid1-l1.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c17.wmfw +cirrus/cs35l41-dsp1-spk-prot-104316d3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a50-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280b28-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e36.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c89c3-l1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be5-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c50-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2318.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431663.wmfw +cirrus/cs35l56-b0-dsp1-misc-103c8c52-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2317-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433071-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431e13.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa231a.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8e19-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid0-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbe-spkid1-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-17aa392d-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-104330d1-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8981-r1.bin +cirrus/cs35l41-dsp1-spk-prot-104314d3.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cbe.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid3.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431034-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431c9f-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431683-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2d-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431034-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b3a-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431294-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3910-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid0-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-103c89c6.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-17aa231a-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid1-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-17aa391b-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b6-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be3-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38a9.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be6-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433011.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa392e-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10431433-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid1-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f3.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e37.wmfw +cirrus/cs35l41-dsp1-spk-prot-104330d1-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid0-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da7-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3847-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb4.wmfw +cirrus/cs35l41-dsp1-spk-prot-104312b4.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid1-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-17aa390b-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-104316a3-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c66-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c15-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be8-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa233c-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10251826-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbf-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8b77.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431da2-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431483-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433e20-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a30-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280beb-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8f.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431024-spkid0-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1-amp3.bin +cirrus/cs35l56-b0-dsp1-misc-17aa380e-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431044-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cde-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-10433a20-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8974.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be1-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c67-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8c52-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431b93-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid0-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a50-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8c52-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid0-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2e.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa391e-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10431483-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid0-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-17aa233b-spkid0.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa233c-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c89c3-r1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b4-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431a63-spkid1-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431024-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431454-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid1-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-103c8c53-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c89c3-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431ccf.wmfw +cirrus/cs35l41-dsp1-spk-prot-10433d88.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8b8f-r1.bin +cirrus/cs35l41-dsp1-spk-prot-10433ff0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431cdf-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8e1b-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38ab-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8d92-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3847-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b5-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433391-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c43.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431fb3.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8d9e-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-104316a3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431533.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8981-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa386e.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8bb4-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10431573-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da0-spkid1.bin +cirrus/cs35l56-b0-dsp1-misc-10280c6b-spkid1-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10431f63-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433e00-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b8f-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b7-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e3b.wmfw +cirrus/cs35l41-dsp1-spk-prot-104314d3-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa38b7.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431ed3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431f62-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2c-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431c33.wmfw +cirrus/cs35l56-b0-dsp1-misc-103c8d92-amp1.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8c.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a6e-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38ab.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8b8f-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433071-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c9f-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431e63-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c71.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c51-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-1025182c.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c70.bin +cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid1-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid1.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38c8.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e3b-spkid1.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3905-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid1-r1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e62.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a29-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431463-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431cdf-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid1-r0.bincfg +cirrus/cs35l54-b0-dsp1-misc-103c8d86.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid0-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38c8-spkid1-r1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa386e-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431503-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8ad8.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c15.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8cdf-spkid0-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d85-amp4.bin +cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c4e-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431473-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8a31.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c89c6-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8e16-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431f1f-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cf5-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280b27-spkid1.bin +cirrus/cs35l56-b0-dsp1-misc-103c8e1c.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431caf-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104330c1-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8d90-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be9.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be2-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3832-spkid1-ampr.bin +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10431a83.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8ce0-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433e00-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280c63-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2b-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433e20-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431433-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8d91-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid3-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e61.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8981-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104314d3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8ca4.wmfw +cirrus/cs35l54-b0-dsp1-misc-103c8d8d.wmfw +cirrus/cs35l41-dsp1-spk-prot-104330d1-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid0-ampl.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c47.bin +cirrus/cs35l56-b0-dsp1-misc-10280c62-spkid1-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10431433-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10433fd0-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8c53-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be2-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid1-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a60-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431433-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104314d3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid0-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431264-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-104314e3.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431d1f-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be6.wmfw +cirrus/cs35l41-dsp1-spk-prot-1025182c-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431473.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3910-spkid1-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-103c8e2c-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a28-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c896e-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b45.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a29.wmfw +cirrus/cs35l41-dsp1-spk-prot-10251844.wmfw +cirrus/cs35l56-b0-dsp1-misc-17aa3911-spkid0-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10431a8f-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2c-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8994.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10431caf-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8972.bin +cirrus/cs35l41-dsp1-spk-prot-10431194-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid1-amp1.bin +cirrus/cs35l56-b0-dsp1-misc-17aa390c-spkid1-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa386f.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280d33-spkid0-amp2.bin +cirrus/cs35l54-b0-dsp1-misc-103c8e16.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8cdd-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bdd-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c43-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104331e1-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431503-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433fd0-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431863.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c898f.bin +cirrus/cs35l41-dsp1-spk-prot-10433a30-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8d90-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c50-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104331e1-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be9-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e11.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce6-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-17aa22f1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10433071-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be9-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431b13-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce7-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431a83-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2d-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2319-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-104312b4-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431483.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c51-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b3a-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431663-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-10431194-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3921-spkid1-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-10433d88-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8994.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8cf5-l1.bin +cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e62-spkid1.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-17aa2316.wmfw +cirrus/cs35l41-dsp1-spk-prot-104312af-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38fa-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8c53.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c6a.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431573-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8c52-amp4.bin +cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8cdd.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c50.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-17aa38b4-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid0.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431c63-spkid0.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431e83-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa2319-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f2.wmfw +cirrus/cs35l41-dsp1-spk-prot-104330c1-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c89e7.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2e-spkid0-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8e14-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2c.wmfw +cirrus/cs35l41-dsp1-spk-prot-104312af-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431a8f-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8991.bin +cirrus/cs35l41-dsp1-spk-prot-10431573-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431c33-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b44.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8c46.wmfw +cirrus/cs35l41-dsp1-spk-prot-10433a60-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce4-spkid3-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38fa-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431294.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431454-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8d9f.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8ca7.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be8-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38a9-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104331f1-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431454-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3847-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8da0-spkid0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8d92.wmfw +cirrus/cs35l56-b0-dsp1-misc-10431034-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8e3a-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8be1-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8975.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a2c-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c898e.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431863-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d13-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a2d.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8e37-spkid0.bin +cirrus/cs35l41-dsp1-spk-prot-10433391-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc1-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433a60-spkid0-r0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d8e-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c17-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10431024-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa38a9-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38c8-spkid1-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid1.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280c4d-spkid0-l1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b5-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a28-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid0-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-17aa22f1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc4-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c72.bin +cirrus/cs35l41-dsp1-spk-prot-17aa3847.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431074-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8ad8.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid0-r0.bincfg +cirrus/cs35l56-b0-dsp1-misc-17aa3911-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8be0-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cbd-spkid0-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-104330e1-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c68-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b74.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid3-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c68-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c50-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8b63-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104316a3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38f9.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8a2b-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8d91-amp2.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a31-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431f62.wmfw +cirrus/cs35l41-dsp1-spk-prot-17aa22f2-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8c68-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38f9-spkid1-l0.bin +cirrus/cs35l54-b0-dsp1-misc-103c8d08.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cc3-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8c52.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431fb3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10433d78-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid0-ampr.bin +cirrus/cs35l41-dsp1-spk-prot-10431d1f-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-103c8c53-amp1.bin +cirrus/cs35l41-dsp1-spk-prot-104318d3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431cdf-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c6a-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38ab-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa386e-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431fb3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-104316d3-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8c26.bin +cirrus/cs35l41-dsp1-spk-prot-10433061-spkid0-l0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d32-spkid1-amp3.bin +cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid0-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8c4d-spkid1-l0.bin +cirrus/cs35l56-b0-dsp1-misc-17aa3838-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10280cc2-spkid1-l0.bincfg +cirrus/cs35l56-b0-dsp1-misc-10431df3.wmfw +cirrus/cs35l56-b0-dsp1-misc-10280ce5-spkid0.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431c03-spkid0-r0.bin +cirrus/cs35l56-b0-dsp1-misc-10280d12-spkid0-amp2.bin +cirrus/cs35l56-b0-dsp1-misc-10280ce3-spkid3.wmfw +cirrus/cs35l41-dsp1-spk-prot-104317f3-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431463-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-104314e3-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8a29-spkid0-r0.bin +cirrus/cs35l41-dsp1-spk-prot-17aa38b6-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid1-r0.bincfg +cirrus/cs35l41-dsp1-spk-prot-103c8a2b.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431ee2.wmfw +cirrus/cs35l41-dsp1-spk-prot-103c8bb3-spkid1-l0.bincfg +cirrus/cs35l41-dsp1-spk-prot-10280c4d.wmfw +cirrus/cs35l41-dsp1-spk-prot-10431683-spkid1-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431cef-spkid0-l0.bin +cirrus/cs35l41-dsp1-spk-prot-10431a8f-spkid1-r0.bin +cirrus/cs35l41-dsp1-spk-prot-10431da2-spkid0-l0.bin cis/3CXEM556.cis -cis/3CCFEM556.cis cis/LA-PCM.cis -cis/PCMLM28.cis -cis/SW_8xx_SER.cis +cis/PE-200.cis cis/MT5634ZLX.cis -cis/DP83903.cis +cis/PE520.cis cis/NE2K.cis cis/RS-COM-2P.cis +cis/COMpad4.cis +cis/PCMLM28.cis +cis/DP83903.cis +cis/SW_7xx_SER.cis +cis/SW_8xx_SER.cis +cis/3CCFEM556.cis cis/SW_555_SER.cis -cis/PE520.cis -cis/PE-200.cis -cis/COMpad2.cis cis/tamarack.cis +cis/COMpad2.cis cmmb_vega_12mhz.inp cmmb_venice_12mhz.inp -cnm/wave633c_imx9_codec_fw.bin cnm/wave521c_k3_codec_fw.bin +cnm/wave633c_imx9_codec_fw.bin cpia2/stv0672_vp4.bin cs42l43.bin ct2fw-3.2.5.1.bin ctefx.bin ctfw-3.2.5.1.bin ctspeq.bin -cxgb3/ael2005_opt_edc.bin -cxgb3/t3fw-7.4.0.bin cxgb3/t3b_psram-1.1.0.bin -cxgb3/t3fw-7.1.0.bin +cxgb3/t3fw-7.10.0.bin +cxgb3/t3fw-7.4.0.bin +cxgb3/t3fw-7.12.0.bin cxgb3/ael2020_twx_edc.bin cxgb3/ael2005_twx_edc.bin -cxgb3/t3fw-7.12.0.bin cxgb3/t3fw-7.0.0.bin +cxgb3/t3fw-7.1.0.bin cxgb3/t3c_psram-1.1.0.bin -cxgb3/t3fw-7.10.0.bin -cxgb4/t5-config.txt +cxgb3/ael2005_opt_edc.bin cxgb4/configs/t6-config-default.txt cxgb4/configs/t5-config-default.txt -cxgb4/configs/t6-config-hashfilter.txt cxgb4/configs/t4-config-default.txt cxgb4/configs/t5-config-hashfilter.txt -cxgb4/bcm8483.bin +cxgb4/configs/t6-config-hashfilter.txt cxgb4/t6-config.txt -cxgb4/t5fw-1.14.4.0.bin -cxgb4/t4fw-1.27.5.0.bin cxgb4/t5fw-1.27.5.0.bin -cxgb4/t4fw-1.15.37.0.bin +cxgb4/t4fw-1.14.4.0.bin +cxgb4/t5fw-1.14.4.0.bin +cxgb4/t4-config.txt cxgb4/aq1202_fw.cld +cxgb4/t4fw-1.15.37.0.bin +cxgb4/t4fw-1.27.5.0.bin +cxgb4/t5-config.txt +cxgb4/t4fw.bin +cxgb4/t5fw-1.15.37.0.bin +cxgb4/bcm8483.bin cxgb4/t6fw.bin cxgb4/t6fw-1.27.5.0.bin -cxgb4/t4-config.txt -cxgb4/t5fw-1.15.37.0.bin -cxgb4/t4fw-1.14.4.0.bin cxgb4/t5fw.bin -cxgb4/t4fw.bin -cypress/cyfmac4356-sdio.bin -cypress/cyfmac4373-sdio.bin -cypress/cyfmac43430-sdio.bin -cypress/cyfmac4356-pcie.clm_blob -cypress/cyfmac43570-pcie.clm_blob -cypress/cyfmac54591-pcie.clm_blob -cypress/cyfmac43340-sdio.bin -cypress/cyfmac4339-sdio.bin -cypress/cyfmac4356-sdio.clm_blob cypress/cyfmac43430-sdio.clm_blob -cypress/cyfmac4356-pcie.bin -cypress/cyfmac4354-sdio.bin +cypress/cyfmac4373-sdio.clm_blob +cypress/cyfmac43430-sdio.bin cypress/cyfmac43570-pcie.bin cypress/cyfmac43362-sdio.bin +cypress/cyfmac54591-pcie.clm_blob +cypress/cyfmac43455-sdio.bin +cypress/cyfmac4339-sdio.bin +cypress/cyfmac4354-sdio.bin +cypress/cyfmac43012-sdio.bin +cypress/cyfmac43012-sdio.clm_blob cypress/cyfmac4354-sdio.clm_blob cypress/cyfmac43455-sdio.clm_blob -cypress/cyfmac43012-sdio.bin -cypress/cyfmac4373-sdio.clm_blob +cypress/cyfmac4356-pcie.clm_blob +cypress/cyfmac4356-sdio.bin +cypress/cyfmac4373-sdio.bin +cypress/cyfmac4356-sdio.clm_blob +cypress/cyfmac43570-pcie.clm_blob cypress/cyfmac54591-pcie.bin -cypress/cyfmac43455-sdio.bin -cypress/cyfmac43012-sdio.clm_blob +cypress/cyfmac43340-sdio.bin +cypress/cyfmac4356-pcie.bin dabusb/bitstream.bin dabusb/firmware.fw -dpaa2/mc/mc_10.16.2_ls1088a.itb -dpaa2/mc/mc_10.14.3_ls2088a.itb -dpaa2/mc/mc_10.28.1_ls2088a.itb -dpaa2/mc/mc_10.10.0_ls2088a.itb -dpaa2/mc/mc_10.14.3_ls1088a.itb -dpaa2/mc/mc_10.18.0_lx2160a.itb -dpaa2/mc/mc_10.10.0_ls1088a.itb -dpaa2/mc/mc_10.18.0_ls1088a.itb -dpaa2/mc/mc_10.16.2_ls2088a.itb -dpaa2/mc/mc_10.16.2_lx2160a.itb dpaa2/mc/mc_10.18.0_ls2088a.itb -dpaa2/mc/mc_10.14.3_lx2160a.itb +dpaa2/mc/mc_10.16.2_ls1088a.itb +dpaa2/mc/mc_10.18.0_ls1088a.itb dpaa2/mc/mc_10.28.1_lx2160a.itb -dpaa2/mc/mc_10.28.1_ls1088a.itb +dpaa2/mc/mc_10.16.2_lx2160a.itb +dpaa2/mc/mc_10.14.3_ls2088a.itb +dpaa2/mc/mc_10.10.0_ls1088a.itb +dpaa2/mc/mc_10.18.0_lx2160a.itb dpaa2/mc/mc_10.10.0_lx2160a.itb +dpaa2/mc/mc_10.14.3_ls1088a.itb +dpaa2/mc/mc_10.28.1_ls1088a.itb +dpaa2/mc/mc_10.28.1_ls2088a.itb +dpaa2/mc/mc_10.16.2_ls2088a.itb +dpaa2/mc/mc_10.14.3_lx2160a.itb +dpaa2/mc/mc_10.10.0_ls2088a.itb dsp56k/bootstrap.bin dvb-fe-xc4000-1.4.1.fw dvb-fe-xc5000-1.6.114.fw @@ -2585,383 +2585,383 @@ dvb-usb-it9135-02.fw dvb-usb-terratec-h5-drxk.fw dvb_nova_12mhz.inp dvb_nova_12mhz_b0.inp -e100/d101m_ucode.bin e100/d102e_ucode.bin e100/d101s_ucode.bin -edgeport/boot.fw -edgeport/boot2.fw -edgeport/down.fw +e100/d101m_ucode.bin edgeport/down2.fw +edgeport/boot2.fw edgeport/down3.bin -emi26/firmware.fw +edgeport/down.fw +edgeport/boot.fw emi26/loader.fw emi26/bitstream.fw -emi62/spdif.fw +emi26/firmware.fw emi62/loader.fw +emi62/spdif.fw emi62/midi.fw emi62/bitstream.fw -ene-ub6250/sd_rdwr.bin -ene-ub6250/sd_init1.bin -ene-ub6250/ms_rdwr.bin ene-ub6250/sd_init2.bin -ene-ub6250/ms_init.bin +ene-ub6250/sd_init1.bin ene-ub6250/msp_rdwr.bin -ess/maestro3_assp_minisrc.fw +ene-ub6250/ms_rdwr.bin +ene-ub6250/ms_init.bin +ene-ub6250/sd_rdwr.bin ess/maestro3_assp_kernel.fw +ess/maestro3_assp_minisrc.fw f2255usb.bin -go7007/px-tv402u.fw go7007/lr192.fw +go7007/wis-startrek.fw +go7007/px-tv402u.fw +go7007/px-m402u.fw +go7007/go7007tv.bin go7007/s2250-1.fw go7007/s2250-2.fw -go7007/wis-startrek.fw -go7007/go7007tv.bin go7007/go7007fw.bin -go7007/px-m402u.fw hfi1_dc8051.fw hfi1_fabric.fw hfi1_pcie.fw hfi1_sbus.fw htc_7010.fw htc_9271.fw -i915/skl_guc_ver9_33.bin -i915/icl_guc_69.0.3.bin -i915/dg2_dmc_ver2_07.bin -i915/tgl_guc_49.0.1.bin -i915/bxt_huc_ver01_8_2893.bin -i915/kbl_guc_33.0.0.bin -i915/kbl_huc_4.0.0.bin -i915/glk_guc_32.0.3.bin -i915/dg2_huc_gsc.bin -i915/adlp_dmc.bin -i915/bxt_guc_ver8_7.bin -i915/tgl_guc_70.1.1.bin -i915/dg1_huc.bin -i915/tgl_huc_7.0.12.bin -i915/adlp_guc_70.1.1.bin -i915/ehl_huc_9.0.0.bin -i915/kbl_guc_69.0.3.bin -i915/skl_guc_33.0.0.bin -i915/icl_guc_49.0.1.bin -i915/icl_guc_32.0.3.bin -i915/tgl_guc_62.0.0.bin -i915/glk_guc_62.0.0.bin -i915/skl_guc_ver4.bin -i915/skl_guc_ver6_1.bin -i915/skl_huc_2.0.0.bin -i915/dg2_dmc_ver2_06.bin -i915/icl_huc_ver8_4_3238.bin -i915/cml_guc_49.0.1.bin -i915/kbl_guc_70.1.1.bin -i915/adlp_guc_69.0.3.bin -i915/glk_dmc_ver1_04.bin -i915/adlp_dmc_ver2_16.bin -i915/dg1_guc_70.1.1.bin -i915/bxt_guc_32.0.3.bin -i915/tgl_dmc_ver2_12.bin -i915/dg2_guc_70.1.2.bin -i915/skl_dmc_ver1.bin -i915/dg2_guc_70.4.1.bin -i915/tgl_huc_7.0.3.bin -i915/icl_guc_62.0.0.bin -i915/bxt_guc_49.0.1.bin -i915/mtl_gsc_1.bin -i915/skl_guc_69.0.3.bin -i915/cml_guc_70.1.1.bin -i915/mtl_dmc_ver2_10.bin -i915/dg1_guc_70.bin -i915/dg1_huc_7.9.3.bin -i915/adlp_dmc_ver2_12.bin -i915/skl_guc_ver1.bin -i915/cml_guc_62.0.0.bin -i915/cml_guc_69.0.3.bin -i915/tgl_guc_70.bin -i915/bxt_guc_62.0.0.bin -i915/tgl_dmc_ver2_04.bin -i915/icl_dmc_ver1_07.bin -i915/kbl_dmc_ver1_04.bin -i915/tgl_guc_35.2.0.bin -i915/bxt_dmc_ver1_07.bin -i915/kbl_dmc_ver1_01.bin -i915/mtl_huc_gsc.bin -i915/skl_guc_62.0.0.bin i915/tgl_huc_7.5.0.bin -i915/skl_guc_32.0.3.bin -i915/rkl_dmc_ver2_02.bin -i915/ehl_guc_33.0.4.bin -i915/glk_guc_69.0.3.bin -i915/tgl_huc.bin -i915/glk_guc_33.0.0.bin -i915/skl_guc_70.1.1.bin -i915/bxt_guc_69.0.3.bin -i915/kbl_huc_ver02_00_1810.bin -i915/adlp_guc_62.0.3.bin -i915/cnl_dmc_ver1_07.bin -i915/bxt_huc_2.0.0.bin -i915/kbl_dmc_ver1.bin -i915/kbl_guc_ver9_14.bin -i915/cnl_dmc_ver1_06.bin -i915/kbl_guc_49.0.1.bin -i915/kbl_guc_32.0.3.bin -i915/skl_dmc_ver1_26.bin -i915/xe3lpd_dmc.bin -i915/bmg_dmc.bin -i915/dg1_huc_7.7.1.bin -i915/tgl_dmc_ver2_06.bin -i915/kbl_guc_62.0.0.bin -i915/icl_guc_33.0.0.bin -i915/cml_huc_4.0.0.bin -i915/tgl_dmc_ver2_08.bin -i915/bxt_guc_ver9_29.bin -i915/mtl_guc_70.bin -i915/tgl_guc_69.0.3.bin -i915/adlp_dmc_ver2_14.bin -i915/dg1_guc_49.0.1.bin -i915/dg1_guc_62.0.0.bin -i915/dg2_dmc_ver2_08.bin -i915/adls_dmc_ver2_01.bin -i915/bxt_dmc_ver1.bin -i915/xe2lpd_dmc.bin -i915/glk_guc_49.0.1.bin -i915/dg1_dmc_ver2_02.bin -i915/icl_guc_70.1.1.bin -i915/adlp_dmc_ver2_10.bin -i915/bxt_guc_70.1.1.bin -i915/skl_guc_49.0.1.bin -i915/skl_dmc_ver1_23.bin -i915/cml_guc_33.0.0.bin -i915/ehl_guc_70.1.1.bin -i915/mtl_dmc.bin -i915/kbl_guc_ver9_39.bin -i915/dg2_guc_70.bin -i915/icl_dmc_ver1_09.bin -i915/skl_huc_ver01_07_1398.bin -i915/ehl_guc_49.0.1.bin -i915/glk_guc_70.1.1.bin -i915/icl_huc_9.0.0.bin -i915/glk_huc_ver03_01_2893.bin -i915/skl_guc_ver6.bin -i915/bxt_guc_33.0.0.bin -i915/rkl_dmc_ver2_03.bin -i915/ehl_guc_62.0.0.bin -i915/ehl_guc_69.0.3.bin -i915/adlp_dmc_ver2_09.bin i915/skl_dmc_ver1_27.bin -i915/glk_huc_4.0.0.bin i915/adlp_guc_70.bin i915/dg1_guc_69.0.3.bin +i915/bxt_guc_70.1.1.bin +i915/ehl_guc_70.1.1.bin +i915/skl_guc_33.0.0.bin +i915/kbl_dmc_ver1_04.bin +i915/adlp_dmc.bin +i915/bxt_guc_ver8_7.bin +i915/kbl_dmc_ver1.bin +i915/skl_guc_ver6.bin +i915/kbl_guc_70.1.1.bin +i915/tgl_huc_7.0.12.bin +i915/dg1_guc_49.0.1.bin +i915/tgl_dmc_ver2_08.bin +i915/mtl_guc_70.bin +i915/glk_guc_70.1.1.bin +i915/bxt_guc_69.0.3.bin +i915/skl_guc_ver1.bin +i915/ehl_huc_9.0.0.bin +i915/icl_huc_9.0.0.bin +i915/mtl_dmc.bin +i915/bxt_guc_32.0.3.bin +i915/kbl_huc_4.0.0.bin +i915/mtl_gsc_1.bin +i915/skl_huc_2.0.0.bin +i915/skl_guc_32.0.3.bin +i915/icl_guc_62.0.0.bin +i915/skl_huc_ver01_07_1398.bin +i915/skl_guc_70.1.1.bin +i915/tgl_huc_7.0.3.bin +i915/skl_guc_69.0.3.bin +i915/skl_guc_49.0.1.bin +i915/tgl_guc_62.0.0.bin +i915/tgl_guc_70.bin +i915/adlp_dmc_ver2_12.bin +i915/adls_dmc_ver2_01.bin +i915/skl_guc_ver6_1.bin +i915/kbl_dmc_ver1_01.bin +i915/dg2_huc_gsc.bin +i915/glk_guc_33.0.0.bin +i915/cml_guc_62.0.0.bin +i915/kbl_guc_ver9_14.bin +i915/tgl_guc_35.2.0.bin +i915/dg2_dmc_ver2_07.bin +i915/dg1_huc.bin +i915/tgl_guc_49.0.1.bin +i915/dg1_huc_7.7.1.bin +i915/skl_guc_62.0.0.bin +i915/icl_guc_70.1.1.bin +i915/adlp_guc_62.0.3.bin +i915/adlp_dmc_ver2_09.bin +i915/cml_huc_4.0.0.bin +i915/dg2_dmc_ver2_08.bin +i915/tgl_huc.bin +i915/icl_guc_49.0.1.bin +i915/bxt_guc_62.0.0.bin +i915/cnl_dmc_ver1_06.bin i915/tgl_huc_7.9.3.bin +i915/tgl_dmc_ver2_12.bin +i915/kbl_huc_ver02_00_1810.bin +i915/dg2_guc_70.bin +i915/kbl_guc_ver9_39.bin +i915/cml_guc_70.1.1.bin +i915/xe2lpd_dmc.bin +i915/tgl_guc_69.0.3.bin +i915/bxt_guc_33.0.0.bin +i915/skl_dmc_ver1.bin +i915/icl_huc_ver8_4_3238.bin +i915/kbl_guc_69.0.3.bin +i915/cml_guc_33.0.0.bin +i915/mtl_huc_gsc.bin +i915/skl_dmc_ver1_26.bin +i915/skl_guc_ver9_33.bin +i915/glk_huc_4.0.0.bin +i915/mtl_dmc_ver2_10.bin +i915/adlp_dmc_ver2_16.bin +i915/cnl_dmc_ver1_07.bin +i915/dg2_guc_70.4.1.bin +i915/skl_dmc_ver1_23.bin +i915/kbl_guc_49.0.1.bin +i915/icl_guc_33.0.0.bin +i915/kbl_guc_33.0.0.bin +i915/icl_guc_69.0.3.bin +i915/xe3lpd_dmc.bin +i915/adlp_dmc_ver2_14.bin +i915/dg1_guc_70.bin +i915/bmg_dmc.bin +i915/dg2_dmc_ver2_06.bin +i915/bxt_dmc_ver1.bin +i915/glk_guc_49.0.1.bin +i915/ehl_guc_33.0.4.bin +i915/tgl_dmc_ver2_06.bin +i915/kbl_guc_62.0.0.bin +i915/bxt_huc_2.0.0.bin +i915/tgl_dmc_ver2_04.bin +i915/adlp_dmc_ver2_10.bin +i915/rkl_dmc_ver2_03.bin +i915/dg1_huc_7.9.3.bin +i915/glk_huc_ver03_01_2893.bin +i915/bxt_guc_49.0.1.bin +i915/rkl_dmc_ver2_02.bin +i915/dg1_guc_62.0.0.bin +i915/glk_guc_62.0.0.bin +i915/adlp_guc_70.1.1.bin +i915/kbl_guc_32.0.3.bin +i915/icl_guc_32.0.3.bin +i915/tgl_guc_70.1.1.bin +i915/cml_guc_69.0.3.bin +i915/bxt_huc_ver01_8_2893.bin +i915/glk_guc_69.0.3.bin +i915/icl_dmc_ver1_07.bin +i915/bxt_guc_ver9_29.bin +i915/bxt_dmc_ver1_07.bin +i915/dg1_dmc_ver2_02.bin +i915/dg1_guc_70.1.1.bin +i915/adlp_guc_69.0.3.bin +i915/dg2_guc_70.1.2.bin +i915/skl_guc_ver4.bin +i915/cml_guc_49.0.1.bin +i915/ehl_guc_69.0.3.bin i915/bxt_huc_ver01_07_1398.bin +i915/ehl_guc_62.0.0.bin +i915/glk_guc_32.0.3.bin +i915/ehl_guc_49.0.1.bin +i915/icl_dmc_ver1_09.bin +i915/glk_dmc_ver1_04.bin imx/sdma/sdma-imx7d.bin imx/sdma/sdma-imx6q.bin inside-secure/eip197_minifw/ipue.bin inside-secure/eip197_minifw/ifpp.bin -intel/ibt-0180-1050.ddc -intel/ibt-hw-37.7.10-fw-1.80.1.2d.d.bseq -intel/ibt-19-32-4.sfi +intel/ibt-0040-1020.ddc intel/dsp_fw_kbl.bin -intel/ibt-0291-0291.sfi -intel/vsc/ivsc_skucfg_ovti2740_0_1.bin -intel/vsc/ivsc_pkg_himx2172_0.bin -intel/vsc/ivsc_pkg_himx11b1_0.bin -intel/vsc/ivsc_skucfg_hi556_0_1.bin -intel/vsc/ivsc_pkg_ovti9734_0.bin -intel/vsc/ivsc_pkg_int3537_0.bin -intel/vsc/ivsc_skucfg_himx2172_0_1.bin -intel/vsc/ivsc_pkg_hi556_0.bin -intel/vsc/ivsc_pkg_ovti02e1_0.bin -intel/vsc/ivsc_skucfg_int3537_0_1.bin -intel/vsc/ivsc_pkg_ovti01a0_0.bin -intel/vsc/ivsc_pkg_ovti02c1_0.bin -intel/vsc/ivsc_skucfg_ovti01as_0_1.bin -intel/vsc/ivsc_skucfg_ovti02e1_0_1.bin -intel/vsc/ivsc_pkg_ovti2740_0.bin -intel/vsc/ivsc_skucfg_ovti5678_0_1.bin -intel/vsc/ivsc_pkg_himx2170_0.bin -intel/vsc/ivsc_skucfg_himx2170_0_1.bin -intel/vsc/ivsc_pkg_ovti5678_0.bin -intel/vsc/ivsc_pkg_ovti01af_0.bin -intel/vsc/ivsc_skucfg_ovti9738_0_1.bin -intel/vsc/ivsc_pkg_ovti01as_0.bin -intel/vsc/ivsc_skucfg_ovti02c1_0_1.bin -intel/vsc/ivsc_pkg_ovti9738_0.bin -intel/vsc/ivsc_skucfg_ovti01af_0_1.bin -intel/vsc/ivsc_fw.bin -intel/vsc/ivsc_skucfg_himx11b1_0_1.bin -intel/vsc/ivsc_skucfg_ovti01a0_0_1.bin -intel/vsc/ivsc_skucfg_ovti9734_0_1.bin -intel/dsp_fw_release.bin -intel/ibt-1040-2120.ddc -intel/ibt-19-32-0.ddc -intel/ibt-1040-1020.ddc -intel/ibt-hw-37.7.10-fw-1.0.2.3.d.bseq -intel/fw_sst_0f28.bin -intel/dsp_fw_cnl_v1858.bin -intel/ibt-0040-4150.sfi -intel/ibt-0180-4150.sfi -intel/ibt-20-1-3.ddc -intel/ibt-0190-0291.sfi -intel/catpt/bdw/dsp_basefw.bin -intel/dsp_fw_kbl_v1037.bin -intel/ibt-19-0-4.ddc -intel/ibt-19-240-4.sfi intel/ibt-18-2.ddc +intel/dsp_fw_kbl_v1037.bin +intel/ibt-19-32-1.ddc +intel/ibt-0093-0041.sfi +intel/ibt-19-0-0.ddc +intel/ibt-18-16-1.sfi +intel/ibt-1040-1020.sfi +intel/ibt-1040-4150.sfi +intel/ibt-hw-37.7.bseq +intel/ibt-0040-2120.sfi +intel/ibt-0180-1050.sfi +intel/ibt-19-0-4.ddc +intel/ibt-0040-1050.sfi +intel/ibt-0093-0291.sfi +intel/vpu/vpu_40xx_v0.0.bin +intel/vpu/vpu_40xx_v1.bin +intel/vpu/vpu_37xx_v1.bin +intel/vpu/vpu_37xx_v0.0.bin +intel/dsp_fw_bxtn.bin +intel/ibt-19-32-0.ddc +intel/ibt-20-0-3.sfi +intel/fw_sst_22a8.bin +intel/ibt-20-1-3.sfi +intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq +intel/irci_irci_ecr-master_20161208_0213_20170112_1500.bin +intel/dsp_fw_kbl_v701.bin +intel/ibt-19-32-4.ddc +intel/ibt-18-0-1.sfi +intel/ibt-19-0-3.ddc +intel/ibt-0040-1020.sfi +intel/ibt-0190-0041.ddc +intel/ibt-19-16-4.ddc +intel/ibt-12-16.ddc +intel/ibt-1040-1050.ddc +intel/ibt-17-2.sfi +intel/ibt-1040-2120.ddc +intel/ibt-0180-4150.ddc +intel/ibt-0040-2120.ddc +intel/IntcSST2.bin +intel/ibt-19-240-4.sfi +intel/ibt-17-1.sfi intel/ice/ddp-wireless_edge/ice_wireless_edge-1.3.23.0.pkg +intel/ice/ddp/ice.pkg +intel/ice/ddp/ice-1.3.43.0.pkg intel/ice/ddp-comms/ice_comms-1.3.55.0.pkg intel/ice/ddp-lag/ice_lag-1.3.1.0.pkg -intel/ice/ddp/ice-1.3.43.0.pkg -intel/ice/ddp/ice.pkg +intel/ibt-0190-0291-pci.sfi +intel/ibt-19-0-1.ddc +intel/ibt-0190-0041-iml.sfi +intel/ibt-0190-0041-pci.sfi +intel/ibt-1040-1050.sfi +intel/ibt-0190-0291-usb.sfi +intel/dsp_fw_glk_v3366.bin +intel/dsp_fw_release_v969.bin +intel/dsp_fw_glk.bin +intel/fw_sst_0f28_ssp0.bin +intel/ibt-0040-4150.sfi +intel/ibt-17-2.ddc +intel/dsp_fw_kbl_v3266.bin +intel/ibt-17-0-1.sfi +intel/ibt-0190-0291-usb.ddc +intel/ibt-0190-0041-pci.ddc +intel/ibt-17-16-1.sfi +intel/dsp_fw_kbl_v3402.bin +intel/ibt-19-32-0.sfi +intel/dsp_fw_glk_v1814.bin +intel/ibt-hw-37.8.10-fw-1.10.2.27.d.bseq +intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq +intel/ibt-0040-4150.ddc +intel/ibt-0190-0041-usb.sfi +intel/dsp_fw_cnl.bin +intel/ibt-0093-4150.ddc +intel/ibt-0093-0291.ddc +intel/ibt-20-0-3.ddc +intel/dsp_fw_bxtn_v3366.bin +intel/ibt-17-1.ddc +intel/ibt-20-1-3.ddc +intel/dsp_fw_kbl_v3420.bin +intel/dsp_fw_glk_v2880.bin +intel/ibt-0041-0041.ddc +intel/ibt-0041-0041.sfi +intel/ibt-0291-0291.ddc intel/ibt-0190-0291.ddc +intel/ibt-0180-4150.sfi +intel/ibt-19-32-4.sfi +intel/ibt-20-1-4.ddc +intel/vsc/ivsc_pkg_ovti2740_0.bin +intel/vsc/ivsc_fw.bin +intel/vsc/ivsc_pkg_hi556_0.bin +intel/vsc/ivsc_skucfg_himx11b1_0_1.bin +intel/vsc/ivsc_skucfg_himx2172_0_1.bin +intel/vsc/ivsc_pkg_himx11b1_0.bin +intel/vsc/ivsc_pkg_ovti02e1_0.bin +intel/vsc/ivsc_skucfg_ovti01as_0_1.bin +intel/vsc/ivsc_pkg_ovti01a0_0.bin +intel/vsc/ivsc_skucfg_ovti02e1_0_1.bin +intel/vsc/ivsc_pkg_ovti01as_0.bin +intel/vsc/ivsc_pkg_int3537_0.bin +intel/vsc/ivsc_pkg_ovti9734_0.bin +intel/vsc/ivsc_skucfg_ovti9738_0_1.bin +intel/vsc/ivsc_skucfg_ovti9734_0_1.bin +intel/vsc/ivsc_skucfg_ovti2740_0_1.bin +intel/vsc/ivsc_skucfg_ovti01af_0_1.bin +intel/vsc/ivsc_skucfg_int3537_0_1.bin +intel/vsc/ivsc_pkg_ovti02c1_0.bin +intel/vsc/ivsc_skucfg_ovti02c1_0_1.bin +intel/vsc/ivsc_pkg_ovti5678_0.bin +intel/vsc/ivsc_skucfg_hi556_0_1.bin +intel/vsc/ivsc_pkg_ovti01af_0.bin +intel/vsc/ivsc_pkg_ovti9738_0.bin +intel/vsc/ivsc_pkg_himx2170_0.bin +intel/vsc/ivsc_skucfg_ovti01a0_0_1.bin +intel/vsc/ivsc_skucfg_ovti5678_0_1.bin +intel/vsc/ivsc_pkg_himx2172_0.bin +intel/vsc/ivsc_skucfg_himx2170_0_1.bin +intel/ibt-0190-0291.sfi +intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq +intel/dsp_fw_release.bin +intel/ibt-1040-4150.ddc +intel/ipu3-fw.bin +intel/ibt-17-0-1.ddc +intel/catpt/bdw/dsp_basefw.bin +intel/dsp_fw_cnl_v1858.bin +intel/ibt-hw-37.7.10-fw-1.0.1.2d.d.bseq +intel/ibt-19-240-4.ddc +intel/ibt-0190-0291-pci.ddc +intel/ibt-18-1.sfi +intel/ibt-19-0-3.sfi +intel/dsp_fw_cnl_v1191.bin +intel/ibt-11-5.sfi +intel/ibt-0180-1050.ddc +intel/ibt-19-0-0.sfi +intel/ibt-19-16-4.sfi +intel/ibt-12-16.sfi +intel/ibt-0093-4150.sfi +intel/ibt-hw-37.7.10-fw-1.0.2.3.d.bseq +intel/ipu/ipu6epmtl_fw.bin +intel/ipu/irci_irci_ecr-master_20161208_0213_20170112_1500.bin +intel/ipu/ipu7_fw.bin +intel/ipu/ipu6_fw.bin +intel/ipu/shisp_2401a0_v21.bin +intel/ipu/ipu6se_fw.bin +intel/ipu/ipu6epadln_fw.bin +intel/ipu/ipu7ptl_fw.bin +intel/ipu/shisp_2400b0_v21.bin +intel/ipu/ipu6ep_fw.bin intel/ibt-1040-0041.sfi -intel/ibt-18-16-1.sfi -intel/ibt-0180-0041.ddc -intel/avs/hda-generic-1ep-tplg.bin -intel/avs/skl/dsp_basefw.bin -intel/avs/skl/dsp_mod_7CAD0808-AB10-CD23-EF45-12AB34CD56EF.bin -intel/avs/rt286-tplg.bin -intel/avs/ssm4567-tplg.bin -intel/avs/max98927-tplg.bin +intel/ibt-18-0-1.ddc +intel/ibt-1040-0041.ddc +intel/ibt-18-2.sfi +intel/dsp_fw_release_v3402.bin +intel/ibt-0190-0041.sfi +intel/ibt-19-240-1.ddc +intel/ibt-19-0-1.sfi +intel/ibt-18-16-1.ddc +intel/ibt-19-240-1.sfi +intel/dsp_fw_glk_v2768.bin +intel/ibt-0093-1050.sfi +intel/avs/max98373-tplg.bin intel/avs/rt5663-tplg.bin -intel/avs/cnl/dsp_basefw.bin -intel/avs/hda-8086-generic-tplg.bin -intel/avs/rt298-tplg.bin -intel/avs/max98357a-tplg.bin -intel/avs/dmic-tplg.bin -intel/avs/da7219-tplg.bin +intel/avs/rt5640-tplg.bin intel/avs/rt5514-tplg.bin +intel/avs/hda-generic-1ep-tplg.bin +intel/avs/nau8825-tplg.bin +intel/avs/rt298-tplg.bin +intel/avs/rt286-tplg.bin +intel/avs/max98927-tplg.bin +intel/avs/da7219-tplg.bin +intel/avs/hda-generic-tplg.bin +intel/avs/ssm4567-tplg.bin intel/avs/apl/dsp_basefw.bin intel/avs/rt274-tplg.bin -intel/avs/max98373-tplg.bin -intel/avs/rt5640-tplg.bin -intel/avs/hda-generic-tplg.bin intel/avs/hda-808628xx-3ep-tplg.bin -intel/avs/nau8825-tplg.bin -intel/dsp_fw_kbl_v3420.bin -intel/dsp_fw_kbl_v3402.bin -intel/ibt-0093-0291.sfi -intel/ibt-19-0-0.sfi -intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq -intel/fw_sst_0f28.bin-48kHz_i2s_master -intel/ibt-0190-0041-usb.ddc -intel/ibt-0093-0041.ddc -intel/ibt-12-16.sfi -intel/ibt-0190-0041-pci.sfi -intel/ibt-0190-0041-usb.sfi -intel/ibt-hw-37.7.bseq -intel/ibt-18-2.sfi -intel/ibt-17-16-1.ddc -intel/ibt-19-16-4.sfi -intel/ibt-1040-1050.sfi -intel/ibt-19-0-3.ddc -intel/ibt-19-32-1.ddc -intel/ibt-0040-2120.ddc -intel/ibt-18-16-1.ddc -intel/ibt-19-0-1.sfi -intel/ibt-17-0-1.sfi -intel/dsp_fw_bxtn_v3366.bin -intel/fw_sst_22a8.bin -intel/dsp_fw_kbl_v3266.bin -intel/ibt-19-16-4.ddc -intel/ibt-17-16-1.sfi -intel/ibt-0040-2120.sfi -intel/dsp_fw_glk_v2880.bin -intel/dsp_fw_bxtn_v2219.bin -intel/ibt-17-0-1.ddc -intel/ibt-19-0-4.sfi -intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq -intel/ibt-0040-1020.ddc -intel/ibt-12-16.ddc -intel/ibt-18-1.ddc -intel/ibt-0040-1050.sfi -intel/ibt-0190-0291-iml.sfi -intel/dsp_fw_kbl_v2042.bin -intel/ibt-19-240-4.ddc -intel/ibt-0093-1050.sfi -intel/ibt-0180-4150.ddc -intel/ibt-0291-0291.ddc -intel/ibt-0040-0041.ddc -intel/ibt-19-32-4.ddc -intel/ibt-19-0-0.ddc -intel/ibt-0093-0291.ddc -intel/IntcSST2.bin -intel/ibt-0190-0291-usb.sfi -intel/ibt-0041-0041.ddc -intel/ibt-0093-4150.sfi -intel/ibt-0040-0041.sfi -intel/ibt-0190-0041-pci.ddc -intel/ibt-0190-0041-iml.sfi -intel/ibt-19-240-1.sfi -intel/ibt-1040-4150.ddc -intel/ibt-0093-1050.ddc -intel/ibt-0190-0041.sfi -intel/ibt-0040-1050.ddc -intel/ibt-17-2.sfi -intel/ibt-11-5.sfi -intel/dsp_fw_release_v969.bin -intel/ibt-17-2.ddc -intel/ibt-19-0-1.ddc -intel/ibt-20-0-3.sfi -intel/ibt-18-1.sfi -intel/ibt-0093-0041.sfi -intel/ibt-20-1-3.sfi -intel/ibt-1040-1020.sfi -intel/fw_sst_0f28_ssp0.bin -intel/dsp_fw_kbl_v701.bin -intel/ibt-20-1-4.sfi -intel/ibt-0041-0041.sfi -intel/ibt-0040-4150.ddc +intel/avs/hda-8086-generic-tplg.bin +intel/avs/max98357a-tplg.bin +intel/avs/skl/dsp_mod_7CAD0808-AB10-CD23-EF45-12AB34CD56EF.bin +intel/avs/skl/dsp_basefw.bin +intel/avs/dmic-tplg.bin +intel/avs/cnl/dsp_basefw.bin intel/dsp_fw_kbl_v2630.bin -intel/ibt-0190-0291-usb.ddc -intel/ibt-1040-4150.sfi -intel/ibt-1040-1050.ddc -intel/ipu3-fw.bin -intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq -intel/ibt-1040-0041.ddc -intel/dsp_fw_glk_v2768.bin -intel/ibt-0190-0291-pci.ddc -intel/ibt-19-0-3.sfi -intel/ibt-11-5.ddc -intel/dsp_fw_cnl.bin -intel/ibt-19-32-0.sfi -intel/ibt-hw-37.7.10-fw-1.0.1.2d.d.bseq -intel/ibt-19-240-1.ddc -intel/ibt-0093-4150.ddc +intel/ibt-20-1-4.sfi +intel/ibt-hw-37.7.10-fw-1.80.1.2d.d.bseq +intel/ibt-1040-1020.ddc +intel/ibt-0040-0041.sfi intel/ibt-19-32-1.sfi -intel/ibt-0180-0041.sfi -intel/ibt-0190-0291-pci.sfi -intel/dsp_fw_cnl_v1191.bin -intel/ibt-17-1.ddc -intel/ipu/shisp_2400b0_v21.bin -intel/ipu/ipu7_fw.bin -intel/ipu/ipu6se_fw.bin -intel/ipu/ipu6epmtl_fw.bin -intel/ipu/ipu6ep_fw.bin -intel/ipu/ipu7ptl_fw.bin -intel/ipu/ipu6epadln_fw.bin -intel/ipu/shisp_2401a0_v21.bin -intel/ipu/irci_irci_ecr-master_20161208_0213_20170112_1500.bin -intel/ipu/ipu6_fw.bin -intel/dsp_fw_bxtn.bin -intel/ibt-0180-1050.sfi -intel/ibt-20-1-4.ddc -intel/ibt-20-0-3.ddc -intel/ibt-17-1.sfi -intel/irci_irci_ecr-master_20161208_0213_20170112_1500.bin -intel/ibt-0190-0041.ddc -intel/dsp_fw_release_v3402.bin +intel/ibt-18-1.ddc +intel/ibt-0093-0041.ddc +intel/ibt-17-16-1.ddc +intel/fw_sst_0f28.bin +intel/fw_sst_0f28.bin-48kHz_i2s_master +intel/ibt-19-0-4.sfi +intel/ibt-0190-0041-usb.ddc +intel/ibt-0190-0291-iml.sfi intel/ish/ish_lnlm.bin -intel/dsp_fw_glk_v3366.bin -intel/ibt-18-0-1.sfi -intel/vpu/vpu_37xx_v0.0.bin -intel/vpu/vpu_40xx_v1.bin -intel/vpu/vpu_40xx_v0.0.bin -intel/vpu/vpu_37xx_v1.bin -intel/dsp_fw_glk.bin +intel/ibt-0040-0041.ddc intel/ibt-hw-37.8.bseq -intel/dsp_fw_glk_v1814.bin -intel/ibt-18-0-1.ddc +intel/ibt-0180-0041.ddc +intel/ibt-0180-0041.sfi +intel/dsp_fw_kbl_v2042.bin +intel/ibt-0093-1050.ddc +intel/ibt-11-5.ddc intel/ibt-1040-2120.sfi -intel/ibt-hw-37.8.10-fw-1.10.2.27.d.bseq -intel/ibt-0040-1020.sfi +intel/ibt-0040-1050.ddc +intel/dsp_fw_bxtn_v2219.bin +intel/ibt-0291-0291.sfi isci/isci_firmware.bin isdbt_nova_12mhz.inp isdbt_nova_12mhz_b0.inp @@ -3136,301 +3136,301 @@ ixp4xx/NPE-A ixp4xx/NPE-A-HSS ixp4xx/NPE-B ixp4xx/NPE-C -kaweth/new_code.bin kaweth/trigger_code.bin -kaweth/trigger_code_fix.bin +kaweth/new_code.bin kaweth/new_code_fix.bin -keyspan/usa49w.fw -keyspan/usa19qi.fw -keyspan/usa28x.fw -keyspan/usa49wlc.fw -keyspan/usa19qw.fw -keyspan/usa28xb.fw -keyspan/usa18x.fw -keyspan/usa19w.fw -keyspan/usa19.fw -keyspan/mpr.fw +kaweth/trigger_code_fix.bin keyspan/usa28xa.fw +keyspan/usa18x.fw +keyspan/usa19qw.fw +keyspan/mpr.fw +keyspan/usa49w.fw +keyspan/usa19w.fw +keyspan/usa49wlc.fw +keyspan/usa19.fw +keyspan/usa28x.fw keyspan/usa28.fw +keyspan/usa28xb.fw +keyspan/usa19qi.fw keyspan_pda/keyspan_pda.fw keyspan_pda/xircom_pgs.fw korg/k1212.dsp lbtf_usb.bin lgs8g75.fw -libertas/sd8686_v8.bin -libertas/cf8381_helper.bin -libertas/gspi8688.bin -libertas/sd8686_v9.bin -libertas/gspi8682.bin -libertas/sd8682.bin -libertas/usb8388_olpc.bin -libertas/usb8388_v9.bin -libertas/sd8682_helper.bin -libertas/sd8385.bin libertas/gspi8686_v9.bin +libertas/sd8686_v9.bin +libertas/usb8388_v9.bin +libertas/sd8686_v8.bin +libertas/gspi8688.bin libertas/cf8385_helper.bin -libertas/gspi8686_v9_helper.bin -libertas/gspi8688_helper.bin -libertas/sd8686_v8_helper.bin +libertas/sd8682.bin libertas/sd8686_v9_helper.bin -libertas/sd8688.bin -libertas/usb8682.bin -libertas/sd8688_helper.bin -libertas/sd8385_helper.bin -libertas/cf8385.bin +libertas/sd8682_helper.bin +libertas/gspi8682.bin +libertas/sd8686_v8_helper.bin libertas/lbtf_sdio.bin -libertas/usb8388_v5.bin -libertas/cf8381.bin +libertas/sd8385.bin +libertas/sd8688_helper.bin +libertas/gspi8688_helper.bin +libertas/sd8688.bin +libertas/cf8385.bin +libertas/usb8682.bin +libertas/gspi8686_v9_helper.bin libertas/gspi8682_helper.bin -liquidio/lio_210nv_nic.bin -liquidio/lio_210sv_nic.bin -liquidio/lio_410nv_nic.bin +libertas/cf8381.bin +libertas/usb8388_olpc.bin +libertas/cf8381_helper.bin +libertas/sd8385_helper.bin +libertas/usb8388_v5.bin liquidio/lio_23xx_nic.bin +liquidio/lio_210nv_nic.bin +liquidio/lio_410nv_nic.bin +liquidio/lio_210sv_nic.bin lt9611uxc_fw.bin -matrox/g200_warp.fw matrox/g400_warp.fw -mediatek/mt7610e.bin -mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin -mediatek/mt7986_eeprom_mt7976_dual.bin -mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin -mediatek/mt8192/scp.img -mediatek/mt7981_wm.bin +matrox/g200_warp.fw +mediatek/mt7650.bin mediatek/mt7981_wo.bin -mediatek/mt7925/BT_RAM_CODE_MT7925_1_1_hdr.bin -mediatek/mt7925/WIFI_MT7925_PATCH_MCU_1_1_hdr.bin -mediatek/mt7925/WIFI_RAM_CODE_MT7925_1_1.bin -mediatek/mt7601u.bin -mediatek/sof-tplg/sof-mt8188.tplg -mediatek/sof-tplg/sof-mt8186.tplg -mediatek/sof-tplg/sof-mt8195-mt6359-rt1019-rt5682.tplg -mediatek/sof-tplg/sof-mt8195.tplg -mediatek/sof-tplg/sof-mt8195-mt6359-max98390-rt5682.tplg -mediatek/WIFI_RAM_CODE_MT7922_1.bin +mediatek/mt7615_n9.bin mediatek/mt8173/vpu_d.bin mediatek/mt8173/vpu_p.bin -mediatek/mt7668pr2h.bin -mediatek/mt7610u.bin +mediatek/WIFI_RAM_CODE_MT7961_1.bin mediatek/mt7981_wa.bin -mediatek/mt8195/scp.img -mediatek/mt7986_wo_1.bin -mediatek/mt7622_rom_patch.bin -mediatek/mt7986_wo_0.bin -mediatek/mt7988_wo_0.bin -mediatek/mt7916_wm.bin -mediatek/mt8188/scp.img -mediatek/mt7662u_rom_patch.bin -mediatek/mt7622pr2h.bin -mediatek/WIFI_RAM_CODE_MT7961_1a.bin -mediatek/mt8183/scp.img -mediatek/mt7663pr2h_rebb.bin -mediatek/mt7915_wm.bin -mediatek/mt7986_rom_patch.bin -mediatek/mt7915_eeprom_dbdc.bin -mediatek/mt8196/vcp.img -mediatek/mt7662_rom_patch.bin -mediatek/mt7986_rom_patch_mt7975.bin -mediatek/mt7986_eeprom_mt7976.bin -mediatek/mt7986_eeprom_mt7976_dbdc.bin -mediatek/mt7663pr2h.bin -mediatek/mt7650.bin +mediatek/mt7610u.bin mediatek/mt7662.bin -mediatek/mt7988/mt7988_wo_0.bin -mediatek/mt7988/i2p5ge-phy-pmb.bin -mediatek/mt7988/mt7988_wo_1.bin -mediatek/sof/sof-mt8188.ri -mediatek/sof/sof-mt8195.ri -mediatek/sof/sof-mt8186.ldc -mediatek/sof/sof-mt8195.ldc -mediatek/sof/sof-mt8188.ldc -mediatek/sof/sof-mt8186.ri -mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin -mediatek/mt7615_rom_patch.bin -mediatek/mt7916_rom_patch.bin -mediatek/mt7916_eeprom.bin -mediatek/mt7663_n9_rebb.bin -mediatek/BT_RAM_CODE_MT7961_1a_2_hdr.bin -mediatek/mt8186/scp.img -mediatek/mt7915_wa.bin -mediatek/mt7663_n9_v3.bin -mediatek/mt7615_cr4.bin -mediatek/mt7981_rom_patch.bin -mediatek/mt7916_wa.bin -mediatek/mt7915_eeprom.bin -mediatek/mt7996/mt7996_eeprom.bin -mediatek/mt7996/mt7992_wa_23.bin -mediatek/mt7996/mt7996_dsp.bin +mediatek/mt7996/mt7996_eeprom_233_2i5i6i.bin +mediatek/mt7996/mt7996_rom_patch_233.bin +mediatek/mt7996/mt7996_rom_patch.bin +mediatek/mt7996/mt7996_wa.bin +mediatek/mt7996/mt7992_wm.bin mediatek/mt7996/mt7992_eeprom_2i5i.bin +mediatek/mt7996/mt7996_dsp.bin +mediatek/mt7996/mt7996_wm_233.bin +mediatek/mt7996/mt7992_wm_23.bin +mediatek/mt7996/mt7992_eeprom_2i5e.bin +mediatek/mt7996/mt7992_rom_patch.bin mediatek/mt7996/mt7996_wm.bin mediatek/mt7996/mt7996_eeprom_233.bin mediatek/mt7996/mt7996_eeprom_2i5i6i.bin +mediatek/mt7996/mt7996_eeprom.bin mediatek/mt7996/mt7992_rom_patch_23.bin -mediatek/mt7996/mt7996_wa_233.bin -mediatek/mt7996/mt7992_wm.bin -mediatek/mt7996/mt7992_eeprom_2i5e.bin -mediatek/mt7996/mt7992_eeprom_23_2i5i.bin -mediatek/mt7996/mt7996_wa.bin -mediatek/mt7996/mt7992_wm_23.bin -mediatek/mt7996/mt7992_dsp_23.bin -mediatek/mt7996/mt7996_eeprom_233_2i5i6i.bin -mediatek/mt7996/mt7996_rom_patch.bin -mediatek/mt7996/mt7992_dsp.bin -mediatek/mt7996/mt7992_rom_patch.bin -mediatek/mt7996/mt7996_wm_233.bin mediatek/mt7996/mt7992_eeprom_23.bin -mediatek/mt7996/mt7996_rom_patch_233.bin -mediatek/mt7996/mt7992_wa.bin mediatek/mt7996/mt7992_eeprom.bin -mediatek/mt7662u.bin -mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin -mediatek/mt7615_n9.bin -mediatek/mt7988_wo_1.bin -mediatek/mt7986_wa.bin -mediatek/mt7986_wm.bin -mediatek/mt7622_n9.bin -mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin -mediatek/mt7650e.bin -mediatek/WIFI_RAM_CODE_MT7961_1.bin -mediatek/mt7986_eeprom_mt7975_dual.bin +mediatek/mt7996/mt7992_eeprom_23_2i5i.bin +mediatek/mt7996/mt7992_wa.bin +mediatek/mt7996/mt7992_wa_23.bin +mediatek/mt7996/mt7992_dsp.bin +mediatek/mt7996/mt7996_wa_233.bin +mediatek/mt7996/mt7992_dsp_23.bin mediatek/mt7986_wm_mt7975.bin +mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin +mediatek/mt7916_wa.bin +mediatek/mt7986_wo_0.bin +mediatek/mt7986_rom_patch_mt7975.bin +mediatek/mt8196/vcp.img +mediatek/mt7663_n9_rebb.bin +mediatek/mt7915_eeprom_dbdc.bin +mediatek/mt7986_eeprom_mt7976.bin +mediatek/mt7662u.bin +mediatek/BT_RAM_CODE_MT7961_1a_2_hdr.bin +mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin +mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin +mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin +mediatek/WIFI_RAM_CODE_MT7922_1.bin +mediatek/mt7622_n9.bin +mediatek/mt8188/scp.img mediatek/mt7915_rom_patch.bin -mellanox/mlxsw_spectrum2-29.2012.1012.mfa2 -mellanox/mlxsw_spectrum-13.2008.1036.mfa2 -mellanox/mlxsw_spectrum-13.2010.1006.mfa2 -mellanox/mlxsw_spectrum3-30.2014.4012.mfa2 -mellanox/mlxsw_spectrum-13.1420.122.mfa2 -mellanox/mlxsw_spectrum3-30.2008.1312.mfa2 -mellanox/mlxsw_spectrum-13.2008.2018.mfa2 -mellanox/mlxsw_spectrum-13.2008.2406.mfa2 -mellanox/mlxsw_spectrum3-30.2012.1012.mfa2 -mellanox/mlxsw_spectrum2-29.2008.1036.mfa2 -mellanox/mlxsw_spectrum2-29.2008.2946.mfa2 -mellanox/mlxsw_spectrum-13.1530.152.mfa2 -mellanox/mlxsw_spectrum3-30.2010.1502.mfa2 -mellanox/mlxsw_spectrum4-34.2014.4012.mfa2 -mellanox/mlxsw_spectrum2-29.2010.3020.mfa2 -mellanox/mlxsw_spectrum2-29.2008.2304.mfa2 -mellanox/mlxsw_spectrum3-30.2008.1036.mfa2 -mellanox/mlxsw_spectrum-13.2000.2714.mfa2 -mellanox/mlxsw_spectrum4-34.2012.1012.mfa2 -mellanox/lc_ini_bundle_2010_3020.bin -mellanox/mlxsw_spectrum2-29.2010.1006.mfa2 -mellanox/mlxsw_spectrum-13.2010.1502.mfa2 -mellanox/mlxsw_spectrum2-29.2007.1168.mfa2 -mellanox/mlxsw_spectrum3-30.2007.1168.mfa2 -mellanox/mlxsw_spectrum-13.2007.1168.mfa2 -mellanox/mlxsw_spectrum2-29.2000.2308.mfa2 -mellanox/mlxsw_spectrum-13.2014.4012.mfa2 -mellanox/mlxsw_spectrum-13.2008.3326.mfa2 -mellanox/mlxsw_spectrum3-30.2008.1310.mfa2 -mellanox/mlxsw_spectrum-13.2008.2946.mfa2 -mellanox/mlxsw_spectrum3-30.2010.1232.mfa2 -mellanox/mlxsw_spectrum3-30.2010.3020.mfa2 -mellanox/mlxsw_spectrum-13.1702.6.mfa2 -mellanox/mlxsw_spectrum2-29.2010.1406.mfa2 -mellanox/mlxsw_spectrum2-29.2008.1310.mfa2 -mellanox/mlxsw_spectrum2-29.2014.4012.mfa2 -mellanox/mlxsw_spectrum3-30.2008.2304.mfa2 -mellanox/lc_ini_bundle_2010_1006.bin -mellanox/mlxsw_spectrum-13.2010.1232.mfa2 +mediatek/mt7986_rom_patch.bin +mediatek/mt7988/i2p5ge-phy-pmb.bin +mediatek/mt7988/mt7988_wo_0.bin +mediatek/mt7988/mt7988_wo_1.bin +mediatek/mt7915_wa.bin +mediatek/sof-tplg/sof-mt8186.tplg +mediatek/sof-tplg/sof-mt8195-mt6359-max98390-rt5682.tplg +mediatek/sof-tplg/sof-mt8195-mt6359-rt1019-rt5682.tplg +mediatek/sof-tplg/sof-mt8188.tplg +mediatek/sof-tplg/sof-mt8195.tplg +mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin +mediatek/WIFI_RAM_CODE_MT7961_1a.bin +mediatek/mt7981_wm.bin +mediatek/mt7986_eeprom_mt7975_dual.bin +mediatek/mt7650e.bin +mediatek/mt7668pr2h.bin +mediatek/mt7986_wm.bin +mediatek/mt8183/scp.img +mediatek/mt7988_wo_0.bin +mediatek/mt7986_wa.bin +mediatek/mt7663pr2h_rebb.bin +mediatek/mt7986_eeprom_mt7976_dual.bin +mediatek/mt7986_eeprom_mt7976_dbdc.bin +mediatek/mt7915_eeprom.bin +mediatek/mt7662u_rom_patch.bin +mediatek/sof/sof-mt8186.ldc +mediatek/sof/sof-mt8188.ldc +mediatek/sof/sof-mt8195.ldc +mediatek/sof/sof-mt8188.ri +mediatek/sof/sof-mt8186.ri +mediatek/sof/sof-mt8195.ri +mediatek/mt7663_n9_v3.bin +mediatek/mt7610e.bin +mediatek/mt7925/WIFI_RAM_CODE_MT7925_1_1.bin +mediatek/mt7925/WIFI_MT7925_PATCH_MCU_1_1_hdr.bin +mediatek/mt7925/BT_RAM_CODE_MT7925_1_1_hdr.bin +mediatek/mt7622_rom_patch.bin +mediatek/mt8192/scp.img +mediatek/mt7601u.bin +mediatek/mt7915_wm.bin +mediatek/mt7986_wo_1.bin +mediatek/mt7663pr2h.bin +mediatek/mt7622pr2h.bin +mediatek/mt7916_wm.bin +mediatek/mt7615_rom_patch.bin +mediatek/mt7916_eeprom.bin +mediatek/mt7662_rom_patch.bin +mediatek/mt8195/scp.img +mediatek/mt7916_rom_patch.bin +mediatek/mt8186/scp.img +mediatek/mt7981_rom_patch.bin +mediatek/mt7615_cr4.bin +mediatek/mt7988_wo_1.bin mellanox/mlxsw_spectrum-13.2010.1406.mfa2 -mellanox/mlxsw_spectrum3-30.2008.2946.mfa2 -mellanox/mlxsw_spectrum2-29.2008.2018.mfa2 -mellanox/mlxsw_spectrum3-30.2008.2438.mfa2 -mellanox/mlxsw_spectrum2-29.2000.2714.mfa2 -mellanox/mlxsw_spectrum2-29.2008.3326.mfa2 +mellanox/mlxsw_spectrum3-30.2012.1012.mfa2 mellanox/mlxsw_spectrum-13.2000.1122.mfa2 -mellanox/mlxsw_spectrum-13.2008.1312.mfa2 -mellanox/mlxsw_spectrum-13.2008.1310.mfa2 -mellanox/mlxsw_spectrum2-29.2008.2406.mfa2 -mellanox/lc_ini_bundle_2010_1502.bin -mellanox/mlxsw_spectrum-13.2010.3020.mfa2 -mellanox/mlxsw_spectrum3-30.2008.3326.mfa2 -mellanox/mlxsw_spectrum3-30.2010.1006.mfa2 +mellanox/mlxsw_spectrum2-29.2008.3326.mfa2 +mellanox/mlxsw_spectrum2-29.2008.1310.mfa2 mellanox/mlxsw_spectrum3-30.2008.2018.mfa2 -mellanox/mlxsw_spectrum-13.2008.2438.mfa2 -mellanox/mlxsw_spectrum2-29.2010.1502.mfa2 -mellanox/mlxsw_spectrum3-30.2010.3146.mfa2 -mellanox/mlxsw_spectrum2-29.2010.1232.mfa2 -mellanox/mlxsw_spectrum2-29.2008.1312.mfa2 +mellanox/mlxsw_spectrum2-29.2008.2406.mfa2 +mellanox/mlxsw_spectrum3-30.2008.2438.mfa2 mellanox/mlxsw_spectrum-13.2000.2308.mfa2 -mellanox/mlxsw_spectrum3-30.2008.2406.mfa2 -mellanox/mlxsw_spectrum2-29.2008.2438.mfa2 -mellanox/lc_ini_bundle_2010_3146.bin -mellanox/mlxsw_spectrum-13.1703.4.mfa2 -mellanox/mlxsw_spectrum-13.2008.2304.mfa2 -mellanox/mlxsw_spectrum-13.2000.1886.mfa2 +mellanox/lc_ini_bundle_2010_1006.bin +mellanox/mlxsw_spectrum2-29.2010.1006.mfa2 +mellanox/lc_ini_bundle_2010_1502.bin +mellanox/mlxsw_spectrum-13.1530.152.mfa2 +mellanox/mlxsw_spectrum-13.2010.3020.mfa2 +mellanox/mlxsw_spectrum4-34.2012.1012.mfa2 +mellanox/mlxsw_spectrum3-30.2008.1312.mfa2 +mellanox/mlxsw_spectrum3-30.2010.1502.mfa2 +mellanox/mlxsw_spectrum-13.2008.1312.mfa2 +mellanox/mlxsw_spectrum-13.2010.1006.mfa2 +mellanox/mlxsw_spectrum2-29.2010.1502.mfa2 mellanox/mlxsw_spectrum-13.2012.1012.mfa2 -mellanox/mlxsw_spectrum-13.1910.622.mfa2 -mellanox/mlxsw_spectrum-13.1620.192.mfa2 -mellanox/mlxsw_spectrum2-29.2010.3146.mfa2 -mellanox/mlxsw_spectrum3-30.2010.1406.mfa2 +mellanox/mlxsw_spectrum3-30.2008.3326.mfa2 +mellanox/mlxsw_spectrum3-30.2010.3020.mfa2 +mellanox/mlxsw_spectrum3-30.2008.1310.mfa2 +mellanox/mlxsw_spectrum2-29.2012.1012.mfa2 mellanox/mlxsw_spectrum-13.2010.3146.mfa2 -meson/vdec/sm1_hevc_mmu.bin +mellanox/mlxsw_spectrum2-29.2010.1406.mfa2 +mellanox/mlxsw_spectrum2-29.2010.3020.mfa2 +mellanox/lc_ini_bundle_2010_3020.bin +mellanox/mlxsw_spectrum-13.2008.2018.mfa2 +mellanox/mlxsw_spectrum-13.1620.192.mfa2 +mellanox/mlxsw_spectrum3-30.2007.1168.mfa2 +mellanox/mlxsw_spectrum4-34.2014.4012.mfa2 +mellanox/mlxsw_spectrum2-29.2008.1036.mfa2 +mellanox/mlxsw_spectrum3-30.2008.1036.mfa2 +mellanox/lc_ini_bundle_2010_3146.bin +mellanox/mlxsw_spectrum2-29.2010.1232.mfa2 +mellanox/mlxsw_spectrum2-29.2008.2946.mfa2 +mellanox/mlxsw_spectrum3-30.2008.2406.mfa2 +mellanox/mlxsw_spectrum3-30.2010.1006.mfa2 +mellanox/mlxsw_spectrum-13.2008.1036.mfa2 +mellanox/mlxsw_spectrum3-30.2010.3146.mfa2 +mellanox/mlxsw_spectrum3-30.2008.2946.mfa2 +mellanox/mlxsw_spectrum2-29.2008.2304.mfa2 +mellanox/mlxsw_spectrum2-29.2000.2308.mfa2 +mellanox/mlxsw_spectrum-13.2008.2406.mfa2 +mellanox/mlxsw_spectrum-13.2008.2946.mfa2 +mellanox/mlxsw_spectrum-13.2010.1232.mfa2 +mellanox/mlxsw_spectrum3-30.2010.1232.mfa2 +mellanox/mlxsw_spectrum-13.1420.122.mfa2 +mellanox/mlxsw_spectrum-13.2008.2304.mfa2 +mellanox/mlxsw_spectrum-13.1910.622.mfa2 +mellanox/mlxsw_spectrum-13.2000.1886.mfa2 +mellanox/mlxsw_spectrum-13.2008.3326.mfa2 +mellanox/mlxsw_spectrum-13.1703.4.mfa2 +mellanox/mlxsw_spectrum-13.2014.4012.mfa2 +mellanox/mlxsw_spectrum2-29.2008.1312.mfa2 +mellanox/mlxsw_spectrum-13.2008.1310.mfa2 +mellanox/mlxsw_spectrum2-29.2000.2714.mfa2 +mellanox/mlxsw_spectrum3-30.2008.2304.mfa2 +mellanox/mlxsw_spectrum3-30.2010.1406.mfa2 +mellanox/mlxsw_spectrum-13.2000.2714.mfa2 +mellanox/mlxsw_spectrum2-29.2008.2438.mfa2 +mellanox/mlxsw_spectrum2-29.2007.1168.mfa2 +mellanox/mlxsw_spectrum2-29.2010.3146.mfa2 +mellanox/mlxsw_spectrum2-29.2008.2018.mfa2 +mellanox/mlxsw_spectrum-13.2008.2438.mfa2 +mellanox/mlxsw_spectrum-13.2010.1502.mfa2 +mellanox/mlxsw_spectrum2-29.2014.4012.mfa2 +mellanox/mlxsw_spectrum3-30.2014.4012.mfa2 +mellanox/mlxsw_spectrum-13.2007.1168.mfa2 +mellanox/mlxsw_spectrum-13.1702.6.mfa2 meson/vdec/gxl_mpeg12.bin -meson/vdec/gxm_h264.bin -meson/vdec/sm1_vp9_mmu.bin -meson/vdec/gxbb_h264.bin -meson/vdec/gxl_h263.bin -meson/vdec/gxl_h264.bin -meson/vdec/gxl_mpeg4_5.bin -meson/vdec/g12a_h264.bin -meson/vdec/gxl_vp9.bin -meson/vdec/g12a_vp9.bin -meson/vdec/g12a_hevc_mmu.bin -meson/vdec/gxl_hevc_mmu.bin -meson/vdec/gxl_hevc.bin meson/vdec/gxl_mjpeg.bin -microchip/mscc_vsc8574_revb_int8051_29e8.bin +meson/vdec/g12a_hevc_mmu.bin +meson/vdec/gxm_h264.bin +meson/vdec/gxbb_h264.bin +meson/vdec/sm1_hevc_mmu.bin +meson/vdec/g12a_vp9.bin +meson/vdec/gxl_h263.bin +meson/vdec/gxl_mpeg4_5.bin +meson/vdec/gxl_h264.bin +meson/vdec/sm1_vp9_mmu.bin +meson/vdec/g12a_h264.bin +meson/vdec/gxl_hevc_mmu.bin +meson/vdec/gxl_vp9.bin +meson/vdec/gxl_hevc.bin microchip/mscc_vsc8584_revb_int8051_fb48.bin -moxa/moxa-1451.fw -moxa/moxa-1658.fw -moxa/moxa-1251.fw -moxa/moxa-1150.fw -moxa/moxa-1613.fw -moxa/moxa-1130.fw -moxa/moxa-1450.fw -moxa/moxa-1410.fw +microchip/mscc_vsc8574_revb_int8051_29e8.bin moxa/moxa-1653.fw +moxa/moxa-1451.fw +moxa/moxa-1613.fw +moxa/moxa-1251.fw moxa/moxa-1151.fw +moxa/moxa-1410.fw +moxa/moxa-1150.fw +moxa/moxa-1110.fw +moxa/moxa-1450.fw +moxa/moxa-1130.fw +moxa/moxa-1658.fw +moxa/moxa-1131.fw moxa/moxa-1618.fw moxa/moxa-1250.fw -moxa/moxa-1131.fw -moxa/moxa-1110.fw -mrvl/prestera/mvsw_prestera_fw_arm64-v4.1.img -mrvl/prestera/mvsw_prestera_fw-v2.0.img -mrvl/prestera/mvsw_prestera_fw-v3.0.img -mrvl/prestera/mvsw_prestera_fw-v4.0.img -mrvl/prestera/mvsw_prestera_fw-v4.1.img -mrvl/pcieusb8997_combo_v4.bin -mrvl/pcie8997_wlan_v4.bin -mrvl/usb8766_uapsta.bin -mrvl/sd8897_uapsta.bin -mrvl/cpt01/se.out -mrvl/cpt01/ae.out -mrvl/cpt01/ie.out -mrvl/pcie8897_uapsta.bin -mrvl/sdsd8997_combo_v4.bin mrvl/usbusb8997_combo_v4.bin -mrvl/usb8797_uapsta.bin -mrvl/usb8897_uapsta.bin -mrvl/sd8801_uapsta.bin -mrvl/pcieuart8997_combo_v4.bin -mrvl/sd8887_uapsta.bin -mrvl/sd8688.bin +mrvl/cpt04/ie.out mrvl/cpt04/se.out mrvl/cpt04/ae.out -mrvl/cpt04/ie.out -mrvl/sd8688_helper.bin -mrvl/sd8787_uapsta.bin mrvl/sdsd8977_combo_v2.bin -mrvl/usb8801_uapsta.bin -mrvl/sd8797_uapsta.bin -mrvl/cpt03/se.out -mrvl/cpt03/ae.out -mrvl/cpt03/ie.out +mrvl/sd8887_uapsta.bin +mrvl/prestera/mvsw_prestera_fw-v3.0.img +mrvl/prestera/mvsw_prestera_fw-v4.1.img +mrvl/prestera/mvsw_prestera_fw-v4.0.img +mrvl/prestera/mvsw_prestera_fw-v2.0.img +mrvl/prestera/mvsw_prestera_fw_arm64-v4.1.img +mrvl/usb8897_uapsta.bin +mrvl/pcie8897_uapsta.bin +mrvl/sd8787_uapsta.bin +mrvl/usb8766_uapsta.bin +mrvl/cpt02/ie.out mrvl/cpt02/se.out mrvl/cpt02/ae.out -mrvl/cpt02/ie.out +mrvl/sd8797_uapsta.bin +mrvl/cpt03/ie.out +mrvl/cpt03/se.out +mrvl/cpt03/ae.out +mrvl/cpt01/ie.out +mrvl/cpt01/se.out +mrvl/cpt01/ae.out +mrvl/sd8688_helper.bin +mrvl/sdsd8997_combo_v4.bin +mrvl/pcieuart8997_combo_v4.bin +mrvl/sd8688.bin +mrvl/usb8801_uapsta.bin +mrvl/sd8801_uapsta.bin +mrvl/sd8897_uapsta.bin +mrvl/usb8797_uapsta.bin +mrvl/pcieusb8997_combo_v4.bin +mrvl/pcie8997_wlan_v4.bin mt7601u.bin mt7650.bin mt7662.bin @@ -3440,16 +3440,16 @@ mts_edge.fw mts_gsm.fw mts_mt9234mu.fw mts_mt9234zba.fw -mwl8k/fmimage_8366_ap-3.fw -mwl8k/fmimage_8366_ap-2.fw -mwl8k/fmimage_8366.fw -mwl8k/fmimage_8366_ap-1.fw -mwl8k/helper_8687.fw -mwl8k/fmimage_8687.fw -mwl8k/fmimage_8764_ap-1.fw mwl8k/helper_8366.fw -mwlwifi/88W8864.bin +mwl8k/helper_8687.fw +mwl8k/fmimage_8366_ap-3.fw +mwl8k/fmimage_8687.fw +mwl8k/fmimage_8366_ap-1.fw +mwl8k/fmimage_8366.fw +mwl8k/fmimage_8764_ap-1.fw +mwl8k/fmimage_8366_ap-2.fw mwlwifi/88W8897.bin +mwlwifi/88W8864.bin myri10ge_eth_big_z8e.dat myri10ge_eth_z8e.dat myri10ge_ethp_big_z8e.dat @@ -3459,582 +3459,582 @@ myri10ge_rss_eth_z8e.dat myri10ge_rss_ethp_big_z8e.dat myri10ge_rss_ethp_z8e.dat myricom/lanai.bin -netronome/nic_AMDA0099-0001_2x10.nffw -netronome/nic_AMDA0096-0001_2x10.nffw -netronome/nic-sriov/nic_AMDA0099-0001_2x10.nffw -netronome/nic-sriov/nic_AMDA0096-0001_2x10.nffw netronome/nic-sriov/nic_AMDA0078-0011_1x100.nffw netronome/nic-sriov/nic_AMDA0097-0001_8x10.nffw -netronome/nic-sriov/nic_AMDA0058-0012_2x40.nffw -netronome/nic-sriov/nic_AMDA0097-0001_2x40.nffw +netronome/nic-sriov/nic_AMDA0099-0001_2x10.nffw +netronome/nic-sriov/nic_AMDA0099-0001_2x25.nffw netronome/nic-sriov/nic_AMDA0099-0001_1x10_1x25.nffw netronome/nic-sriov/nic_AMDA0058-0011_2x40.nffw -netronome/nic-sriov/nic_AMDA0099-0001_2x25.nffw -netronome/nic-sriov/nic_AMDA0081-0001_1x40.nffw -netronome/nic-sriov/nic_AMDA0081-0001_4x10.nffw netronome/nic-sriov/nic_AMDA0097-0001_4x10_1x40.nffw +netronome/nic-sriov/nic_AMDA0097-0001_2x40.nffw +netronome/nic-sriov/nic_AMDA0096-0001_2x10.nffw +netronome/nic-sriov/nic_AMDA0081-0001_1x40.nffw +netronome/nic-sriov/nic_AMDA0058-0012_2x40.nffw +netronome/nic-sriov/nic_AMDA0081-0001_4x10.nffw netronome/nic_AMDA0078-0011_1x100.nffw netronome/nic_AMDA0097-0001_8x10.nffw -netronome/nic_AMDA0058-0012_2x40.nffw -netronome/flower/nic_AMDA0099-0001_2x10.nffw -netronome/flower/nic_AMDA0078-0012_2x40.nffw -netronome/flower/nic_AMDA0078-0011_8x10.nffw -netronome/flower/nic_AMDA0096-0001_2x10.nffw -netronome/flower/nic_AMDA0078-0012_4x10_1x40.nffw -netronome/flower/nic_AMDA0081.nffw -netronome/flower/nic_AMDA0078-0011_1x100.nffw -netronome/flower/nic_AMDA0099.nffw -netronome/flower/nic_AMDA0097-0001_8x10.nffw -netronome/flower/nic_AMDA0058-0012_2x40.nffw -netronome/flower/nic_AMDA0058-0011_4x10_1x40.nffw -netronome/flower/nic_AMDA0058.nffw -netronome/flower/nic_AMDA0096.nffw -netronome/flower/nic_AMDA0097.nffw -netronome/flower/nic_AMDA0097-0001_2x40.nffw -netronome/flower/nic_AMDA0078-0012_1x100.nffw -netronome/flower/nic_AMDA0099-0001_1x10_1x25.nffw -netronome/flower/nic_AMDA0058-0011_1x100.nffw -netronome/flower/nic_AMDA0078-0011_4x10_1x40.nffw -netronome/flower/nic_AMDA0058-0011_2x40.nffw -netronome/flower/nic_AMDA0078-0011_2x40.nffw -netronome/flower/nic_AMDA0099-0001_2x25.nffw -netronome/flower/nic_AMDA0058-0012_4x10_1x40.nffw -netronome/flower/nic_AMDA0058-0011_8x10.nffw -netronome/flower/nic_AMDA0081-0001_1x40.nffw -netronome/flower/nic_AMDA0078-0012_8x10.nffw -netronome/flower/nic_AMDA0081-0001_4x10.nffw -netronome/flower/nic_AMDA0097-0001_4x10_1x40.nffw -netronome/flower/nic_AMDA0058-0012_1x100.nffw -netronome/flower/nic_AMDA0058-0012_8x10.nffw -netronome/bpf/nic_AMDA0099-0001_2x10.nffw -netronome/bpf/nic_AMDA0096-0001_2x10.nffw -netronome/bpf/nic_AMDA0078-0011_1x100.nffw -netronome/bpf/nic_AMDA0097-0001_8x10.nffw -netronome/bpf/nic_AMDA0058-0012_2x40.nffw -netronome/bpf/nic_AMDA0097-0001_2x40.nffw -netronome/bpf/nic_AMDA0099-0001_1x10_1x25.nffw -netronome/bpf/nic_AMDA0058-0011_2x40.nffw -netronome/bpf/nic_AMDA0099-0001_2x25.nffw -netronome/bpf/nic_AMDA0081-0001_1x40.nffw -netronome/bpf/nic_AMDA0081-0001_4x10.nffw -netronome/bpf/nic_AMDA0097-0001_4x10_1x40.nffw -netronome/nic/nic_AMDA0099-0001_2x10.nffw -netronome/nic/nic_AMDA0096-0001_2x10.nffw -netronome/nic/nic_AMDA0078-0011_1x100.nffw -netronome/nic/nic_AMDA0097-0001_8x10.nffw -netronome/nic/nic_AMDA0058-0012_2x40.nffw -netronome/nic/nic_AMDA0097-0001_2x40.nffw -netronome/nic/nic_AMDA0099-0001_1x10_1x25.nffw -netronome/nic/nic_AMDA0058-0011_2x40.nffw -netronome/nic/nic_AMDA0099-0001_2x25.nffw -netronome/nic/nic_AMDA0081-0001_1x40.nffw -netronome/nic/nic_AMDA0081-0001_4x10.nffw -netronome/nic/nic_AMDA0097-0001_4x10_1x40.nffw -netronome/nic_AMDA0097-0001_2x40.nffw +netronome/nic_AMDA0099-0001_2x10.nffw +netronome/nic_AMDA0099-0001_2x25.nffw netronome/nic_AMDA0099-0001_1x10_1x25.nffw netronome/nic_AMDA0058-0011_2x40.nffw -netronome/nic_AMDA0099-0001_2x25.nffw -netronome/nic_AMDA0081-0001_1x40.nffw -netronome/nic_AMDA0081-0001_4x10.nffw netronome/nic_AMDA0097-0001_4x10_1x40.nffw -nvidia/gb102 -nvidia/gm204/gr/gpccs_data.bin -nvidia/gm204/gr/sw_ctx.bin -nvidia/gm204/gr/fecs_inst.bin -nvidia/gm204/gr/fecs_sig.bin -nvidia/gm204/gr/fecs_bl.bin -nvidia/gm204/gr/fecs_data.bin -nvidia/gm204/gr/sw_bundle_init.bin -nvidia/gm204/gr/gpccs_inst.bin -nvidia/gm204/gr/sw_nonctx.bin -nvidia/gm204/gr/sw_method_init.bin -nvidia/gm204/gr/gpccs_sig.bin -nvidia/gm204/gr/gpccs_bl.bin -nvidia/gm204/acr/ucode_load.bin -nvidia/gm204/acr/bl.bin -nvidia/gm204/acr/ucode_unload.bin -nvidia/tu104/gr/gpccs_data.bin -nvidia/tu104/gr/sw_veid_bundle_init.bin -nvidia/tu104/gr/sw_ctx.bin -nvidia/tu104/gr/fecs_inst.bin -nvidia/tu104/gr/fecs_sig.bin -nvidia/tu104/gr/fecs_bl.bin -nvidia/tu104/gr/fecs_data.bin -nvidia/tu104/gr/sw_bundle_init.bin -nvidia/tu104/gr/gpccs_inst.bin -nvidia/tu104/gr/sw_nonctx.bin -nvidia/tu104/gr/sw_method_init.bin -nvidia/tu104/gr/gpccs_sig.bin -nvidia/tu104/gr/gpccs_bl.bin -nvidia/tu104/gsp -nvidia/tu104/sec2/sig.bin -nvidia/tu104/sec2/image.bin -nvidia/tu104/sec2/desc.bin -nvidia/tu104/acr/ucode_ahesasc.bin -nvidia/tu104/acr/ucode_asb.bin -nvidia/tu104/acr/bl.bin -nvidia/tu104/acr/ucode_unload.bin -nvidia/tu104/acr/unload_bl.bin -nvidia/tu104/nvdec/scrubber.bin -nvidia/gp107/gr/gpccs_data.bin -nvidia/gp107/gr/sw_ctx.bin -nvidia/gp107/gr/fecs_inst.bin -nvidia/gp107/gr/fecs_sig.bin -nvidia/gp107/gr/fecs_bl.bin -nvidia/gp107/gr/fecs_data.bin -nvidia/gp107/gr/sw_bundle_init.bin -nvidia/gp107/gr/gpccs_inst.bin -nvidia/gp107/gr/sw_nonctx.bin -nvidia/gp107/gr/sw_method_init.bin -nvidia/gp107/gr/gpccs_sig.bin -nvidia/gp107/gr/gpccs_bl.bin -nvidia/gp107/sec2/sig.bin -nvidia/gp107/sec2/sig-1.bin -nvidia/gp107/sec2/image.bin -nvidia/gp107/sec2/desc.bin -nvidia/gp107/sec2/image-1.bin -nvidia/gp107/sec2/desc-1.bin -nvidia/gp107/acr/ucode_load.bin -nvidia/gp107/acr/bl.bin -nvidia/gp107/acr/ucode_unload.bin -nvidia/gp107/acr/unload_bl.bin -nvidia/gp107/nvdec/scrubber.bin -nvidia/gp10b/gr/gpccs_data.bin -nvidia/gp10b/gr/sw_ctx.bin -nvidia/gp10b/gr/fecs_inst.bin -nvidia/gp10b/gr/fecs_sig.bin -nvidia/gp10b/gr/fecs_bl.bin -nvidia/gp10b/gr/fecs_data.bin -nvidia/gp10b/gr/sw_bundle_init.bin -nvidia/gp10b/gr/gpccs_inst.bin -nvidia/gp10b/gr/sw_nonctx.bin -nvidia/gp10b/gr/sw_method_init.bin -nvidia/gp10b/gr/gpccs_sig.bin -nvidia/gp10b/gr/gpccs_bl.bin -nvidia/gp10b/acr/ucode_load.bin -nvidia/gp10b/acr/bl.bin -nvidia/gp10b/pmu/sig.bin -nvidia/gp10b/pmu/image.bin -nvidia/gp10b/pmu/desc.bin -nvidia/gp100/gr/gpccs_data.bin -nvidia/gp100/gr/sw_ctx.bin -nvidia/gp100/gr/fecs_inst.bin -nvidia/gp100/gr/fecs_sig.bin -nvidia/gp100/gr/fecs_bl.bin -nvidia/gp100/gr/fecs_data.bin -nvidia/gp100/gr/sw_bundle_init.bin -nvidia/gp100/gr/gpccs_inst.bin -nvidia/gp100/gr/sw_nonctx.bin -nvidia/gp100/gr/sw_method_init.bin -nvidia/gp100/gr/gpccs_sig.bin -nvidia/gp100/gr/gpccs_bl.bin -nvidia/gp100/acr/ucode_load.bin -nvidia/gp100/acr/bl.bin -nvidia/gp100/acr/ucode_unload.bin -nvidia/tegra210/vic04_ucode.bin -nvidia/tegra210/xusb.bin -nvidia/tegra210/vic.bin -nvidia/tegra186/vic04_ucode.bin -nvidia/tegra186/xusb.bin -nvidia/tegra186/vic.bin -nvidia/ad104 -nvidia/gv100/gr/gpccs_data.bin -nvidia/gv100/gr/sw_ctx.bin -nvidia/gv100/gr/fecs_inst.bin -nvidia/gv100/gr/fecs_sig.bin -nvidia/gv100/gr/fecs_bl.bin -nvidia/gv100/gr/fecs_data.bin -nvidia/gv100/gr/sw_bundle_init.bin -nvidia/gv100/gr/gpccs_inst.bin -nvidia/gv100/gr/sw_nonctx.bin -nvidia/gv100/gr/sw_method_init.bin -nvidia/gv100/gr/gpccs_sig.bin -nvidia/gv100/gr/gpccs_bl.bin -nvidia/gv100/sec2/sig.bin -nvidia/gv100/sec2/image.bin -nvidia/gv100/sec2/desc.bin -nvidia/gv100/acr/ucode_load.bin -nvidia/gv100/acr/bl.bin -nvidia/gv100/acr/ucode_unload.bin -nvidia/gv100/acr/unload_bl.bin -nvidia/gv100/nvdec/scrubber.bin -nvidia/tu102/gr/gpccs_data.bin -nvidia/tu102/gr/sw_veid_bundle_init.bin -nvidia/tu102/gr/sw_ctx.bin -nvidia/tu102/gr/fecs_inst.bin -nvidia/tu102/gr/fecs_sig.bin -nvidia/tu102/gr/fecs_bl.bin -nvidia/tu102/gr/fecs_data.bin -nvidia/tu102/gr/sw_bundle_init.bin -nvidia/tu102/gr/gpccs_inst.bin -nvidia/tu102/gr/sw_nonctx.bin -nvidia/tu102/gr/sw_method_init.bin -nvidia/tu102/gr/gpccs_sig.bin -nvidia/tu102/gr/gpccs_bl.bin -nvidia/tu102/gsp/booter_load-535.113.01.bin -nvidia/tu102/gsp/booter_unload-535.113.01.bin -nvidia/tu102/gsp/bootloader-535.113.01.bin -nvidia/tu102/gsp/booter_unload-570.144.bin -nvidia/tu102/gsp/bootloader-570.144.bin -nvidia/tu102/gsp/gsp-570.144.bin -nvidia/tu102/gsp/gsp-535.113.01.bin -nvidia/tu102/gsp/booter_load-570.144.bin -nvidia/tu102/sec2/sig.bin -nvidia/tu102/sec2/image.bin -nvidia/tu102/sec2/desc.bin -nvidia/tu102/acr/ucode_ahesasc.bin -nvidia/tu102/acr/ucode_asb.bin -nvidia/tu102/acr/bl.bin -nvidia/tu102/acr/ucode_unload.bin -nvidia/tu102/acr/unload_bl.bin -nvidia/tu102/nvdec/scrubber.bin -nvidia/gp102/gr/gpccs_data.bin -nvidia/gp102/gr/sw_ctx.bin -nvidia/gp102/gr/fecs_inst.bin -nvidia/gp102/gr/fecs_sig.bin -nvidia/gp102/gr/fecs_bl.bin -nvidia/gp102/gr/fecs_data.bin -nvidia/gp102/gr/sw_bundle_init.bin -nvidia/gp102/gr/gpccs_inst.bin -nvidia/gp102/gr/sw_nonctx.bin -nvidia/gp102/gr/sw_method_init.bin -nvidia/gp102/gr/gpccs_sig.bin -nvidia/gp102/gr/gpccs_bl.bin -nvidia/gp102/sec2/sig.bin -nvidia/gp102/sec2/sig-1.bin -nvidia/gp102/sec2/image.bin -nvidia/gp102/sec2/desc.bin -nvidia/gp102/sec2/image-1.bin -nvidia/gp102/sec2/desc-1.bin -nvidia/gp102/acr/ucode_load.bin -nvidia/gp102/acr/bl.bin -nvidia/gp102/acr/ucode_unload.bin -nvidia/gp102/acr/unload_bl.bin -nvidia/gp102/nvdec/scrubber.bin -nvidia/gp104/gr/gpccs_data.bin -nvidia/gp104/gr/sw_ctx.bin -nvidia/gp104/gr/fecs_inst.bin -nvidia/gp104/gr/fecs_sig.bin -nvidia/gp104/gr/fecs_bl.bin -nvidia/gp104/gr/fecs_data.bin -nvidia/gp104/gr/sw_bundle_init.bin -nvidia/gp104/gr/gpccs_inst.bin -nvidia/gp104/gr/sw_nonctx.bin -nvidia/gp104/gr/sw_method_init.bin -nvidia/gp104/gr/gpccs_sig.bin -nvidia/gp104/gr/gpccs_bl.bin -nvidia/gp104/sec2/sig.bin -nvidia/gp104/sec2/sig-1.bin -nvidia/gp104/sec2/image.bin -nvidia/gp104/sec2/desc.bin -nvidia/gp104/sec2/image-1.bin -nvidia/gp104/sec2/desc-1.bin -nvidia/gp104/acr/ucode_load.bin -nvidia/gp104/acr/bl.bin -nvidia/gp104/acr/ucode_unload.bin -nvidia/gp104/acr/unload_bl.bin -nvidia/gp104/nvdec/scrubber.bin -nvidia/ga102/gr/NET_img.bin -nvidia/ga102/gr/fecs_sig.bin -nvidia/ga102/gr/fecs_bl.bin -nvidia/ga102/gr/gpccs_sig.bin -nvidia/ga102/gr/gpccs_bl.bin -nvidia/ga102/gsp/booter_load-535.113.01.bin -nvidia/ga102/gsp/booter_unload-535.113.01.bin -nvidia/ga102/gsp/bootloader-535.113.01.bin -nvidia/ga102/gsp/booter_unload-570.144.bin -nvidia/ga102/gsp/bootloader-570.144.bin -nvidia/ga102/gsp/gsp-570.144.bin -nvidia/ga102/gsp/gsp-535.113.01.bin -nvidia/ga102/gsp/booter_load-570.144.bin -nvidia/ga102/sec2/sig.bin -nvidia/ga102/sec2/hs_bl_sig.bin -nvidia/ga102/sec2/image.bin -nvidia/ga102/sec2/desc.bin -nvidia/ga102/acr/ucode_ahesasc.bin -nvidia/ga102/acr/ucode_asb.bin -nvidia/ga102/acr/ucode_unload.bin -nvidia/ga102/nvdec/scrubber.bin -nvidia/tegra124/xusb.bin -nvidia/tegra124/vic.bin -nvidia/tegra124/vic03_ucode.bin -nvidia/gm200/gr/gpccs_data.bin -nvidia/gm200/gr/sw_ctx.bin -nvidia/gm200/gr/fecs_inst.bin -nvidia/gm200/gr/fecs_sig.bin -nvidia/gm200/gr/fecs_bl.bin -nvidia/gm200/gr/fecs_data.bin -nvidia/gm200/gr/sw_bundle_init.bin -nvidia/gm200/gr/gpccs_inst.bin -nvidia/gm200/gr/sw_nonctx.bin -nvidia/gm200/gr/sw_method_init.bin -nvidia/gm200/gr/gpccs_sig.bin -nvidia/gm200/gr/gpccs_bl.bin -nvidia/gm200/acr/ucode_load.bin -nvidia/gm200/acr/bl.bin -nvidia/gm200/acr/ucode_unload.bin -nvidia/tu116/gr/gpccs_data.bin -nvidia/tu116/gr/sw_veid_bundle_init.bin -nvidia/tu116/gr/sw_ctx.bin -nvidia/tu116/gr/fecs_inst.bin -nvidia/tu116/gr/fecs_sig.bin -nvidia/tu116/gr/fecs_bl.bin -nvidia/tu116/gr/fecs_data.bin -nvidia/tu116/gr/sw_bundle_init.bin -nvidia/tu116/gr/gpccs_inst.bin -nvidia/tu116/gr/sw_nonctx.bin -nvidia/tu116/gr/sw_method_init.bin -nvidia/tu116/gr/gpccs_sig.bin -nvidia/tu116/gr/gpccs_bl.bin -nvidia/tu116/gsp/booter_load-535.113.01.bin -nvidia/tu116/gsp/booter_unload-535.113.01.bin -nvidia/tu116/gsp/bootloader-535.113.01.bin -nvidia/tu116/gsp/booter_unload-570.144.bin -nvidia/tu116/gsp/bootloader-570.144.bin -nvidia/tu116/gsp/gsp-570.144.bin -nvidia/tu116/gsp/gsp-535.113.01.bin -nvidia/tu116/gsp/booter_load-570.144.bin -nvidia/tu116/sec2/sig.bin -nvidia/tu116/sec2/image.bin -nvidia/tu116/sec2/desc.bin -nvidia/tu116/acr/ucode_ahesasc.bin -nvidia/tu116/acr/ucode_asb.bin -nvidia/tu116/acr/bl.bin -nvidia/tu116/acr/ucode_unload.bin -nvidia/tu116/acr/unload_bl.bin -nvidia/tu116/nvdec/scrubber.bin -nvidia/gb207 -nvidia/gp108/gr/gpccs_data.bin -nvidia/gp108/gr/sw_ctx.bin -nvidia/gp108/gr/fecs_inst.bin -nvidia/gp108/gr/fecs_sig.bin -nvidia/gp108/gr/fecs_bl.bin -nvidia/gp108/gr/fecs_data.bin -nvidia/gp108/gr/sw_bundle_init.bin -nvidia/gp108/gr/gpccs_inst.bin -nvidia/gp108/gr/sw_nonctx.bin -nvidia/gp108/gr/sw_method_init.bin -nvidia/gp108/gr/gpccs_sig.bin -nvidia/gp108/gr/gpccs_bl.bin -nvidia/gp108/sec2/sig.bin -nvidia/gp108/sec2/image.bin -nvidia/gp108/sec2/desc.bin -nvidia/gp108/acr/ucode_load.bin -nvidia/gp108/acr/bl.bin -nvidia/gp108/acr/ucode_unload.bin -nvidia/gp108/acr/unload_bl.bin -nvidia/gp108/nvdec/scrubber.bin -nvidia/gp106/gr/gpccs_data.bin -nvidia/gp106/gr/sw_ctx.bin -nvidia/gp106/gr/fecs_inst.bin -nvidia/gp106/gr/fecs_sig.bin -nvidia/gp106/gr/fecs_bl.bin -nvidia/gp106/gr/fecs_data.bin -nvidia/gp106/gr/sw_bundle_init.bin -nvidia/gp106/gr/gpccs_inst.bin -nvidia/gp106/gr/sw_nonctx.bin -nvidia/gp106/gr/sw_method_init.bin -nvidia/gp106/gr/gpccs_sig.bin -nvidia/gp106/gr/gpccs_bl.bin -nvidia/gp106/sec2/sig.bin -nvidia/gp106/sec2/sig-1.bin -nvidia/gp106/sec2/image.bin -nvidia/gp106/sec2/desc.bin -nvidia/gp106/sec2/image-1.bin -nvidia/gp106/sec2/desc-1.bin -nvidia/gp106/acr/ucode_load.bin -nvidia/gp106/acr/bl.bin -nvidia/gp106/acr/ucode_unload.bin -nvidia/gp106/acr/unload_bl.bin -nvidia/gp106/nvdec/scrubber.bin -nvidia/gb203 -nvidia/ad106 +netronome/nic_AMDA0097-0001_2x40.nffw +netronome/nic/nic_AMDA0078-0011_1x100.nffw +netronome/nic/nic_AMDA0097-0001_8x10.nffw +netronome/nic/nic_AMDA0099-0001_2x10.nffw +netronome/nic/nic_AMDA0099-0001_2x25.nffw +netronome/nic/nic_AMDA0099-0001_1x10_1x25.nffw +netronome/nic/nic_AMDA0058-0011_2x40.nffw +netronome/nic/nic_AMDA0097-0001_4x10_1x40.nffw +netronome/nic/nic_AMDA0097-0001_2x40.nffw +netronome/nic/nic_AMDA0096-0001_2x10.nffw +netronome/nic/nic_AMDA0081-0001_1x40.nffw +netronome/nic/nic_AMDA0058-0012_2x40.nffw +netronome/nic/nic_AMDA0081-0001_4x10.nffw +netronome/nic_AMDA0096-0001_2x10.nffw +netronome/nic_AMDA0081-0001_1x40.nffw +netronome/nic_AMDA0058-0012_2x40.nffw +netronome/flower/nic_AMDA0078-0011_1x100.nffw +netronome/flower/nic_AMDA0097-0001_8x10.nffw +netronome/flower/nic_AMDA0099-0001_2x10.nffw +netronome/flower/nic_AMDA0058.nffw +netronome/flower/nic_AMDA0099-0001_2x25.nffw +netronome/flower/nic_AMDA0078-0011_2x40.nffw +netronome/flower/nic_AMDA0058-0012_1x100.nffw +netronome/flower/nic_AMDA0096.nffw +netronome/flower/nic_AMDA0078-0012_1x100.nffw +netronome/flower/nic_AMDA0058-0011_8x10.nffw +netronome/flower/nic_AMDA0099-0001_1x10_1x25.nffw +netronome/flower/nic_AMDA0099.nffw +netronome/flower/nic_AMDA0078-0012_2x40.nffw +netronome/flower/nic_AMDA0058-0011_2x40.nffw +netronome/flower/nic_AMDA0097-0001_4x10_1x40.nffw +netronome/flower/nic_AMDA0058-0011_4x10_1x40.nffw +netronome/flower/nic_AMDA0078-0012_8x10.nffw +netronome/flower/nic_AMDA0097-0001_2x40.nffw +netronome/flower/nic_AMDA0081.nffw +netronome/flower/nic_AMDA0058-0012_8x10.nffw +netronome/flower/nic_AMDA0096-0001_2x10.nffw +netronome/flower/nic_AMDA0081-0001_1x40.nffw +netronome/flower/nic_AMDA0097.nffw +netronome/flower/nic_AMDA0058-0012_2x40.nffw +netronome/flower/nic_AMDA0058-0012_4x10_1x40.nffw +netronome/flower/nic_AMDA0078-0011_4x10_1x40.nffw +netronome/flower/nic_AMDA0081-0001_4x10.nffw +netronome/flower/nic_AMDA0058-0011_1x100.nffw +netronome/flower/nic_AMDA0078-0011_8x10.nffw +netronome/flower/nic_AMDA0078-0012_4x10_1x40.nffw +netronome/bpf/nic_AMDA0078-0011_1x100.nffw +netronome/bpf/nic_AMDA0097-0001_8x10.nffw +netronome/bpf/nic_AMDA0099-0001_2x10.nffw +netronome/bpf/nic_AMDA0099-0001_2x25.nffw +netronome/bpf/nic_AMDA0099-0001_1x10_1x25.nffw +netronome/bpf/nic_AMDA0058-0011_2x40.nffw +netronome/bpf/nic_AMDA0097-0001_4x10_1x40.nffw +netronome/bpf/nic_AMDA0097-0001_2x40.nffw +netronome/bpf/nic_AMDA0096-0001_2x10.nffw +netronome/bpf/nic_AMDA0081-0001_1x40.nffw +netronome/bpf/nic_AMDA0058-0012_2x40.nffw +netronome/bpf/nic_AMDA0081-0001_4x10.nffw +netronome/nic_AMDA0081-0001_4x10.nffw nvidia/tu10x/typec/ccg_primary.cyacd nvidia/tu10x/typec/ccg_boot.cyacd nvidia/tu10x/typec/ccg_secondary.cyacd -nvidia/gb205 -nvidia/ga104/gr/NET_img.bin -nvidia/ga104/gr/fecs_sig.bin -nvidia/ga104/gr/fecs_bl.bin -nvidia/ga104/gr/gpccs_sig.bin -nvidia/ga104/gr/gpccs_bl.bin -nvidia/ga104/gsp -nvidia/ga104/sec2/sig.bin -nvidia/ga104/sec2/hs_bl_sig.bin -nvidia/ga104/sec2/image.bin -nvidia/ga104/sec2/desc.bin -nvidia/ga104/acr/ucode_ahesasc.bin -nvidia/ga104/acr/ucode_asb.bin -nvidia/ga104/acr/ucode_unload.bin -nvidia/ga104/nvdec/scrubber.bin -nvidia/gk20a/gpccs_data.bin -nvidia/gk20a/sw_ctx.bin -nvidia/gk20a/fecs_inst.bin -nvidia/gk20a/fecs_data.bin -nvidia/gk20a/sw_bundle_init.bin -nvidia/gk20a/gpccs_inst.bin -nvidia/gk20a/sw_nonctx.bin -nvidia/gk20a/sw_method_init.bin -nvidia/tu106/gr/gpccs_data.bin -nvidia/tu106/gr/sw_veid_bundle_init.bin -nvidia/tu106/gr/sw_ctx.bin -nvidia/tu106/gr/fecs_inst.bin -nvidia/tu106/gr/fecs_sig.bin -nvidia/tu106/gr/fecs_bl.bin -nvidia/tu106/gr/fecs_data.bin -nvidia/tu106/gr/sw_bundle_init.bin -nvidia/tu106/gr/gpccs_inst.bin -nvidia/tu106/gr/sw_nonctx.bin -nvidia/tu106/gr/sw_method_init.bin -nvidia/tu106/gr/gpccs_sig.bin -nvidia/tu106/gr/gpccs_bl.bin -nvidia/tu106/gsp -nvidia/tu106/sec2/sig.bin -nvidia/tu106/sec2/image.bin -nvidia/tu106/sec2/desc.bin -nvidia/tu106/acr/ucode_ahesasc.bin -nvidia/tu106/acr/ucode_asb.bin -nvidia/tu106/acr/bl.bin -nvidia/tu106/acr/ucode_unload.bin -nvidia/tu106/acr/unload_bl.bin -nvidia/tu106/nvdec/scrubber.bin -nvidia/tegra194/xusb.bin -nvidia/tegra194/vic.bin -nvidia/ga106/gr/NET_img.bin -nvidia/ga106/gr/fecs_sig.bin -nvidia/ga106/gr/fecs_bl.bin -nvidia/ga106/gr/gpccs_sig.bin -nvidia/ga106/gr/gpccs_bl.bin -nvidia/ga106/gsp -nvidia/ga106/sec2/sig.bin -nvidia/ga106/sec2/hs_bl_sig.bin -nvidia/ga106/sec2/image.bin -nvidia/ga106/sec2/desc.bin -nvidia/ga106/acr/ucode_ahesasc.bin -nvidia/ga106/acr/ucode_asb.bin -nvidia/ga106/acr/ucode_unload.bin -nvidia/ga106/nvdec/scrubber.bin -nvidia/ad103 -nvidia/ga103/gr/NET_img.bin -nvidia/ga103/gr/fecs_sig.bin -nvidia/ga103/gr/fecs_bl.bin -nvidia/ga103/gr/gpccs_sig.bin -nvidia/ga103/gr/gpccs_bl.bin -nvidia/ga103/gsp -nvidia/ga103/sec2/sig.bin -nvidia/ga103/sec2/hs_bl_sig.bin -nvidia/ga103/sec2/image.bin -nvidia/ga103/sec2/desc.bin -nvidia/ga103/acr/ucode_ahesasc.bin -nvidia/ga103/acr/ucode_asb.bin -nvidia/ga103/acr/ucode_unload.bin -nvidia/ga103/nvdec/scrubber.bin -nvidia/gb202/gsp/fmc-570.144.bin -nvidia/gb202/gsp/bootloader-570.144.bin -nvidia/gb202/gsp/gsp-570.144.bin -nvidia/ad102/gsp/booter_load-535.113.01.bin -nvidia/ad102/gsp/booter_unload-535.113.01.bin -nvidia/ad102/gsp/bootloader-535.113.01.bin -nvidia/ad102/gsp/booter_unload-570.144.bin -nvidia/ad102/gsp/scrubber-570.144.bin -nvidia/ad102/gsp/bootloader-570.144.bin -nvidia/ad102/gsp/gsp-570.144.bin -nvidia/ad102/gsp/gsp-535.113.01.bin -nvidia/ad102/gsp/booter_load-570.144.bin -nvidia/ad107 -nvidia/gm20b/gr/gpccs_data.bin -nvidia/gm20b/gr/sw_ctx.bin -nvidia/gm20b/gr/fecs_inst.bin -nvidia/gm20b/gr/fecs_sig.bin -nvidia/gm20b/gr/fecs_bl.bin -nvidia/gm20b/gr/fecs_data.bin -nvidia/gm20b/gr/sw_bundle_init.bin -nvidia/gm20b/gr/gpccs_inst.bin -nvidia/gm20b/gr/sw_nonctx.bin -nvidia/gm20b/gr/sw_method_init.bin -nvidia/gm20b/acr/ucode_load.bin -nvidia/gm20b/acr/bl.bin -nvidia/gm20b/pmu/sig.bin -nvidia/gm20b/pmu/image.bin -nvidia/gm20b/pmu/desc.bin +nvidia/ad104 +nvidia/ad106 +nvidia/tu102/sec2/desc.bin +nvidia/tu102/sec2/image.bin +nvidia/tu102/sec2/sig.bin +nvidia/tu102/gr/sw_method_init.bin +nvidia/tu102/gr/gpccs_sig.bin +nvidia/tu102/gr/sw_nonctx.bin +nvidia/tu102/gr/fecs_sig.bin +nvidia/tu102/gr/gpccs_inst.bin +nvidia/tu102/gr/gpccs_bl.bin +nvidia/tu102/gr/gpccs_data.bin +nvidia/tu102/gr/fecs_bl.bin +nvidia/tu102/gr/fecs_inst.bin +nvidia/tu102/gr/sw_ctx.bin +nvidia/tu102/gr/sw_bundle_init.bin +nvidia/tu102/gr/sw_veid_bundle_init.bin +nvidia/tu102/gr/fecs_data.bin +nvidia/tu102/nvdec/scrubber.bin +nvidia/tu102/gsp/booter_unload-570.144.bin +nvidia/tu102/gsp/booter_load-570.144.bin +nvidia/tu102/gsp/gsp-570.144.bin +nvidia/tu102/gsp/gsp-535.113.01.bin +nvidia/tu102/gsp/bootloader-570.144.bin +nvidia/tu102/gsp/booter_load-535.113.01.bin +nvidia/tu102/gsp/bootloader-535.113.01.bin +nvidia/tu102/gsp/booter_unload-535.113.01.bin +nvidia/tu102/acr/ucode_ahesasc.bin +nvidia/tu102/acr/ucode_unload.bin +nvidia/tu102/acr/unload_bl.bin +nvidia/tu102/acr/bl.bin +nvidia/tu102/acr/ucode_asb.bin +nvidia/tegra186/xusb.bin +nvidia/tegra186/vic.bin +nvidia/tegra186/vic04_ucode.bin +nvidia/gb100/gsp/gsp-570.144.bin nvidia/gb100/gsp/fmc-570.144.bin nvidia/gb100/gsp/bootloader-570.144.bin -nvidia/gb100/gsp/gsp-570.144.bin -nvidia/ga107/gr/NET_img.bin -nvidia/ga107/gr/fecs_sig.bin -nvidia/ga107/gr/fecs_bl.bin -nvidia/ga107/gr/gpccs_sig.bin -nvidia/ga107/gr/gpccs_bl.bin -nvidia/ga107/gsp -nvidia/ga107/sec2/sig.bin -nvidia/ga107/sec2/hs_bl_sig.bin -nvidia/ga107/sec2/image.bin -nvidia/ga107/sec2/desc.bin -nvidia/ga107/acr/ucode_ahesasc.bin -nvidia/ga107/acr/ucode_asb.bin -nvidia/ga107/acr/ucode_unload.bin -nvidia/ga107/nvdec/scrubber.bin -nvidia/gh100/gsp/fmc-570.144.bin -nvidia/gh100/gsp/bootloader-570.144.bin -nvidia/gh100/gsp/gsp-570.144.bin +nvidia/gb202/gsp/gsp-570.144.bin +nvidia/gb202/gsp/fmc-570.144.bin +nvidia/gb202/gsp/bootloader-570.144.bin +nvidia/gp102/sec2/sig-1.bin +nvidia/gp102/sec2/desc.bin +nvidia/gp102/sec2/image.bin +nvidia/gp102/sec2/sig.bin +nvidia/gp102/sec2/image-1.bin +nvidia/gp102/sec2/desc-1.bin +nvidia/gp102/gr/sw_method_init.bin +nvidia/gp102/gr/gpccs_sig.bin +nvidia/gp102/gr/sw_nonctx.bin +nvidia/gp102/gr/fecs_sig.bin +nvidia/gp102/gr/gpccs_inst.bin +nvidia/gp102/gr/gpccs_bl.bin +nvidia/gp102/gr/gpccs_data.bin +nvidia/gp102/gr/fecs_bl.bin +nvidia/gp102/gr/fecs_inst.bin +nvidia/gp102/gr/sw_ctx.bin +nvidia/gp102/gr/sw_bundle_init.bin +nvidia/gp102/gr/fecs_data.bin +nvidia/gp102/nvdec/scrubber.bin +nvidia/gp102/acr/ucode_unload.bin +nvidia/gp102/acr/unload_bl.bin +nvidia/gp102/acr/bl.bin +nvidia/gp102/acr/ucode_load.bin +nvidia/gp104/sec2/sig-1.bin +nvidia/gp104/sec2/desc.bin +nvidia/gp104/sec2/image.bin +nvidia/gp104/sec2/sig.bin +nvidia/gp104/sec2/image-1.bin +nvidia/gp104/sec2/desc-1.bin +nvidia/gp104/gr/sw_method_init.bin +nvidia/gp104/gr/gpccs_sig.bin +nvidia/gp104/gr/sw_nonctx.bin +nvidia/gp104/gr/fecs_sig.bin +nvidia/gp104/gr/gpccs_inst.bin +nvidia/gp104/gr/gpccs_bl.bin +nvidia/gp104/gr/gpccs_data.bin +nvidia/gp104/gr/fecs_bl.bin +nvidia/gp104/gr/fecs_inst.bin +nvidia/gp104/gr/sw_ctx.bin +nvidia/gp104/gr/sw_bundle_init.bin +nvidia/gp104/gr/fecs_data.bin +nvidia/gp104/nvdec/scrubber.bin +nvidia/gp104/acr/ucode_unload.bin +nvidia/gp104/acr/unload_bl.bin +nvidia/gp104/acr/bl.bin +nvidia/gp104/acr/ucode_load.bin +nvidia/ga104/sec2/desc.bin +nvidia/ga104/sec2/image.bin +nvidia/ga104/sec2/sig.bin +nvidia/ga104/sec2/hs_bl_sig.bin +nvidia/ga104/gr/gpccs_sig.bin +nvidia/ga104/gr/fecs_sig.bin +nvidia/ga104/gr/gpccs_bl.bin +nvidia/ga104/gr/NET_img.bin +nvidia/ga104/gr/fecs_bl.bin +nvidia/ga104/nvdec/scrubber.bin +nvidia/ga104/gsp +nvidia/ga104/acr/ucode_ahesasc.bin +nvidia/ga104/acr/ucode_unload.bin +nvidia/ga104/acr/ucode_asb.bin +nvidia/gb205 +nvidia/gm200/gr/sw_method_init.bin +nvidia/gm200/gr/gpccs_sig.bin +nvidia/gm200/gr/sw_nonctx.bin +nvidia/gm200/gr/fecs_sig.bin +nvidia/gm200/gr/gpccs_inst.bin +nvidia/gm200/gr/gpccs_bl.bin +nvidia/gm200/gr/gpccs_data.bin +nvidia/gm200/gr/fecs_bl.bin +nvidia/gm200/gr/fecs_inst.bin +nvidia/gm200/gr/sw_ctx.bin +nvidia/gm200/gr/sw_bundle_init.bin +nvidia/gm200/gr/fecs_data.bin +nvidia/gm200/acr/ucode_unload.bin +nvidia/gm200/acr/bl.bin +nvidia/gm200/acr/ucode_load.bin +nvidia/ga102/sec2/desc.bin +nvidia/ga102/sec2/image.bin +nvidia/ga102/sec2/sig.bin +nvidia/ga102/sec2/hs_bl_sig.bin +nvidia/ga102/gr/gpccs_sig.bin +nvidia/ga102/gr/fecs_sig.bin +nvidia/ga102/gr/gpccs_bl.bin +nvidia/ga102/gr/NET_img.bin +nvidia/ga102/gr/fecs_bl.bin +nvidia/ga102/nvdec/scrubber.bin +nvidia/ga102/gsp/booter_unload-570.144.bin +nvidia/ga102/gsp/booter_load-570.144.bin +nvidia/ga102/gsp/gsp-570.144.bin +nvidia/ga102/gsp/gsp-535.113.01.bin +nvidia/ga102/gsp/bootloader-570.144.bin +nvidia/ga102/gsp/booter_load-535.113.01.bin +nvidia/ga102/gsp/bootloader-535.113.01.bin +nvidia/ga102/gsp/booter_unload-535.113.01.bin +nvidia/ga102/acr/ucode_ahesasc.bin +nvidia/ga102/acr/ucode_unload.bin +nvidia/ga102/acr/ucode_asb.bin nvidia/gb206 -nvidia/tu117/gr/gpccs_data.bin -nvidia/tu117/gr/sw_veid_bundle_init.bin -nvidia/tu117/gr/sw_ctx.bin -nvidia/tu117/gr/fecs_inst.bin -nvidia/tu117/gr/fecs_sig.bin -nvidia/tu117/gr/fecs_bl.bin -nvidia/tu117/gr/fecs_data.bin -nvidia/tu117/gr/sw_bundle_init.bin -nvidia/tu117/gr/gpccs_inst.bin -nvidia/tu117/gr/sw_nonctx.bin -nvidia/tu117/gr/sw_method_init.bin -nvidia/tu117/gr/gpccs_sig.bin -nvidia/tu117/gr/gpccs_bl.bin -nvidia/tu117/gsp -nvidia/tu117/sec2/sig.bin -nvidia/tu117/sec2/image.bin -nvidia/tu117/sec2/desc.bin -nvidia/tu117/acr/ucode_ahesasc.bin -nvidia/tu117/acr/ucode_asb.bin -nvidia/tu117/acr/bl.bin -nvidia/tu117/acr/ucode_unload.bin -nvidia/tu117/acr/unload_bl.bin -nvidia/tu117/nvdec/scrubber.bin -nvidia/ga100/gsp/booter_load-535.113.01.bin -nvidia/ga100/gsp/booter_unload-535.113.01.bin -nvidia/ga100/gsp/bootloader-535.113.01.bin nvidia/ga100/gsp/booter_unload-570.144.bin -nvidia/ga100/gsp/bootloader-570.144.bin +nvidia/ga100/gsp/booter_load-570.144.bin nvidia/ga100/gsp/gsp-570.144.bin nvidia/ga100/gsp/gsp-535.113.01.bin -nvidia/ga100/gsp/booter_load-570.144.bin -nvidia/gm206/gr/gpccs_data.bin -nvidia/gm206/gr/sw_ctx.bin -nvidia/gm206/gr/fecs_inst.bin -nvidia/gm206/gr/fecs_sig.bin -nvidia/gm206/gr/fecs_bl.bin -nvidia/gm206/gr/fecs_data.bin -nvidia/gm206/gr/sw_bundle_init.bin -nvidia/gm206/gr/gpccs_inst.bin -nvidia/gm206/gr/sw_nonctx.bin +nvidia/ga100/gsp/bootloader-570.144.bin +nvidia/ga100/gsp/booter_load-535.113.01.bin +nvidia/ga100/gsp/bootloader-535.113.01.bin +nvidia/ga100/gsp/booter_unload-535.113.01.bin +nvidia/tu104/sec2/desc.bin +nvidia/tu104/sec2/image.bin +nvidia/tu104/sec2/sig.bin +nvidia/tu104/gr/sw_method_init.bin +nvidia/tu104/gr/gpccs_sig.bin +nvidia/tu104/gr/sw_nonctx.bin +nvidia/tu104/gr/fecs_sig.bin +nvidia/tu104/gr/gpccs_inst.bin +nvidia/tu104/gr/gpccs_bl.bin +nvidia/tu104/gr/gpccs_data.bin +nvidia/tu104/gr/fecs_bl.bin +nvidia/tu104/gr/fecs_inst.bin +nvidia/tu104/gr/sw_ctx.bin +nvidia/tu104/gr/sw_bundle_init.bin +nvidia/tu104/gr/sw_veid_bundle_init.bin +nvidia/tu104/gr/fecs_data.bin +nvidia/tu104/nvdec/scrubber.bin +nvidia/tu104/gsp +nvidia/tu104/acr/ucode_ahesasc.bin +nvidia/tu104/acr/ucode_unload.bin +nvidia/tu104/acr/unload_bl.bin +nvidia/tu104/acr/bl.bin +nvidia/tu104/acr/ucode_asb.bin nvidia/gm206/gr/sw_method_init.bin nvidia/gm206/gr/gpccs_sig.bin +nvidia/gm206/gr/sw_nonctx.bin +nvidia/gm206/gr/fecs_sig.bin +nvidia/gm206/gr/gpccs_inst.bin nvidia/gm206/gr/gpccs_bl.bin -nvidia/gm206/acr/ucode_load.bin -nvidia/gm206/acr/bl.bin +nvidia/gm206/gr/gpccs_data.bin +nvidia/gm206/gr/fecs_bl.bin +nvidia/gm206/gr/fecs_inst.bin +nvidia/gm206/gr/sw_ctx.bin +nvidia/gm206/gr/sw_bundle_init.bin +nvidia/gm206/gr/fecs_data.bin nvidia/gm206/acr/ucode_unload.bin -nxp/uartuart8997_bt_v4.bin -nxp/uartuart9098_bt_v1.bin -nxp/helper_uart_3000000.bin +nvidia/gm206/acr/bl.bin +nvidia/gm206/acr/ucode_load.bin +nvidia/gm20b/gr/sw_method_init.bin +nvidia/gm20b/gr/sw_nonctx.bin +nvidia/gm20b/gr/fecs_sig.bin +nvidia/gm20b/gr/gpccs_inst.bin +nvidia/gm20b/gr/gpccs_data.bin +nvidia/gm20b/gr/fecs_bl.bin +nvidia/gm20b/gr/fecs_inst.bin +nvidia/gm20b/gr/sw_ctx.bin +nvidia/gm20b/gr/sw_bundle_init.bin +nvidia/gm20b/gr/fecs_data.bin +nvidia/gm20b/pmu/desc.bin +nvidia/gm20b/pmu/image.bin +nvidia/gm20b/pmu/sig.bin +nvidia/gm20b/acr/bl.bin +nvidia/gm20b/acr/ucode_load.bin +nvidia/gh100/gsp/gsp-570.144.bin +nvidia/gh100/gsp/fmc-570.144.bin +nvidia/gh100/gsp/bootloader-570.144.bin +nvidia/gp107/sec2/sig-1.bin +nvidia/gp107/sec2/desc.bin +nvidia/gp107/sec2/image.bin +nvidia/gp107/sec2/sig.bin +nvidia/gp107/sec2/image-1.bin +nvidia/gp107/sec2/desc-1.bin +nvidia/gp107/gr/sw_method_init.bin +nvidia/gp107/gr/gpccs_sig.bin +nvidia/gp107/gr/sw_nonctx.bin +nvidia/gp107/gr/fecs_sig.bin +nvidia/gp107/gr/gpccs_inst.bin +nvidia/gp107/gr/gpccs_bl.bin +nvidia/gp107/gr/gpccs_data.bin +nvidia/gp107/gr/fecs_bl.bin +nvidia/gp107/gr/fecs_inst.bin +nvidia/gp107/gr/sw_ctx.bin +nvidia/gp107/gr/sw_bundle_init.bin +nvidia/gp107/gr/fecs_data.bin +nvidia/gp107/nvdec/scrubber.bin +nvidia/gp107/acr/ucode_unload.bin +nvidia/gp107/acr/unload_bl.bin +nvidia/gp107/acr/bl.bin +nvidia/gp107/acr/ucode_load.bin +nvidia/tu117/sec2/desc.bin +nvidia/tu117/sec2/image.bin +nvidia/tu117/sec2/sig.bin +nvidia/tu117/gr/sw_method_init.bin +nvidia/tu117/gr/gpccs_sig.bin +nvidia/tu117/gr/sw_nonctx.bin +nvidia/tu117/gr/fecs_sig.bin +nvidia/tu117/gr/gpccs_inst.bin +nvidia/tu117/gr/gpccs_bl.bin +nvidia/tu117/gr/gpccs_data.bin +nvidia/tu117/gr/fecs_bl.bin +nvidia/tu117/gr/fecs_inst.bin +nvidia/tu117/gr/sw_ctx.bin +nvidia/tu117/gr/sw_bundle_init.bin +nvidia/tu117/gr/sw_veid_bundle_init.bin +nvidia/tu117/gr/fecs_data.bin +nvidia/tu117/nvdec/scrubber.bin +nvidia/tu117/gsp +nvidia/tu117/acr/ucode_ahesasc.bin +nvidia/tu117/acr/ucode_unload.bin +nvidia/tu117/acr/unload_bl.bin +nvidia/tu117/acr/bl.bin +nvidia/tu117/acr/ucode_asb.bin +nvidia/tegra124/vic03_ucode.bin +nvidia/tegra124/xusb.bin +nvidia/tegra124/vic.bin +nvidia/gm204/gr/sw_method_init.bin +nvidia/gm204/gr/gpccs_sig.bin +nvidia/gm204/gr/sw_nonctx.bin +nvidia/gm204/gr/fecs_sig.bin +nvidia/gm204/gr/gpccs_inst.bin +nvidia/gm204/gr/gpccs_bl.bin +nvidia/gm204/gr/gpccs_data.bin +nvidia/gm204/gr/fecs_bl.bin +nvidia/gm204/gr/fecs_inst.bin +nvidia/gm204/gr/sw_ctx.bin +nvidia/gm204/gr/sw_bundle_init.bin +nvidia/gm204/gr/fecs_data.bin +nvidia/gm204/acr/ucode_unload.bin +nvidia/gm204/acr/bl.bin +nvidia/gm204/acr/ucode_load.bin +nvidia/ad107 +nvidia/gb102 +nvidia/gp108/sec2/desc.bin +nvidia/gp108/sec2/image.bin +nvidia/gp108/sec2/sig.bin +nvidia/gp108/gr/sw_method_init.bin +nvidia/gp108/gr/gpccs_sig.bin +nvidia/gp108/gr/sw_nonctx.bin +nvidia/gp108/gr/fecs_sig.bin +nvidia/gp108/gr/gpccs_inst.bin +nvidia/gp108/gr/gpccs_bl.bin +nvidia/gp108/gr/gpccs_data.bin +nvidia/gp108/gr/fecs_bl.bin +nvidia/gp108/gr/fecs_inst.bin +nvidia/gp108/gr/sw_ctx.bin +nvidia/gp108/gr/sw_bundle_init.bin +nvidia/gp108/gr/fecs_data.bin +nvidia/gp108/nvdec/scrubber.bin +nvidia/gp108/acr/ucode_unload.bin +nvidia/gp108/acr/unload_bl.bin +nvidia/gp108/acr/bl.bin +nvidia/gp108/acr/ucode_load.bin +nvidia/tegra194/xusb.bin +nvidia/tegra194/vic.bin +nvidia/tu106/sec2/desc.bin +nvidia/tu106/sec2/image.bin +nvidia/tu106/sec2/sig.bin +nvidia/tu106/gr/sw_method_init.bin +nvidia/tu106/gr/gpccs_sig.bin +nvidia/tu106/gr/sw_nonctx.bin +nvidia/tu106/gr/fecs_sig.bin +nvidia/tu106/gr/gpccs_inst.bin +nvidia/tu106/gr/gpccs_bl.bin +nvidia/tu106/gr/gpccs_data.bin +nvidia/tu106/gr/fecs_bl.bin +nvidia/tu106/gr/fecs_inst.bin +nvidia/tu106/gr/sw_ctx.bin +nvidia/tu106/gr/sw_bundle_init.bin +nvidia/tu106/gr/sw_veid_bundle_init.bin +nvidia/tu106/gr/fecs_data.bin +nvidia/tu106/nvdec/scrubber.bin +nvidia/tu106/gsp +nvidia/tu106/acr/ucode_ahesasc.bin +nvidia/tu106/acr/ucode_unload.bin +nvidia/tu106/acr/unload_bl.bin +nvidia/tu106/acr/bl.bin +nvidia/tu106/acr/ucode_asb.bin +nvidia/gp106/sec2/sig-1.bin +nvidia/gp106/sec2/desc.bin +nvidia/gp106/sec2/image.bin +nvidia/gp106/sec2/sig.bin +nvidia/gp106/sec2/image-1.bin +nvidia/gp106/sec2/desc-1.bin +nvidia/gp106/gr/sw_method_init.bin +nvidia/gp106/gr/gpccs_sig.bin +nvidia/gp106/gr/sw_nonctx.bin +nvidia/gp106/gr/fecs_sig.bin +nvidia/gp106/gr/gpccs_inst.bin +nvidia/gp106/gr/gpccs_bl.bin +nvidia/gp106/gr/gpccs_data.bin +nvidia/gp106/gr/fecs_bl.bin +nvidia/gp106/gr/fecs_inst.bin +nvidia/gp106/gr/sw_ctx.bin +nvidia/gp106/gr/sw_bundle_init.bin +nvidia/gp106/gr/fecs_data.bin +nvidia/gp106/nvdec/scrubber.bin +nvidia/gp106/acr/ucode_unload.bin +nvidia/gp106/acr/unload_bl.bin +nvidia/gp106/acr/bl.bin +nvidia/gp106/acr/ucode_load.bin +nvidia/gk20a/sw_method_init.bin +nvidia/gk20a/sw_nonctx.bin +nvidia/gk20a/gpccs_inst.bin +nvidia/gk20a/gpccs_data.bin +nvidia/gk20a/fecs_inst.bin +nvidia/gk20a/sw_ctx.bin +nvidia/gk20a/sw_bundle_init.bin +nvidia/gk20a/fecs_data.bin +nvidia/ga103/sec2/desc.bin +nvidia/ga103/sec2/image.bin +nvidia/ga103/sec2/sig.bin +nvidia/ga103/sec2/hs_bl_sig.bin +nvidia/ga103/gr/gpccs_sig.bin +nvidia/ga103/gr/fecs_sig.bin +nvidia/ga103/gr/gpccs_bl.bin +nvidia/ga103/gr/NET_img.bin +nvidia/ga103/gr/fecs_bl.bin +nvidia/ga103/nvdec/scrubber.bin +nvidia/ga103/gsp +nvidia/ga103/acr/ucode_ahesasc.bin +nvidia/ga103/acr/ucode_unload.bin +nvidia/ga103/acr/ucode_asb.bin +nvidia/gb207 +nvidia/ad103 +nvidia/ad102/gsp/booter_unload-570.144.bin +nvidia/ad102/gsp/booter_load-570.144.bin +nvidia/ad102/gsp/gsp-570.144.bin +nvidia/ad102/gsp/gsp-535.113.01.bin +nvidia/ad102/gsp/bootloader-570.144.bin +nvidia/ad102/gsp/scrubber-570.144.bin +nvidia/ad102/gsp/booter_load-535.113.01.bin +nvidia/ad102/gsp/bootloader-535.113.01.bin +nvidia/ad102/gsp/booter_unload-535.113.01.bin +nvidia/ga107/sec2/desc.bin +nvidia/ga107/sec2/image.bin +nvidia/ga107/sec2/sig.bin +nvidia/ga107/sec2/hs_bl_sig.bin +nvidia/ga107/gr/gpccs_sig.bin +nvidia/ga107/gr/fecs_sig.bin +nvidia/ga107/gr/gpccs_bl.bin +nvidia/ga107/gr/NET_img.bin +nvidia/ga107/gr/fecs_bl.bin +nvidia/ga107/nvdec/scrubber.bin +nvidia/ga107/gsp +nvidia/ga107/acr/ucode_ahesasc.bin +nvidia/ga107/acr/ucode_unload.bin +nvidia/ga107/acr/ucode_asb.bin +nvidia/tegra210/xusb.bin +nvidia/tegra210/vic.bin +nvidia/tegra210/vic04_ucode.bin +nvidia/gb203 +nvidia/gp100/gr/sw_method_init.bin +nvidia/gp100/gr/gpccs_sig.bin +nvidia/gp100/gr/sw_nonctx.bin +nvidia/gp100/gr/fecs_sig.bin +nvidia/gp100/gr/gpccs_inst.bin +nvidia/gp100/gr/gpccs_bl.bin +nvidia/gp100/gr/gpccs_data.bin +nvidia/gp100/gr/fecs_bl.bin +nvidia/gp100/gr/fecs_inst.bin +nvidia/gp100/gr/sw_ctx.bin +nvidia/gp100/gr/sw_bundle_init.bin +nvidia/gp100/gr/fecs_data.bin +nvidia/gp100/acr/ucode_unload.bin +nvidia/gp100/acr/bl.bin +nvidia/gp100/acr/ucode_load.bin +nvidia/ga106/sec2/desc.bin +nvidia/ga106/sec2/image.bin +nvidia/ga106/sec2/sig.bin +nvidia/ga106/sec2/hs_bl_sig.bin +nvidia/ga106/gr/gpccs_sig.bin +nvidia/ga106/gr/fecs_sig.bin +nvidia/ga106/gr/gpccs_bl.bin +nvidia/ga106/gr/NET_img.bin +nvidia/ga106/gr/fecs_bl.bin +nvidia/ga106/nvdec/scrubber.bin +nvidia/ga106/gsp +nvidia/ga106/acr/ucode_ahesasc.bin +nvidia/ga106/acr/ucode_unload.bin +nvidia/ga106/acr/ucode_asb.bin +nvidia/gv100/sec2/desc.bin +nvidia/gv100/sec2/image.bin +nvidia/gv100/sec2/sig.bin +nvidia/gv100/gr/sw_method_init.bin +nvidia/gv100/gr/gpccs_sig.bin +nvidia/gv100/gr/sw_nonctx.bin +nvidia/gv100/gr/fecs_sig.bin +nvidia/gv100/gr/gpccs_inst.bin +nvidia/gv100/gr/gpccs_bl.bin +nvidia/gv100/gr/gpccs_data.bin +nvidia/gv100/gr/fecs_bl.bin +nvidia/gv100/gr/fecs_inst.bin +nvidia/gv100/gr/sw_ctx.bin +nvidia/gv100/gr/sw_bundle_init.bin +nvidia/gv100/gr/fecs_data.bin +nvidia/gv100/nvdec/scrubber.bin +nvidia/gv100/acr/ucode_unload.bin +nvidia/gv100/acr/unload_bl.bin +nvidia/gv100/acr/bl.bin +nvidia/gv100/acr/ucode_load.bin +nvidia/gp10b/gr/sw_method_init.bin +nvidia/gp10b/gr/gpccs_sig.bin +nvidia/gp10b/gr/sw_nonctx.bin +nvidia/gp10b/gr/fecs_sig.bin +nvidia/gp10b/gr/gpccs_inst.bin +nvidia/gp10b/gr/gpccs_bl.bin +nvidia/gp10b/gr/gpccs_data.bin +nvidia/gp10b/gr/fecs_bl.bin +nvidia/gp10b/gr/fecs_inst.bin +nvidia/gp10b/gr/sw_ctx.bin +nvidia/gp10b/gr/sw_bundle_init.bin +nvidia/gp10b/gr/fecs_data.bin +nvidia/gp10b/pmu/desc.bin +nvidia/gp10b/pmu/image.bin +nvidia/gp10b/pmu/sig.bin +nvidia/gp10b/acr/bl.bin +nvidia/gp10b/acr/ucode_load.bin +nvidia/tu116/sec2/desc.bin +nvidia/tu116/sec2/image.bin +nvidia/tu116/sec2/sig.bin +nvidia/tu116/gr/sw_method_init.bin +nvidia/tu116/gr/gpccs_sig.bin +nvidia/tu116/gr/sw_nonctx.bin +nvidia/tu116/gr/fecs_sig.bin +nvidia/tu116/gr/gpccs_inst.bin +nvidia/tu116/gr/gpccs_bl.bin +nvidia/tu116/gr/gpccs_data.bin +nvidia/tu116/gr/fecs_bl.bin +nvidia/tu116/gr/fecs_inst.bin +nvidia/tu116/gr/sw_ctx.bin +nvidia/tu116/gr/sw_bundle_init.bin +nvidia/tu116/gr/sw_veid_bundle_init.bin +nvidia/tu116/gr/fecs_data.bin +nvidia/tu116/nvdec/scrubber.bin +nvidia/tu116/gsp/booter_unload-570.144.bin +nvidia/tu116/gsp/booter_load-570.144.bin +nvidia/tu116/gsp/gsp-570.144.bin +nvidia/tu116/gsp/gsp-535.113.01.bin +nvidia/tu116/gsp/bootloader-570.144.bin +nvidia/tu116/gsp/booter_load-535.113.01.bin +nvidia/tu116/gsp/bootloader-535.113.01.bin +nvidia/tu116/gsp/booter_unload-535.113.01.bin +nvidia/tu116/acr/ucode_ahesasc.bin +nvidia/tu116/acr/ucode_unload.bin +nvidia/tu116/acr/unload_bl.bin +nvidia/tu116/acr/bl.bin +nvidia/tu116/acr/ucode_asb.bin nxp/uartiw416_bt_v0.bin +nxp/helper_uart_3000000.bin +nxp/uartuart8997_bt_v4.bin nxp/uartuart8987_bt.bin nxp/uartspi_n61x_v1.bin.se nxp/sr150_fw.bin +nxp/uartuart9098_bt_v1.bin ositech/Xilinx7OD.bin phanfw.bin -powervr/rogue_36.53.104.796_v1.fw powervr/rogue_33.15.11.3_v1.fw +powervr/rogue_36.53.104.796_v1.fw qat_402xx.bin qat_402xx_mmp.bin qat_420xx.bin @@ -4048,638 +4048,638 @@ qat_c3xxx_mmp.bin qat_c62x.bin qat_c62x_mmp.bin qat_mmp.bin -qca/nvm_00130300.bin -qca/msnv11.b0a -qca/hpnv21.ba2 -qca/cmbtfw12.tlv -qca/htbtfw20.tlv -qca/hpnv21.ba0 -qca/nvm_usb_00130201_010a.bin -qca/hpnv21g.309 -qca/nvm_usb_00130200_0104.bin -qca/rampatch_usb_00130200.bin -qca/rampatch_00230302.bin -qca/nvm_usb_00190200_0104.bin -qca/hpnv21.301 -qca/hpnv21g.301 -qca/hpnv21.b111 -qca/hpnv21g.302 -qca/crbtfw32.tlv -qca/nvm_usb_00130200_0107.bin -qca/cmnv13s.bin -qca/hmtbtfw20.tlv -qca/hpnv21g.baa -qca/nvm_usb_00190200_0112.bin -qca/nvm_usb_00130201_010b.bin -qca/rampatch_00130300.bin -qca/nvm_usb_00130201_0303.bin -qca/rampatch_usb_00000300.bin -qca/hpnv21g.b8c -qca/crnv32u.bin -qca/nvm_usb_00190200_010a.bin -qca/hpbtfw21.tlv -qca/nvm_usb_00190200_0106.bin -qca/QCA2066/rampatch_usb_00130201.bin -qca/QCA2066/nvm_usb_00130201_030a.bin -qca/QCA2066/nvm_usb_00130201_gf_030a.bin -qca/crnv21.bin -qca/nvm_usb_00000201.bin -qca/hpnv21.bb8 -qca/nvm_00440302.bin -qca/nvm_usb_00130201.bin -qca/rampatch_usb_00000201.bin -qca/hpnv21g.bin -qca/hpnv21.302 -qca/hpnv21.bin -qca/nvm_usb_00000302.bin -qca/crnv32.bin -qca/rampatch_usb_00130201.bin -qca/rampatch_00130302.bin -qca/hpnv21g.b111 -qca/hpnv21g.b9f -qca/nvm_usb_00190200_0110.bin -qca/apnv11.bin -qca/msnv11.b09 -qca/nvm_usb_00190200_0108.bin -qca/nvm_usb_00000300.bin -qca/hpnv21.ba3 -qca/nvm_usb_00130200_0106.bin -qca/hpnv21.ba4 -qca/hpnv21g.ba1 -qca/nvm_usb_00190200.bin -qca/nvm_usb_00130200_0105.bin -qca/nvm_usb_00190200_010e.bin -qca/apbtfw10.tlv -qca/hpnv21g.ba2 -qca/nvm_usb_00130201_gf_010b.bin -qca/nvm_00440302_eu.bin -qca/nvm_usb_00130200_0109.bin -qca/apnv10.bin -qca/msbtfw11.tlv -qca/nvm_usb_00130200.bin -qca/nvm_usb_00190200_010c.bin -qca/hpnv21.b8c -qca/nvm_usb_00190200_0109.bin -qca/hpnv21.ba1 qca/msbtfw11.mbn -qca/nvm_usb_00190200_0111.bin -qca/nvm_usb_00130201_gf_0303.bin +qca/nvm_usb_00000300.bin +qca/hpnv21g.30a +qca/nvm_usb_00130201_010a.bin +qca/cmnv13s.bin +qca/nvm_usb_00000201.bin qca/nvm_00130302.bin -qca/hmtnv20.b112 -qca/rampatch_00440302.bin -qca/nvm_00440302_i2s_eu.bin +qca/hpnv21g.301 +qca/nvm_usb_00000200.bin +qca/hpnv21.b10c +qca/nvm_usb_00130200_0110.bin +qca/nvm_usb_00000302_eu.bin +qca/rampatch_00130302.bin qca/QCA6698/hpnv21.b206 +qca/QCA6698/hpnv21.bin qca/QCA6698/hpnv21.b207 qca/QCA6698/hpbtfw21.tlv -qca/QCA6698/hpnv21.bin -qca/hpnv21.baa -qca/hpnv21.309 +qca/nvm_usb_00190200_0110.bin +qca/nvm_usb_00130201_010b.bin +qca/rampatch_usb_00190200.bin +qca/rampatch_00230302.bin +qca/nvm_00130300.bin +qca/hpnv21.302 +qca/nvm_usb_00130201.bin +qca/hpnv21g.b111 +qca/hpnv21.b9f +qca/cmnv13t.bin +qca/hmtbtfw20.tlv +qca/hpnv21g.b9f +qca/rampatch_00440302.bin +qca/hpnv21g.302 +qca/rampatch_usb_00000201.bin qca/hmtnv20.bin +qca/hpnv21g.b8c +qca/nvm_usb_00190200_010c.bin +qca/hpnv21.bin +qca/hpnv21.309 +qca/nvm_usb_00190200.bin +qca/nvm_usb_00130200_0106.bin +qca/apbtfw11.tlv +qca/hpnv21.ba3 +qca/nvm_00440302.bin +qca/nvm_usb_00190200_0109.bin +qca/hpnv21g.bb8 +qca/apnv10.bin +qca/hpnv21.b111 +qca/nvm_usb_00130200_0107.bin +qca/msnv11.b0a qca/cmnv13.bin -qca/msnv11.bin qca/nvm_usb_00130201_gf.bin qca/rampatch_usb_00000302.bin -qca/hmtnv20.b10f -qca/hpnv21g.ba0 -qca/rampatch_usb_00190200.bin -qca/apbtfw11.tlv -qca/hpnv21.30a -qca/hpnv21g.b10c -qca/hpnv21g.30a qca/cmnv12.bin -qca/hpnv21g.ba4 -qca/rampatch_usb_00000200.bin -qca/cmnv13t.bin -qca/nvm_usb_00130201_gf_010a.bin -qca/hpnv21.b10c -qca/crbtfw21.tlv -qca/cmbtfw13.tlv -qca/nvm_usb_00130200_0110.bin +qca/rampatch_usb_00000300.bin +qca/hpnv21g.ba0 qca/htnv20.bin -qca/nvm_usb_00000200.bin -qca/nvm_usb_00000302_eu.bin +qca/nvm_usb_00130201_gf_0303.bin +qca/hpbtfw21.tlv qca/hpnv21g.ba3 -qca/hpnv21g.bb8 -qca/hpnv21.b9f +qca/crnv32.bin +qca/msbtfw11.tlv +qca/hpnv21g.baa +qca/nvm_usb_00190200_010e.bin +qca/hpnv21.ba0 +qca/nvm_usb_00130200.bin +qca/nvm_usb_00190200_0111.bin +qca/crbtfw32.tlv +qca/hpnv21g.ba1 +qca/nvm_usb_00190200_010a.bin +qca/rampatch_00130300.bin +qca/hpnv21.baa +qca/nvm_usb_00190200_0104.bin +qca/apnv11.bin +qca/nvm_usb_00130200_0104.bin +qca/nvm_00440302_eu.bin +qca/hpnv21g.bin +qca/rampatch_usb_00000200.bin +qca/hpnv21g.ba2 +qca/nvm_usb_00190200_0108.bin +qca/msnv11.b09 +qca/hpnv21.ba1 +qca/crbtfw21.tlv +qca/hpnv21.301 +qca/hpnv21.ba4 +qca/hpnv21g.ba4 +qca/hmtnv20.b112 +qca/hpnv21.ba2 +qca/crnv32u.bin +qca/rampatch_usb_00130201.bin +qca/nvm_usb_00130200_0105.bin +qca/hpnv21.b8c +qca/cmbtfw12.tlv +qca/nvm_usb_00130201_0303.bin +qca/hpnv21.bb8 +qca/nvm_usb_00190200_0112.bin +qca/rampatch_usb_00130200.bin +qca/hmtnv20.b10f +qca/hpnv21g.b10c +qca/nvm_usb_00000302.bin +qca/nvm_usb_00130200_0109.bin +qca/nvm_usb_00130201_gf_010b.bin +qca/nvm_usb_00130201_gf_010a.bin +qca/nvm_00440302_i2s_eu.bin +qca/cmbtfw13.tlv qca/nvm_00230302.bin -qcom/qrb4210/modemr.jsn -qcom/qrb4210/adspua.jsn -qcom/qrb4210/modem.mbn -qcom/qrb4210/a610_zap.mbn -qcom/qrb4210/modemuw.jsn -qcom/qrb4210/wlanmdsp.mbn -qcom/qrb4210/cdsp.mbn -qcom/qrb4210/adsp.mbn -qcom/qrb4210/adspr.jsn -qcom/qrb4210/adsps.jsn -qcom/qrb4210/cdspr.jsn -qcom/a300_pm4.fw -qcom/sc8280xp/SC8280XP-LENOVO-X13S-tplg.bin -qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn -qcom/sc8280xp/LENOVO/21BX/adspua.jsn -qcom/sc8280xp/LENOVO/21BX/audioreach-tplg.bin -qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn -qcom/sc8280xp/LENOVO/21BX/adspr.jsn -qcom/sc8280xp/LENOVO/21BX/battmgr.jsn -qcom/sc8280xp/LENOVO/21BX/qcslpi8280.mbn -qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn -qcom/sc8280xp/LENOVO/21BX/cdspr.jsn -qcom/sc8280xp/LENOVO/21BX/qcvss8280.mbn -qcom/a330_pm4.fw -qcom/a420_pfp.fw -qcom/sdm845/mba.mbn -qcom/sdm845/adspua.jsn -qcom/sdm845/modem.mbn -qcom/sdm845/a630_zap.mbn -qcom/sdm845/modemuw.jsn -qcom/sdm845/wlanmdsp.mbn -qcom/sdm845/cdsp.mbn -qcom/sdm845/Thundercomm/db845c/slpi.mbn -qcom/sdm845/Thundercomm/db845c/slpius.jsn -qcom/sdm845/Thundercomm/db845c/slpir.jsn -qcom/sdm845/adsp.mbn -qcom/sdm845/modem_nm.mbn -qcom/sdm845/adspr.jsn -qcom/sdm845/cdspr.jsn -qcom/a650_sqe.fw -qcom/gen71500_sqe.fw -qcom/a663_gmu.bin -qcom/qcs6490/wpss.mbn -qcom/qcs6490/adspua.jsn -qcom/qcs6490/a660_zap.mbn -qcom/qcs6490/QCS6490-RB3Gen2-tplg.bin -qcom/qcs6490/cdsp.mbn -qcom/qcs6490/adsp.mbn -qcom/qcs6490/adspr.jsn -qcom/qcs6490/qupv3fw.elf -qcom/qcs6490/battmgr.jsn -qcom/qcs6490/adsps.jsn -qcom/qcs6490/cdspr.jsn -qcom/a650_gmu.bin -qcom/venus-5.4/venus_s2.mbn -qcom/venus-5.4/venus.mdt -qcom/venus-5.4/venus.mbn -qcom/gen70500_sqe.fw -qcom/a612_rgmu.bin -qcom/qcm6490/wpss.mbn -qcom/qcm6490/adspua.jsn -qcom/qcm6490/ipa_fws.mbn -qcom/qcm6490/a660_zap.mbn -qcom/qcm6490/cdsp.mbn -qcom/qcm6490/adsp.mbn -qcom/qcm6490/adspr.jsn -qcom/qcm6490/qupv3fw.elf -qcom/qcm6490/battmgr.jsn -qcom/qcm6490/adsps.jsn -qcom/qcm6490/cdspr.jsn -qcom/sm8350/a660_zap.mbn -qcom/x1e80100/adspua.jsn -qcom/x1e80100/X1E80100-LENOVO-Thinkpad-T14s-tplg.bin -qcom/x1e80100/gen70500_zap.mbn -qcom/x1e80100/LENOVO/83ED/adspua.jsn -qcom/x1e80100/LENOVO/83ED/qccdsp8380.mbn -qcom/x1e80100/LENOVO/83ED/qcadsp8380.mbn -qcom/x1e80100/LENOVO/83ED/qcvss8380.mbn -qcom/x1e80100/LENOVO/83ED/qcav1e8380.mbn -qcom/x1e80100/LENOVO/83ED/qcdxkmsuc8380.mbn -qcom/x1e80100/LENOVO/83ED/adspr.jsn -qcom/x1e80100/LENOVO/83ED/adsp_dtbs.elf -qcom/x1e80100/LENOVO/83ED/battmgr.jsn -qcom/x1e80100/LENOVO/83ED/adsps.jsn -qcom/x1e80100/LENOVO/83ED/X1E80100-LENOVO-Yoga-Slim7x-tplg.bin -qcom/x1e80100/LENOVO/83ED/cdspr.jsn -qcom/x1e80100/LENOVO/21N1/cdsp_dtbs.elf -qcom/x1e80100/LENOVO/21N1/adspua.jsn -qcom/x1e80100/LENOVO/21N1/X1E80100-LENOVO-Thinkpad-T14s-tplg.bin -qcom/x1e80100/LENOVO/21N1/qccdsp8380.mbn -qcom/x1e80100/LENOVO/21N1/qcadsp8380.mbn -qcom/x1e80100/LENOVO/21N1/qcvss8380.mbn -qcom/x1e80100/LENOVO/21N1/qcdxkmsuc8380.mbn -qcom/x1e80100/LENOVO/21N1/adspr.jsn -qcom/x1e80100/LENOVO/21N1/adsp_dtbs.elf -qcom/x1e80100/LENOVO/21N1/battmgr.jsn -qcom/x1e80100/LENOVO/21N1/adsps.jsn -qcom/x1e80100/LENOVO/21N1/cdspr.jsn -qcom/x1e80100/adsp.mbn -qcom/x1e80100/adspr.jsn -qcom/x1e80100/adsp_dtb.mbn -qcom/x1e80100/battmgr.jsn -qcom/x1e80100/adsps.jsn -qcom/x1e80100/X1E80100-LENOVO-Yoga-Slim7x-tplg.bin -qcom/leia_pm4_470.fw -qcom/a530_pfp.fw -qcom/a225_pm4.fw -qcom/qdu100/xbl_config.elf -qcom/qdu100/efs3.bin -qcom/qdu100/aop_devcfg.mbn -qcom/qdu100/efs2.bin -qcom/qdu100/qdsp6sw.mbn.xz -qcom/qdu100/aop.mbn -qcom/qdu100/mdmddr.mbn -qcom/qdu100/multi_image.mbn -qcom/qdu100/xbl_ramdump.elf -qcom/qdu100/qdsp6sw_dtbs.elf -qcom/qdu100/kernel_boot.elf -qcom/qdu100/efs1.bin -qcom/qdu100/cpucp.elf -qcom/qdu100/qupv3fw.elf -qcom/qdu100/tz.mbn -qcom/qdu100/fw_csm_gsi_3.0.elf -qcom/qdu100/shrm.elf -qcom/qdu100/multi_image_qti.mbn -qcom/qdu100/hypvm.mbn -qcom/qdu100/xbl_s.melf -qcom/qdu100/zeros_1sector.bin -qcom/qdu100/abl_userdebug.elf -qcom/qdu100/uefi.elf -qcom/yamato_pfp.fw -qcom/sa8775p/adspua.jsn -qcom/sa8775p/gpdsp1r.jsn -qcom/sa8775p/cdsp0.mbn -qcom/sa8775p/gpdspr.jsn -qcom/sa8775p/gpdsp1.mbn -qcom/sa8775p/a663_zap.mbn -qcom/sa8775p/adsp.mbn -qcom/sa8775p/adspr.jsn -qcom/sa8775p/gpdsp0.mbn -qcom/sa8775p/qupv3fw.elf -qcom/sa8775p/cdsp1.mbn -qcom/sa8775p/cdspr.jsn -qcom/aic100/fw1.bin -qcom/aic100/fw10.bin -qcom/aic100/sbl.bin -qcom/aic100/fw9.bin -qcom/aic100/fw5.bin -qcom/aic100/fw2.bin -qcom/a300_pfp.fw -qcom/gen70500_gmu.bin -qcom/venus-1.8/venus.mdt -qcom/venus-1.8/venus.mbn -qcom/a660_sqe.fw -qcom/qcs8300/adspua.jsn -qcom/qcs8300/cdsp0.mbn -qcom/qcs8300/a623_zap.mbn -qcom/qcs8300/adsp.mbn -qcom/qcs8300/adspr.jsn -qcom/qcs8300/gpdsp0.mbn -qcom/qcs8300/qupv3fw.elf -qcom/qcs8300/cdspr.jsn -qcom/venus-5.2/venus.mdt -qcom/venus-5.2/venus.mbn -qcom/a530_pm4.fw -qcom/a225_pfp.fw -qcom/a530_zap.mdt -qcom/a660_gmu.bin -qcom/gen71500_gmu.bin -qcom/vpu-2.0/venus.mbn +qca/nvm_usb_00190200_0106.bin +qca/QCA2066/nvm_usb_00130201_030a.bin +qca/QCA2066/nvm_usb_00130201_gf_030a.bin +qca/QCA2066/rampatch_usb_00130201.bin +qca/msnv11.bin +qca/htbtfw20.tlv +qca/hpnv21g.309 +qca/hpnv21.30a +qca/apbtfw10.tlv +qca/crnv21.bin qcom/leia_pfp_470.fw -qcom/vpu-1.0/venus.mdt -qcom/vpu-1.0/venus.mbn +qcom/a330_pfp.fw +qcom/a660_sqe.fw +qcom/a650_gmu.bin +qcom/x1p42100/gen71500_zap.mbn +qcom/a530_pm4.fw qcom/sm8550/SM8550-HDK-tplg.bin qcom/sm8550/SM8550-QRD-tplg.bin -qcom/apq8016/mba.mbn -qcom/apq8016/modem.mbn -qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin -qcom/apq8016/wcnss.mbn -qcom/qcs615/a612_zap.mbn -qcom/a420_pm4.fw -qcom/a630_gmu.bin -qcom/apq8096/modemr.jsn -qcom/apq8096/mba.mbn -qcom/apq8096/adspua.jsn -qcom/apq8096/modem.mbn -qcom/apq8096/a530_zap.mbn -qcom/apq8096/adsp.mbn -qcom/apq8096/adspr.jsn -qcom/qcm2290/modemr.jsn -qcom/qcm2290/adspua.jsn -qcom/qcm2290/modem.mbn -qcom/qcm2290/modemuw.jsn -qcom/qcm2290/wlanmdsp.mbn -qcom/qcm2290/adsp.mbn -qcom/qcm2290/a702_zap.mbn -qcom/qcm2290/adspr.jsn -qcom/qcm2290/adsps.jsn -qcom/x1p42100/gen71500_zap.mbn -qcom/a702_sqe.fw -qcom/a330_pfp.fw -qcom/sm8650/SM8650-QRD-tplg.bin -qcom/sm8650/SM8650-MTP-tplg.bin -qcom/sm8250/adspua.jsn -qcom/sm8250/a650_zap.mbn -qcom/sm8250/cdsp.mbn -qcom/sm8250/Thundercomm/RB5/slpi.mbn -qcom/sm8250/Thundercomm/RB5/slpius.jsn -qcom/sm8250/Thundercomm/RB5/slpir.jsn -qcom/sm8250/adsp.mbn -qcom/sm8250/adspr.jsn -qcom/sm8250/cdspr.jsn qcom/vpu/vpu30_p4.mbn -qcom/vpu/vpu20_p4.mbn +qcom/vpu/vpu30_p4_s6_16mb.mbn qcom/vpu/vpu30_p4_s6.mbn qcom/vpu/vpu20_p1_gen2.mbn -qcom/vpu/vpu20_p1.mbn +qcom/vpu/vpu20_p4.mbn qcom/vpu/vpu35_p4.mbn -qcom/vpu/vpu30_p4_s6_16mb.mbn -qcom/venus-6.0/venus.mbn -qcom/a530v3_gpmu.fw2 -qcom/a623_gmu.bin -qcom/venus-4.2/venus.mdt -qcom/venus-4.2/venus.mbn -qcom/a630_sqe.fw +qcom/vpu/vpu20_p1.mbn +qcom/sm8650/SM8650-MTP-tplg.bin +qcom/sm8650/SM8650-QRD-tplg.bin qcom/yamato_pm4.fw +qcom/a530_zap.mdt +qcom/venus-5.4/venus_s2.mbn +qcom/venus-5.4/venus.mbn +qcom/venus-5.4/venus.mdt +qcom/vpu-2.0/venus.mbn +qcom/a623_gmu.bin +qcom/qcs8300/a623_zap.mbn +qcom/qcs8300/cdspr.jsn +qcom/qcs8300/gpdsp0.mbn +qcom/qcs8300/adsp.mbn +qcom/qcs8300/cdsp0.mbn +qcom/qcs8300/adspua.jsn +qcom/qcs8300/qupv3fw.elf +qcom/qcs8300/adspr.jsn +qcom/sa8775p/gpdsp1.mbn +qcom/sa8775p/gpdspr.jsn +qcom/sa8775p/cdspr.jsn +qcom/sa8775p/gpdsp0.mbn +qcom/sa8775p/adsp.mbn +qcom/sa8775p/gpdsp1r.jsn +qcom/sa8775p/cdsp0.mbn +qcom/sa8775p/a663_zap.mbn +qcom/sa8775p/cdsp1.mbn +qcom/sa8775p/adspua.jsn +qcom/sa8775p/qupv3fw.elf +qcom/sa8775p/adspr.jsn +qcom/a225_pm4.fw +qcom/x1e80100/battmgr.jsn +qcom/x1e80100/adsp_dtb.mbn +qcom/x1e80100/gen70500_zap.mbn +qcom/x1e80100/adsp.mbn +qcom/x1e80100/X1E80100-LENOVO-Yoga-Slim7x-tplg.bin +qcom/x1e80100/LENOVO/21N1/battmgr.jsn +qcom/x1e80100/LENOVO/21N1/qcadsp8380.mbn +qcom/x1e80100/LENOVO/21N1/qccdsp8380.mbn +qcom/x1e80100/LENOVO/21N1/cdspr.jsn +qcom/x1e80100/LENOVO/21N1/qcdxkmsuc8380.mbn +qcom/x1e80100/LENOVO/21N1/adsp_dtbs.elf +qcom/x1e80100/LENOVO/21N1/cdsp_dtbs.elf +qcom/x1e80100/LENOVO/21N1/qcvss8380.mbn +qcom/x1e80100/LENOVO/21N1/X1E80100-LENOVO-Thinkpad-T14s-tplg.bin +qcom/x1e80100/LENOVO/21N1/adspua.jsn +qcom/x1e80100/LENOVO/21N1/adspr.jsn +qcom/x1e80100/LENOVO/21N1/adsps.jsn +qcom/x1e80100/LENOVO/83ED/battmgr.jsn +qcom/x1e80100/LENOVO/83ED/qcadsp8380.mbn +qcom/x1e80100/LENOVO/83ED/qccdsp8380.mbn +qcom/x1e80100/LENOVO/83ED/cdspr.jsn +qcom/x1e80100/LENOVO/83ED/qcav1e8380.mbn +qcom/x1e80100/LENOVO/83ED/qcdxkmsuc8380.mbn +qcom/x1e80100/LENOVO/83ED/X1E80100-LENOVO-Yoga-Slim7x-tplg.bin +qcom/x1e80100/LENOVO/83ED/adsp_dtbs.elf +qcom/x1e80100/LENOVO/83ED/qcvss8380.mbn +qcom/x1e80100/LENOVO/83ED/adspua.jsn +qcom/x1e80100/LENOVO/83ED/adspr.jsn +qcom/x1e80100/LENOVO/83ED/adsps.jsn +qcom/x1e80100/X1E80100-LENOVO-Thinkpad-T14s-tplg.bin +qcom/x1e80100/adspua.jsn +qcom/x1e80100/adspr.jsn +qcom/x1e80100/adsps.jsn +qcom/gen70500_sqe.fw +qcom/venus-5.2/venus.mbn +qcom/venus-5.2/venus.mdt +qcom/a530_pfp.fw +qcom/aic100/fw1.bin +qcom/aic100/fw9.bin +qcom/aic100/fw10.bin +qcom/aic100/sbl.bin +qcom/aic100/fw2.bin +qcom/aic100/fw5.bin +qcom/qcm2290/wlanmdsp.mbn +qcom/qcm2290/a702_zap.mbn +qcom/qcm2290/modemuw.jsn +qcom/qcm2290/adsp.mbn +qcom/qcm2290/modemr.jsn +qcom/qcm2290/modem.mbn +qcom/qcm2290/adspua.jsn +qcom/qcm2290/adspr.jsn +qcom/qcm2290/adsps.jsn +qcom/qcm6490/battmgr.jsn +qcom/qcm6490/ipa_fws.mbn +qcom/qcm6490/cdsp.mbn +qcom/qcm6490/cdspr.jsn +qcom/qcm6490/a660_zap.mbn +qcom/qcm6490/adsp.mbn +qcom/qcm6490/adspua.jsn +qcom/qcm6490/wpss.mbn +qcom/qcm6490/qupv3fw.elf +qcom/qcm6490/adspr.jsn +qcom/qcm6490/adsps.jsn +qcom/venus-4.2/venus.mbn +qcom/venus-4.2/venus.mdt +qcom/yamato_pfp.fw +qcom/sc8280xp/SC8280XP-LENOVO-X13S-tplg.bin +qcom/sc8280xp/LENOVO/21BX/battmgr.jsn +qcom/sc8280xp/LENOVO/21BX/cdspr.jsn +qcom/sc8280xp/LENOVO/21BX/qcvss8280.mbn +qcom/sc8280xp/LENOVO/21BX/audioreach-tplg.bin +qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn +qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn +qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn +qcom/sc8280xp/LENOVO/21BX/adspua.jsn +qcom/sc8280xp/LENOVO/21BX/qcslpi8280.mbn +qcom/sc8280xp/LENOVO/21BX/adspr.jsn +qcom/apq8096/adsp.mbn +qcom/apq8096/modemr.jsn +qcom/apq8096/modem.mbn +qcom/apq8096/adspua.jsn +qcom/apq8096/mba.mbn +qcom/apq8096/adspr.jsn +qcom/apq8096/a530_zap.mbn +qcom/a530v3_gpmu.fw2 +qcom/apq8016/wcnss.mbn +qcom/apq8016/modem.mbn +qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin +qcom/apq8016/mba.mbn +qcom/a630_gmu.bin +qcom/a650_sqe.fw +qcom/sm8250/Thundercomm/RB5/slpir.jsn +qcom/sm8250/Thundercomm/RB5/slpi.mbn +qcom/sm8250/Thundercomm/RB5/slpius.jsn +qcom/sm8250/cdsp.mbn +qcom/sm8250/cdspr.jsn +qcom/sm8250/adsp.mbn +qcom/sm8250/a650_zap.mbn +qcom/sm8250/adspua.jsn +qcom/sm8250/adspr.jsn +qcom/qrb4210/a610_zap.mbn +qcom/qrb4210/cdsp.mbn +qcom/qrb4210/cdspr.jsn +qcom/qrb4210/wlanmdsp.mbn +qcom/qrb4210/modemuw.jsn +qcom/qrb4210/adsp.mbn +qcom/qrb4210/modemr.jsn +qcom/qrb4210/modem.mbn +qcom/qrb4210/adspua.jsn +qcom/qrb4210/adspr.jsn +qcom/qrb4210/adsps.jsn +qcom/a702_sqe.fw +qcom/a420_pm4.fw +qcom/sm8350/a660_zap.mbn +qcom/vpu-1.0/venus.mbn +qcom/vpu-1.0/venus.mdt +qcom/leia_pm4_470.fw +qcom/a420_pfp.fw +qcom/gen70500_gmu.bin +qcom/a660_gmu.bin +qcom/a225_pfp.fw +qcom/a630_sqe.fw +qcom/a330_pm4.fw +qcom/sdm845/Thundercomm/db845c/slpir.jsn +qcom/sdm845/Thundercomm/db845c/slpi.mbn +qcom/sdm845/Thundercomm/db845c/slpius.jsn +qcom/sdm845/cdsp.mbn +qcom/sdm845/cdspr.jsn +qcom/sdm845/wlanmdsp.mbn +qcom/sdm845/modemuw.jsn +qcom/sdm845/adsp.mbn +qcom/sdm845/modem_nm.mbn +qcom/sdm845/modem.mbn +qcom/sdm845/adspua.jsn +qcom/sdm845/mba.mbn +qcom/sdm845/a630_zap.mbn +qcom/sdm845/adspr.jsn +qcom/gen71500_gmu.bin +qcom/a300_pm4.fw +qcom/a612_rgmu.bin +qcom/venus-1.8/venus.mbn +qcom/venus-1.8/venus.mdt +qcom/qdu100/xbl_config.elf +qcom/qdu100/aop_devcfg.mbn +qcom/qdu100/efs1.bin +qcom/qdu100/xbl_ramdump.elf +qcom/qdu100/multi_image_qti.mbn +qcom/qdu100/abl_userdebug.elf +qcom/qdu100/tz.mbn +qcom/qdu100/cpucp.elf +qcom/qdu100/qdsp6sw.mbn.xz +qcom/qdu100/qdsp6sw_dtbs.elf +qcom/qdu100/zeros_1sector.bin +qcom/qdu100/hypvm.mbn +qcom/qdu100/uefi.elf +qcom/qdu100/efs3.bin +qcom/qdu100/multi_image.mbn +qcom/qdu100/shrm.elf +qcom/qdu100/xbl_s.melf +qcom/qdu100/aop.mbn +qcom/qdu100/qupv3fw.elf +qcom/qdu100/efs2.bin +qcom/qdu100/mdmddr.mbn +qcom/qdu100/fw_csm_gsi_3.0.elf +qcom/qdu100/kernel_boot.elf +qcom/a300_pfp.fw +qcom/a663_gmu.bin +qcom/gen71500_sqe.fw +qcom/qcs6490/battmgr.jsn +qcom/qcs6490/cdsp.mbn +qcom/qcs6490/cdspr.jsn +qcom/qcs6490/QCS6490-RB3Gen2-tplg.bin +qcom/qcs6490/a660_zap.mbn +qcom/qcs6490/adsp.mbn +qcom/qcs6490/adspua.jsn +qcom/qcs6490/wpss.mbn +qcom/qcs6490/qupv3fw.elf +qcom/qcs6490/adspr.jsn +qcom/qcs6490/adsps.jsn +qcom/venus-6.0/venus.mbn qcom/sdx61/foxconn/prog_firehose_lite.elf -qed/qed_init_values_zipped-8.33.11.0.bin -qed/qed_init_values_zipped-8.59.1.0.bin -qed/qed_init_values_zipped-8.10.5.0.bin -qed/qed_init_values-8.30.12.0.bin -qed/qed_init_values-8.37.7.0.bin -qed/qed_init_values_zipped-8.15.3.0.bin -qed/qed_init_values_zipped-8.10.10.0.bin -qed/qed_init_values-8.10.9.0.bin -qed/qed_init_values_zipped-8.20.0.0.bin +qcom/qcs615/a612_zap.mbn qed/qed_init_values-8.33.12.0.bin -qed/qed_init_values-8.20.0.0.bin -qed/qed_init_values_zipped-8.4.2.0.bin qed/qed_init_values_zipped-8.37.2.0.bin qed/qed_init_values_zipped-8.42.2.0.bin +qed/qed_init_values-8.10.9.0.bin +qed/qed_init_values-8.20.0.0.bin qed/qed_init_values_zipped-8.7.3.0.bin +qed/qed_init_values_zipped-8.15.3.0.bin qed/qed_init_values-8.40.33.0.bin +qed/qed_init_values_zipped-8.10.5.0.bin qed/qed_init_values-8.14.6.0.bin +qed/qed_init_values_zipped-8.4.2.0.bin +qed/qed_init_values-8.37.7.0.bin +qed/qed_init_values-8.30.12.0.bin +qed/qed_init_values_zipped-8.20.0.0.bin qed/qed_init_values_zipped-8.37.7.0.bin -qed/qed_init_values-8.18.9.0.bin qed/qed_init_values_zipped-8.33.1.0.bin +qed/qed_init_values_zipped-8.33.11.0.bin +qed/qed_init_values_zipped-8.10.10.0.bin +qed/qed_init_values-8.18.9.0.bin +qed/qed_init_values_zipped-8.59.1.0.bin ql2100_fw.bin ql2200_fw.bin ql2300_fw.bin ql2322_fw.bin ql2400_fw.bin ql2500_fw.bin -qlogic/12160.bin -qlogic/1040.bin -qlogic/1280.bin qlogic/sd7220.fw qlogic/isp1000.bin +qlogic/1040.bin +qlogic/1280.bin +qlogic/12160.bin r128/r128_cce.bin r8a779x_usb3_v1.dlmem r8a779x_usb3_v2.dlmem r8a779x_usb3_v3.dlmem -radeon/PITCAIRN_mc.bin -radeon/CAICOS_smc.bin -radeon/CEDAR_pfp.bin -radeon/TAHITI_smc.bin -radeon/REDWOOD_pfp.bin -radeon/kabini_sdma1.bin -radeon/kaveri_mec.bin -radeon/bonaire_pfp.bin -radeon/BONAIRE_mc2.bin -radeon/bonaire_me.bin -radeon/JUNIPER_pfp.bin -radeon/tahiti_mc.bin -radeon/KABINI_ce.bin -radeon/kabini_rlc.bin -radeon/HAINAN_ce.bin -radeon/hawaii_uvd.bin -radeon/verde_mc.bin -radeon/kabini_pfp.bin -radeon/R420_cp.bin -radeon/BONAIRE_vce.bin -radeon/OLAND_rlc.bin -radeon/hainan_rlc.bin -radeon/PALM_pfp.bin -radeon/mullins_vce.bin -radeon/R300_cp.bin -radeon/RV770_pfp.bin -radeon/HAINAN_mc.bin -radeon/HAWAII_sdma.bin -radeon/RV740_smc.bin -radeon/SUMO_uvd.bin -radeon/RV630_pfp.bin -radeon/bonaire_uvd.bin -radeon/BONAIRE_uvd.bin -radeon/SUMO_rlc.bin -radeon/KABINI_me.bin -radeon/HAINAN_me.bin -radeon/KABINI_rlc.bin -radeon/banks_k_2_smc.bin -radeon/TAHITI_rlc.bin -radeon/BONAIRE_me.bin -radeon/VERDE_rlc.bin -radeon/hawaii_sdma1.bin -radeon/verde_me.bin -radeon/MULLINS_me.bin -radeon/RV670_pfp.bin -radeon/BONAIRE_rlc.bin -radeon/CAICOS_mc.bin -radeon/HAWAII_mec.bin -radeon/RV635_pfp.bin -radeon/OLAND_smc.bin -radeon/kaveri_vce.bin -radeon/oland_ce.bin -radeon/BARTS_me.bin -radeon/kabini_uvd.bin -radeon/CAICOS_pfp.bin -radeon/KAVERI_pfp.bin -radeon/TAHITI_ce.bin -radeon/CAYMAN_me.bin -radeon/KAVERI_ce.bin -radeon/KABINI_pfp.bin -radeon/BONAIRE_sdma.bin -radeon/tahiti_smc.bin -radeon/R600_me.bin -radeon/HAWAII_me.bin -radeon/hawaii_rlc.bin radeon/R200_cp.bin -radeon/REDWOOD_rlc.bin -radeon/tahiti_pfp.bin -radeon/ARUBA_rlc.bin -radeon/KAVERI_mec.bin -radeon/hawaii_pfp.bin -radeon/bonaire_ce.bin -radeon/HAWAII_smc.bin -radeon/MULLINS_ce.bin -radeon/verde_k_smc.bin -radeon/HAWAII_rlc.bin -radeon/SUMO_me.bin -radeon/oland_smc.bin -radeon/PITCAIRN_rlc.bin -radeon/pitcairn_pfp.bin -radeon/RS780_uvd.bin -radeon/bonaire_vce.bin -radeon/oland_k_smc.bin -radeon/kaveri_pfp.bin -radeon/kaveri_mec2.bin -radeon/mullins_pfp.bin -radeon/RV770_smc.bin -radeon/RV770_uvd.bin -radeon/RV730_pfp.bin -radeon/RV620_pfp.bin -radeon/verde_rlc.bin -radeon/hawaii_k_smc.bin -radeon/tahiti_me.bin -radeon/RS600_cp.bin -radeon/TAHITI_me.bin -radeon/CAYMAN_mc.bin -radeon/mullins_sdma.bin -radeon/CAYMAN_smc.bin -radeon/KAVERI_sdma.bin -radeon/pitcairn_mc.bin -radeon/OLAND_mc.bin -radeon/hawaii_mec.bin -radeon/CAYMAN_pfp.bin -radeon/kaveri_uvd.bin -radeon/TAHITI_vce.bin -radeon/BONAIRE_ce.bin -radeon/kaveri_sdma.bin -radeon/SUMO2_pfp.bin -radeon/hawaii_smc.bin -radeon/R600_uvd.bin -radeon/bonaire_sdma1.bin -radeon/CAICOS_me.bin -radeon/verde_smc.bin -radeon/RV770_me.bin -radeon/R100_cp.bin -radeon/mullins_sdma1.bin -radeon/PALM_me.bin -radeon/hainan_ce.bin -radeon/REDWOOD_me.bin -radeon/HAINAN_rlc.bin -radeon/mullins_me.bin -radeon/hainan_mc.bin -radeon/CYPRESS_me.bin -radeon/bonaire_mec.bin -radeon/TURKS_mc.bin -radeon/hainan_pfp.bin -radeon/HAINAN_mc2.bin -radeon/BONAIRE_mc.bin -radeon/BONAIRE_pfp.bin -radeon/VERDE_pfp.bin -radeon/OLAND_ce.bin -radeon/TAHITI_pfp.bin -radeon/mullins_mec.bin -radeon/kaveri_rlc.bin -radeon/hawaii_mc.bin -radeon/RV730_smc.bin -radeon/oland_rlc.bin -radeon/pitcairn_smc.bin -radeon/JUNIPER_smc.bin -radeon/TAHITI_mc2.bin -radeon/kaveri_me.bin -radeon/pitcairn_ce.bin -radeon/VERDE_me.bin +radeon/HAINAN_me.bin radeon/RV610_me.bin -radeon/RV635_me.bin -radeon/OLAND_me.bin -radeon/bonaire_rlc.bin -radeon/hainan_me.bin -radeon/TAHITI_uvd.bin -radeon/HAINAN_smc.bin radeon/hawaii_ce.bin radeon/BONAIRE_mec.bin -radeon/kabini_mec.bin -radeon/bonaire_mc.bin -radeon/VERDE_ce.bin -radeon/CYPRESS_smc.bin -radeon/RV730_me.bin -radeon/TURKS_me.bin -radeon/HAINAN_pfp.bin -radeon/pitcairn_k_smc.bin -radeon/HAWAII_mc2.bin -radeon/PITCAIRN_smc.bin -radeon/RV710_me.bin -radeon/bonaire_sdma.bin -radeon/mullins_uvd.bin -radeon/bonaire_k_smc.bin -radeon/oland_pfp.bin -radeon/BONAIRE_smc.bin -radeon/KAVERI_me.bin -radeon/tahiti_rlc.bin -radeon/R520_cp.bin -radeon/hainan_k_smc.bin -radeon/hawaii_me.bin -radeon/kabini_ce.bin -radeon/RV630_me.bin -radeon/kaveri_ce.bin -radeon/JUNIPER_me.bin -radeon/SUMO2_me.bin -radeon/PITCAIRN_me.bin -radeon/mullins_rlc.bin -radeon/PITCAIRN_mc2.bin -radeon/oland_me.bin -radeon/RV620_me.bin -radeon/pitcairn_me.bin -radeon/JUNIPER_rlc.bin -radeon/CAYMAN_rlc.bin -radeon/HAWAII_mc.bin -radeon/oland_mc.bin -radeon/si58_mc.bin -radeon/BARTS_smc.bin -radeon/TURKS_pfp.bin -radeon/HAWAII_ce.bin -radeon/CEDAR_rlc.bin -radeon/verde_ce.bin -radeon/bonaire_smc.bin -radeon/ARUBA_me.bin -radeon/KAVERI_rlc.bin -radeon/CEDAR_smc.bin -radeon/hainan_smc.bin -radeon/CEDAR_me.bin -radeon/ARUBA_pfp.bin -radeon/CYPRESS_uvd.bin -radeon/KABINI_sdma.bin -radeon/CYPRESS_rlc.bin -radeon/HAWAII_pfp.bin -radeon/OLAND_pfp.bin -radeon/RV670_me.bin -radeon/VERDE_mc.bin -radeon/MULLINS_mec.bin -radeon/tahiti_ce.bin -radeon/tahiti_k_smc.bin -radeon/pitcairn_rlc.bin -radeon/REDWOOD_smc.bin -radeon/hawaii_sdma.bin -radeon/RS780_pfp.bin +radeon/oland_rlc.bin +radeon/RV730_smc.bin radeon/BARTS_mc.bin -radeon/RV610_pfp.bin -radeon/kaveri_sdma1.bin +radeon/BONAIRE_vce.bin +radeon/bonaire_me.bin +radeon/bonaire_k_smc.bin +radeon/REDWOOD_me.bin +radeon/tahiti_mc.bin +radeon/HAWAII_sdma.bin +radeon/tahiti_rlc.bin +radeon/mullins_sdma1.bin +radeon/kaveri_sdma.bin +radeon/kabini_uvd.bin +radeon/TAHITI_uvd.bin +radeon/TAHITI_ce.bin +radeon/CYPRESS_smc.bin radeon/OLAND_mc2.bin -radeon/RV710_pfp.bin -radeon/MULLINS_sdma.bin -radeon/RV710_uvd.bin -radeon/kabini_vce.bin -radeon/kabini_me.bin -radeon/R600_pfp.bin -radeon/VERDE_mc2.bin -radeon/PITCAIRN_pfp.bin -radeon/BTC_rlc.bin -radeon/VERDE_smc.bin -radeon/mullins_ce.bin -radeon/RS690_cp.bin -radeon/SUMO_pfp.bin -radeon/R600_rlc.bin -radeon/KABINI_mec.bin +radeon/PITCAIRN_rlc.bin +radeon/TAHITI_rlc.bin +radeon/OLAND_ce.bin +radeon/hawaii_pfp.bin +radeon/bonaire_rlc.bin +radeon/CEDAR_smc.bin radeon/RV710_smc.bin -radeon/RS780_me.bin -radeon/MULLINS_pfp.bin -radeon/verde_pfp.bin -radeon/BARTS_pfp.bin -radeon/TAHITI_mc.bin -radeon/hawaii_vce.bin -radeon/R700_rlc.bin -radeon/TURKS_smc.bin -radeon/MULLINS_rlc.bin -radeon/CYPRESS_pfp.bin -radeon/PITCAIRN_ce.bin +radeon/BONAIRE_ce.bin +radeon/KAVERI_sdma.bin +radeon/RV670_me.bin +radeon/hawaii_uvd.bin +radeon/HAINAN_pfp.bin +radeon/BONAIRE_uvd.bin +radeon/SUMO_uvd.bin +radeon/REDWOOD_pfp.bin +radeon/hainan_rlc.bin +radeon/MULLINS_sdma.bin radeon/kabini_sdma.bin -realtek/rt1320/rt1320-patch-code-vc.bin +radeon/HAINAN_rlc.bin +radeon/BONAIRE_mc.bin +radeon/VERDE_ce.bin +radeon/RS780_pfp.bin +radeon/verde_ce.bin +radeon/R600_uvd.bin +radeon/SUMO2_me.bin +radeon/HAWAII_pfp.bin +radeon/RV710_uvd.bin +radeon/bonaire_mc.bin +radeon/kaveri_mec.bin +radeon/kaveri_pfp.bin +radeon/CAYMAN_rlc.bin +radeon/mullins_ce.bin +radeon/PALM_pfp.bin +radeon/MULLINS_me.bin +radeon/MULLINS_rlc.bin +radeon/RV620_me.bin +radeon/hainan_smc.bin +radeon/PITCAIRN_pfp.bin +radeon/HAWAII_mec.bin +radeon/CAICOS_mc.bin +radeon/hawaii_sdma.bin +radeon/bonaire_pfp.bin +radeon/hawaii_smc.bin +radeon/verde_smc.bin +radeon/SUMO2_pfp.bin +radeon/ARUBA_rlc.bin +radeon/bonaire_ce.bin +radeon/R520_cp.bin +radeon/R300_cp.bin +radeon/RV770_uvd.bin +radeon/VERDE_pfp.bin +radeon/pitcairn_pfp.bin +radeon/hainan_mc.bin +radeon/PITCAIRN_mc.bin +radeon/mullins_vce.bin +radeon/bonaire_sdma.bin +radeon/JUNIPER_rlc.bin +radeon/tahiti_ce.bin +radeon/CYPRESS_uvd.bin +radeon/RV770_pfp.bin +radeon/kabini_mec.bin +radeon/kaveri_ce.bin +radeon/hainan_pfp.bin +radeon/TURKS_pfp.bin +radeon/pitcairn_mc.bin +radeon/KABINI_sdma.bin +radeon/OLAND_pfp.bin +radeon/RV770_me.bin +radeon/RV670_pfp.bin +radeon/R420_cp.bin +radeon/RV710_me.bin +radeon/kaveri_mec2.bin +radeon/PITCAIRN_ce.bin +radeon/verde_k_smc.bin +radeon/R700_rlc.bin +radeon/verde_rlc.bin +radeon/TAHITI_smc.bin +radeon/CAICOS_pfp.bin +radeon/HAWAII_smc.bin +radeon/REDWOOD_smc.bin +radeon/TAHITI_pfp.bin +radeon/CAYMAN_me.bin +radeon/HAWAII_mc.bin +radeon/CAYMAN_mc.bin +radeon/tahiti_smc.bin +radeon/si58_mc.bin +radeon/BONAIRE_rlc.bin +radeon/CAICOS_smc.bin +radeon/VERDE_mc2.bin +radeon/TAHITI_me.bin +radeon/tahiti_k_smc.bin +radeon/RV635_me.bin +radeon/HAWAII_ce.bin +radeon/MULLINS_ce.bin +radeon/kaveri_me.bin +radeon/MULLINS_mec.bin +radeon/oland_ce.bin +radeon/ARUBA_pfp.bin +radeon/CEDAR_pfp.bin +radeon/KABINI_ce.bin +radeon/pitcairn_k_smc.bin +radeon/SUMO_rlc.bin +radeon/hawaii_me.bin +radeon/REDWOOD_rlc.bin +radeon/hawaii_k_smc.bin +radeon/kabini_pfp.bin +radeon/hawaii_sdma1.bin +radeon/kabini_rlc.bin +radeon/KABINI_mec.bin +radeon/hainan_k_smc.bin +radeon/TURKS_me.bin +radeon/BARTS_pfp.bin +radeon/R100_cp.bin +radeon/TURKS_smc.bin +radeon/BONAIRE_sdma.bin +radeon/HAINAN_mc2.bin +radeon/ARUBA_me.bin +radeon/BONAIRE_pfp.bin +radeon/bonaire_uvd.bin +radeon/HAINAN_ce.bin +radeon/R600_pfp.bin +radeon/mullins_uvd.bin +radeon/VERDE_smc.bin +radeon/TAHITI_mc2.bin +radeon/mullins_rlc.bin +radeon/CYPRESS_rlc.bin +radeon/CYPRESS_me.bin +radeon/SUMO_me.bin +radeon/hawaii_mec.bin +radeon/hawaii_vce.bin +radeon/pitcairn_rlc.bin +radeon/OLAND_smc.bin +radeon/kaveri_vce.bin +radeon/RV610_pfp.bin +radeon/RS600_cp.bin +radeon/RV710_pfp.bin +radeon/R600_rlc.bin +radeon/mullins_pfp.bin +radeon/hainan_me.bin +radeon/BARTS_smc.bin +radeon/HAINAN_mc.bin +radeon/VERDE_mc.bin +radeon/verde_pfp.bin +radeon/PITCAIRN_smc.bin +radeon/RV730_pfp.bin +radeon/bonaire_vce.bin +radeon/mullins_me.bin +radeon/RS780_uvd.bin +radeon/kabini_me.bin +radeon/JUNIPER_smc.bin +radeon/KAVERI_pfp.bin +radeon/HAWAII_mc2.bin +radeon/RV630_pfp.bin +radeon/RV730_me.bin +radeon/BONAIRE_mc2.bin +radeon/hawaii_rlc.bin +radeon/TAHITI_mc.bin +radeon/pitcairn_ce.bin +radeon/SUMO_pfp.bin +radeon/bonaire_smc.bin +radeon/CAYMAN_smc.bin +radeon/BONAIRE_me.bin +radeon/RV630_me.bin +radeon/oland_k_smc.bin +radeon/BARTS_me.bin +radeon/tahiti_pfp.bin +radeon/oland_mc.bin +radeon/hawaii_mc.bin +radeon/bonaire_sdma1.bin +radeon/R600_me.bin +radeon/RV620_pfp.bin +radeon/mullins_sdma.bin +radeon/RS690_cp.bin +radeon/KAVERI_ce.bin +radeon/CAICOS_me.bin +radeon/JUNIPER_pfp.bin +radeon/PITCAIRN_me.bin +radeon/KABINI_rlc.bin +radeon/PITCAIRN_mc2.bin +radeon/kaveri_uvd.bin +radeon/HAINAN_smc.bin +radeon/oland_smc.bin +radeon/RV770_smc.bin +radeon/oland_pfp.bin +radeon/KAVERI_me.bin +radeon/CAYMAN_pfp.bin +radeon/OLAND_me.bin +radeon/KAVERI_rlc.bin +radeon/kaveri_sdma1.bin +radeon/KABINI_pfp.bin +radeon/CEDAR_me.bin +radeon/verde_mc.bin +radeon/BONAIRE_smc.bin +radeon/kaveri_rlc.bin +radeon/MULLINS_pfp.bin +radeon/pitcairn_smc.bin +radeon/OLAND_mc.bin +radeon/verde_me.bin +radeon/oland_me.bin +radeon/CEDAR_rlc.bin +radeon/OLAND_rlc.bin +radeon/kabini_vce.bin +radeon/kabini_sdma1.bin +radeon/VERDE_me.bin +radeon/TURKS_mc.bin +radeon/JUNIPER_me.bin +radeon/pitcairn_me.bin +radeon/RS780_me.bin +radeon/tahiti_me.bin +radeon/VERDE_rlc.bin +radeon/banks_k_2_smc.bin +radeon/TAHITI_vce.bin +radeon/KAVERI_mec.bin +radeon/RV635_pfp.bin +radeon/PALM_me.bin +radeon/CYPRESS_pfp.bin +radeon/HAWAII_rlc.bin +radeon/BTC_rlc.bin +radeon/kabini_ce.bin +radeon/mullins_mec.bin +radeon/KABINI_me.bin +radeon/bonaire_mec.bin +radeon/hainan_ce.bin +radeon/RV740_smc.bin +radeon/HAWAII_me.bin realtek/rt1320/rt1320-patch-code-vab.bin +realtek/rt1320/rt1320-patch-code-vc.bin rockchip/dptx.bin rp2.fw -rsi/rs9113_ap_bt_dual_mode.rps -rsi/rs9113_wlan_qspi.rps rsi/rs9113_wlan_bt_dual_mode.rps -rsi/rs9116_wlan_bt_classic.rps +rsi/rs9113_wlan_qspi.rps +rsi/rs9113_ap_bt_dual_mode.rps rsi/rs9116_wlan.rps +rsi/rs9116_wlan_bt_classic.rps rsi_91x.fw rt2561.bin rt2561s.bin @@ -4691,152 +4691,152 @@ rt3071.bin rt3090.bin rt3290.bin rt73.bin -rtl_bt/rtl8761bu_config.bin rtl_bt/rtl8922au_config.bin -rtl_bt/rtl8723cs_xx_fw.bin -rtl_bt/rtl8852bu_config.bin -rtl_bt/rtl8852cu_config.bin -rtl_bt/rtl8822cu_fw.bin -rtl_bt/rtl8821cs_fw.bin -rtl_bt/rtl8852btu_config.bin -rtl_bt/rtl8822b_config.bin -rtl_bt/rtl8821c_fw.bin -rtl_bt/rtl8822cs_config.bin rtl_bt/rtl8723bs_fw.bin -rtl_bt/rtl8192eu_fw.bin -rtl_bt/rtl8761bu_fw.bin -rtl_bt/rtl8852au_fw.bin -rtl_bt/rtl8851bu_fw.bin -rtl_bt/rtl8723bs_config.bin -rtl_bt/rtl8852bu_fw.bin -rtl_bt/rtl8761b_fw.bin -rtl_bt/rtl8922au_fw.bin -rtl_bt/rtl8723b_fw.bin -rtl_bt/rtl8192ee_fw.bin -rtl_bt/rtl8822cs_fw.bin -rtl_bt/rtl8723cs_xx_config.bin -rtl_bt/rtl8852cu_fw_v2.bin -rtl_bt/rtl8852au_config.bin +rtl_bt/rtl8852btu_fw.bin +rtl_bt/rtl8723cs_xx_fw.bin rtl_bt/rtl8821a_fw.bin +rtl_bt/rtl8852bu_fw.bin +rtl_bt/rtl8852au_config.bin +rtl_bt/rtl8723bs_config.bin rtl_bt/rtl8812ae_fw.bin -rtl_bt/rtl8821a_config.bin -rtl_bt/rtl8822b_fw.bin rtl_bt/rtl8851bu_config.bin -rtl_bt/rtl8761b_config.bin -rtl_bt/rtl8761a_fw.bin +rtl_bt/rtl8761bu_config.bin +rtl_bt/rtl8852btu_config.bin +rtl_bt/rtl8852bu_config.bin +rtl_bt/rtl8822cu_config.bin +rtl_bt/rtl8761bu_fw.bin +rtl_bt/rtl8821c_fw.bin +rtl_bt/rtl8852au_fw.bin +rtl_bt/rtl8822cu_fw.bin +rtl_bt/rtl8723d_fw.bin +rtl_bt/rtl8922au_fw.bin +rtl_bt/rtl8821c_config.bin +rtl_bt/rtl8822b_config.bin +rtl_bt/rtl8822b_fw.bin +rtl_bt/rtl8821cs_fw.bin +rtl_bt/rtl8822cs_config.bin +rtl_bt/rtl8852cu_fw_v2.bin +rtl_bt/rtl8723a_fw.bin +rtl_bt/rtl8723cs_xx_config.bin +rtl_bt/rtl8852cu_fw.bin rtl_bt/rtl8723d_config.bin rtl_bt/rtl8723bs_config-OBDA0623.bin -rtl_bt/rtl8821c_config.bin -rtl_bt/rtl8723d_fw.bin -rtl_bt/rtl8852btu_fw.bin +rtl_bt/rtl8852cu_config.bin +rtl_bt/rtl8761a_fw.bin +rtl_bt/rtl8761b_fw.bin rtl_bt/rtl8723bs_config-OBDA8723.bin -rtl_bt/rtl8852cu_fw.bin +rtl_bt/rtl8822cs_fw.bin +rtl_bt/rtl8192eu_fw.bin +rtl_bt/rtl8761b_config.bin rtl_bt/rtl8821cs_config.bin -rtl_bt/rtl8822cu_config.bin -rtl_bt/rtl8723a_fw.bin -rtl_nic/rtl8168fp-3.fw -rtl_nic/rtl8125b-1.fw -rtl_nic/rtl8168e-1.fw -rtl_nic/rtl8106e-1.fw -rtl_nic/rtl8156b-2.fw -rtl_nic/rtl8168g-3.fw -rtl_nic/rtl8168g-2.fw -rtl_nic/rtl8153a-4.fw -rtl_nic/rtl8126a-2.fw -rtl_nic/rtl8153a-3.fw -rtl_nic/rtl8107e-2.fw -rtl_nic/rtl8125a-3.fw -rtl_nic/rtl8125d-2.fw +rtl_bt/rtl8723b_fw.bin +rtl_bt/rtl8821a_config.bin +rtl_bt/rtl8851bu_fw.bin +rtl_bt/rtl8192ee_fw.bin rtl_nic/rtl8168h-2.fw -rtl_nic/rtl8105e-1.fw -rtl_nic/rtl8168h-1.fw -rtl_nic/rtl8411-2.fw -rtl_nic/rtl8411-1.fw -rtl_nic/rtl8153c-1.fw -rtl_nic/rtl8127a-1.fw -rtl_nic/rtl8168d-1.fw -rtl_nic/rtl8168f-2.fw -rtl_nic/rtl8153a-2.fw +rtl_nic/rtl8168e-1.fw rtl_nic/rtl8168e-2.fw -rtl_nic/rtl8107e-1.fw +rtl_nic/rtl8168d-1.fw +rtl_nic/rtl8153a-2.fw +rtl_nic/rtl8106e-1.fw +rtl_nic/rtl8107e-2.fw +rtl_nic/rtl8168e-3.fw rtl_nic/rtl8125d-1.fw +rtl_nic/rtl8168g-3.fw +rtl_nic/rtl8126a-2.fw +rtl_nic/rtl8153c-1.fw +rtl_nic/rtl8107e-1.fw +rtl_nic/rtl8411-2.fw +rtl_nic/rtl8126a-3.fw +rtl_nic/rtl8153a-4.fw +rtl_nic/rtl8153b-2.fw rtl_nic/rtl8156a-2.fw +rtl_nic/rtl8168f-2.fw +rtl_nic/rtl8106e-2.fw +rtl_nic/rtl8168h-1.fw +rtl_nic/rtl8411-1.fw +rtl_nic/rtl8168g-2.fw +rtl_nic/rtl8125d-2.fw +rtl_nic/rtl8168fp-3.fw rtl_nic/rtl8168f-1.fw +rtl_nic/rtl8105e-1.fw +rtl_nic/rtl8127a-1.fw rtl_nic/rtl8402-1.fw +rtl_nic/rtl8125b-2.fw +rtl_nic/rtl8153a-3.fw +rtl_nic/rtl8125a-3.fw +rtl_nic/rtl8125b-1.fw +rtl_nic/rtl8168d-2.fw +rtl_nic/rtl8156b-2.fw rtl_nic/rtl8168g-1.fw rtl_nic/rtl8125bp-2.fw -rtl_nic/rtl8126a-3.fw -rtl_nic/rtl8168e-3.fw -rtl_nic/rtl8168d-2.fw -rtl_nic/rtl8106e-2.fw -rtl_nic/rtl8125b-2.fw -rtl_nic/rtl8153b-2.fw -rtlwifi/rtl8723bu_ap_wowlan.bin -rtlwifi/rtl8812aefw.bin -rtlwifi/rtl8723bs_ap_wowlan.bin -rtlwifi/rtl8188fufw.bin -rtlwifi/rtl8821aefw_wowlan.bin -rtlwifi/rtl8192cufw_A.bin -rtlwifi/rtl8723bu_nic.bin -rtlwifi/rtl8723befw_36.bin +rtlwifi/rtl8821aefw_29.bin rtlwifi/rtl8192defw.bin -rtlwifi/rtl8192cfw.bin -rtlwifi/rtl8192cufw.bin -rtlwifi/rtl8710bufw_UMC.bin -rtlwifi/rtl8723fw.bin -rtlwifi/rtl8723aufw_A.bin -rtlwifi/rtl8723bs_nic.bin -rtlwifi/rtl8822befw.bin -rtlwifi/rtl8188efw.bin -rtlwifi/rtl8723bs_bt.bin -rtlwifi/rtl8192dufw.bin -rtlwifi/rtl8192eu_ap_wowlan.bin -rtlwifi/rtl8192eefw.bin -rtlwifi/rtl8723aufw_B_NoBT.bin -rtlwifi/rtl8723bu_wowlan.bin -rtlwifi/rtl8192eu_nic.bin -rtlwifi/rtl8192cfwU_B.bin -rtlwifi/rtl8723fw_B.bin -rtlwifi/rtl8723aufw_B.bin -rtlwifi/rtl8192sefw.bin -rtlwifi/rtl8192eu_wowlan.bin rtlwifi/rtl8192fufw.bin +rtlwifi/rtl8821aefw_wowlan.bin +rtlwifi/rtl8192eu_nic.bin +rtlwifi/rtl8192eu_ap_wowlan.bin +rtlwifi/rtl8822befw.bin rtlwifi/rtl8188eufw.bin +rtlwifi/rtl8723fw.bin +rtlwifi/rtl8192sefw.bin +rtlwifi/rtl8710bufw_UMC.bin +rtlwifi/rtl8192cufw.bin rtlwifi/rtl8723bs_wowlan.bin +rtlwifi/rtl8723bs_nic.bin +rtlwifi/rtl8712u.bin +rtlwifi/rtl8723fw_B.bin +rtlwifi/rtl8812aefw.bin +rtlwifi/rtl8723aufw_B_NoBT.bin +rtlwifi/rtl8723aufw_A.bin +rtlwifi/rtl8192cufw_TMSC.bin +rtlwifi/rtl8192eefw.bin +rtlwifi/rtl8192cfwU_B.bin +rtlwifi/rtl8723bs_ap_wowlan.bin +rtlwifi/rtl8192dufw.bin +rtlwifi/rtl8188fufw.bin +rtlwifi/rtl8723defw.bin +rtlwifi/rtl8723befw.bin +rtlwifi/rtl8192cufw_A.bin +rtlwifi/rtl8812aefw_wowlan.bin +rtlwifi/rtl8723aufw_B.bin +rtlwifi/rtl8723bu_wowlan.bin +rtlwifi/rtl8192cufw_B.bin +rtlwifi/rtl8723befw_36.bin +rtlwifi/rtl8192eu_wowlan.bin rtlwifi/rtl8710bufw_SMIC.bin rtlwifi/rtl8192cfwU.bin -rtlwifi/rtl8723defw.bin -rtlwifi/rtl8812aefw_wowlan.bin -rtlwifi/rtl8192cufw_B.bin -rtlwifi/rtl8192cufw_TMSC.bin -rtlwifi/rtl8821aefw_29.bin -rtlwifi/rtl8712u.bin +rtlwifi/rtl8723bu_nic.bin rtlwifi/rtl8821aefw.bin -rtlwifi/rtl8723befw.bin -rtw88/rtw8812a_fw.bin +rtlwifi/rtl8723bu_ap_wowlan.bin +rtlwifi/rtl8192cfw.bin +rtlwifi/rtl8188efw.bin +rtlwifi/rtl8723bs_bt.bin rtw88/README rtw88/rtw8821c_fw.bin -rtw88/rtw8703b_fw.bin -rtw88/rtw8723d_fw.bin -rtw88/rtw8822b_fw.bin -rtw88/rtw8814a_fw.bin -rtw88/rtw8703b_wow_fw.bin rtw88/rtw8821a_fw.bin -rtw88/rtw8822c_fw.bin +rtw88/rtw8814a_fw.bin +rtw88/rtw8703b_fw.bin rtw88/rtw8822c_wow_fw.bin -rtw89/rtw8851b_fw.bin -rtw89/rtw8922a_fw.bin +rtw88/rtw8812a_fw.bin +rtw88/rtw8703b_wow_fw.bin +rtw88/rtw8822c_fw.bin +rtw88/rtw8822b_fw.bin +rtw88/rtw8723d_fw.bin rtw89/rtw8852bt_fw.bin -rtw89/rtw8922a_fw-4.bin rtw89/rtw8922a_fw-1.bin -rtw89/rtw8922a_fw-3.bin -rtw89/rtw8852c_fw.bin -rtw89/rtw8852a_fw.bin -rtw89/rtw8922a_fw-2.bin +rtw89/rtw8851b_fw.bin +rtw89/rtw8852c_fw-2.bin rtw89/rtw8852c_fw-1.bin rtw89/rtw8852b_fw-1.bin -rtw89/rtw8852c_fw-2.bin +rtw89/rtw8922a_fw-2.bin +rtw89/rtw8922a_fw-3.bin +rtw89/rtw8922a_fw.bin +rtw89/rtw8852c_fw.bin +rtw89/rtw8922a_fw-4.bin rtw89/rtw8852b_fw.bin +rtw89/rtw8852a_fw.bin s2250.fw s2250_loader.fw s5p-mfc-v12.fw @@ -4845,166 +4845,166 @@ s5p-mfc-v6.fw s5p-mfc-v7.fw s5p-mfc-v8.fw s5p-mfc.fw -sb16/ima_adpcm_capture.csp -sb16/ima_adpcm_init.csp -sb16/mulaw_main.csp sb16/ima_adpcm_playback.csp sb16/alaw_main.csp +sb16/ima_adpcm_init.csp +sb16/ima_adpcm_capture.csp +sb16/mulaw_main.csp sdd_sagrad_1091_1098.bin slicoss/gbdownload.sys -slicoss/oasisrcvucode.sys slicoss/gbrcvucode.sys -slicoss/oasisdownload.sys +slicoss/oasisrcvucode.sys slicoss/oasisdbgdownload.sys +slicoss/oasisdownload.sys sms1xxx-hcw-55xxx-dvbt-02.fw sms1xxx-hcw-55xxx-isdbt-02.fw sms1xxx-nova-a-dvbt-01.fw sms1xxx-nova-b-dvbt-01.fw sms1xxx-stellar-dvbt-01.fw sun/cassini.bin -sxg/saharadbgdownloadB.sys sxg/saharadownloadB.sys +sxg/saharadbgdownloadB.sys tdmb_nova_12mhz.inp tehuti/bdx.bin -ti/tas2781/TAS2XXX3EE01.bin -ti/tas2781/TAS2XXX387E.bin -ti/tas2781/TAS2XXX38DF.bin -ti/tas2781/TAS2XXX38A8.bin -ti/tas2781/TAS2XXX38D4.bin -ti/tas2781/TAS2XXX38E0.bin -ti/tas2781/TAS2XXX38D5.bin -ti/tas2781/TAS2XXX38C3.bin -ti/tas2781/TIAS2781RCA2.bin -ti/tas2781/TAS2XXX38CB.bin -ti/tas2781/TAS2XXX38A5.bin -ti/tas2781/TAS2XXX12041.bin -ti/tas2781/TAS2XXX38BF.bin -ti/tas2781/TAS2XXX3880.bin -ti/tas2781/TAS2XXX387D.bin -ti/tas2781/TAS2XXX38A7.bin -ti/tas2781/TAS2XXX10A41.bin -ti/tas2781/TAS2XXX2234.bin -ti/tas2781/TAS2XXX11541.bin -ti/tas2781/TAS2XXX38B9.bin -ti/tas2781/TAS2XXX38D6.bin -ti/tas2781/TAS2XXX2326.bin -ti/tas2781/TAS2XXX3886.bin -ti/tas2781/TAS2XXX3F000.bin -ti/tas2781/TAS2XXX3F201.bin -ti/tas2781/TAS2XXX3E300.bin -ti/tas2781/TAS2XXX3884.bin -ti/tas2781/TAS2XXX38D3.bin -ti/tas2781/TAS2XXX387F.bin -ti/tas2781/TAS2XXX1EB31.bin -ti/tas2781/TAS2XXX391F.bin -ti/tas2781/TAS2XXX38FD.bin -ti/tas2781/TAS2XXX1EB30.bin -ti/tas2781/TAS2XXX0C97.bin -ti/tas2781/TAS2XXX0C96.bin -ti/tas2781/TXNW2781RCA1.bin -ti/tas2781/TAS2XXX3EE00.bin -ti/tas2781/TAS2XXX3F300.bin -ti/tas2781/TAS2XXX3EF01.bin -ti/tas2781/TAS2XXX0C95.bin -ti/tas2781/TAS2XXX3F301.bin -ti/tas2781/TAS2XXX3E301.bin -ti/tas2781/TAS2XXX0C94.bin -ti/tas2781/TAS2XXX38BA.bin -ti/tas2781/TAS2XXX3882.bin -ti/tas2781/TAS2XXX3881.bin -ti/tas2781/TIAS2781RCA4.bin -ti/tas2781/TAS2XXX3F001.bin -ti/tas2781/TAS2XXX10A40.bin -ti/tas2781/TAS2XXX38BB.bin -ti/tas2781/TXNW2781RCA0.bin -ti/tas2781/TAS2XXX3920.bin -ti/tas2781/TAS2XXX3F101.bin -ti/tas2781/TAS2XXX11540.bin -ti/tas2781/TAS2XXX3EF00.bin -ti/tas2781/TAS2XXX38BE.bin -ti/tas2781/TAS2XXX3F100.bin -ti/tas2781/TAS2XXX12141.bin -ti/tas2781/TAS2XXX3F200.bin -ti/tas2781/TAS2XXX12040.bin -ti/tas2781/TAS2XXX38B8.bin -ti/tas2781/TAS2XXX8DE9.bin -ti/tas2781/TAS2XXX8DE8.bin -ti/tas2781/TAS2XXX38CD.bin -ti/tas2781/TAS2XXX12140.bin -ti/vpdma-1b8.bin -ti/tas2563/TAS2XXX3870.bin ti/tas2563/INT8866RCA2.bin -ti-connectivity/wl128x-fw-5-plt.bin -ti-connectivity/wl128x-nvs.bin -ti-connectivity/wl127x-fw-3.bin -ti-connectivity/wl127x-nvs.bin -ti-connectivity/wl128x-fw-4-plt.bin -ti-connectivity/wl18xx-fw-3.bin -ti-connectivity/wl1271-fw-ap.bin -ti-connectivity/wl128x-fw-4-mr.bin -ti-connectivity/wl12xx-nvs.bin +ti/tas2563/TAS2XXX3870.bin +ti/vpdma-1b8.bin +ti/tas2781/TAS2XXX3F200.bin +ti/tas2781/TAS2XXX38D4.bin +ti/tas2781/TAS2XXX3E301.bin +ti/tas2781/TAS2XXX38BA.bin +ti/tas2781/TAS2XXX38BE.bin +ti/tas2781/TAS2XXX38CB.bin +ti/tas2781/TAS2XXX10A40.bin +ti/tas2781/TAS2XXX3F300.bin +ti/tas2781/TAS2XXX3886.bin +ti/tas2781/TIAS2781RCA2.bin +ti/tas2781/TAS2XXX11540.bin +ti/tas2781/TAS2XXX38BF.bin +ti/tas2781/TAS2XXX0C97.bin +ti/tas2781/TAS2XXX1EB30.bin +ti/tas2781/TAS2XXX3EE01.bin +ti/tas2781/TAS2XXX38CD.bin +ti/tas2781/TAS2XXX38A8.bin +ti/tas2781/TAS2XXX38B8.bin +ti/tas2781/TAS2XXX3EE00.bin +ti/tas2781/TAS2XXX38B9.bin +ti/tas2781/TAS2XXX8DE9.bin +ti/tas2781/TAS2XXX3F201.bin +ti/tas2781/TAS2XXX10A41.bin +ti/tas2781/TAS2XXX38D3.bin +ti/tas2781/TAS2XXX0C95.bin +ti/tas2781/TAS2XXX3E300.bin +ti/tas2781/TAS2XXX3EF01.bin +ti/tas2781/TAS2XXX3880.bin +ti/tas2781/TAS2XXX2234.bin +ti/tas2781/TAS2XXX38D5.bin +ti/tas2781/TAS2XXX3881.bin +ti/tas2781/TAS2XXX12140.bin +ti/tas2781/TAS2XXX3EF00.bin +ti/tas2781/TAS2XXX391F.bin +ti/tas2781/TAS2XXX0C96.bin +ti/tas2781/TAS2XXX38FD.bin +ti/tas2781/TAS2XXX38C3.bin +ti/tas2781/TAS2XXX3F001.bin +ti/tas2781/TAS2XXX38D6.bin +ti/tas2781/TIAS2781RCA4.bin +ti/tas2781/TAS2XXX12141.bin +ti/tas2781/TAS2XXX38A5.bin +ti/tas2781/TAS2XXX0C94.bin +ti/tas2781/TAS2XXX1EB31.bin +ti/tas2781/TAS2XXX38E0.bin +ti/tas2781/TAS2XXX38DF.bin +ti/tas2781/TAS2XXX38BB.bin +ti/tas2781/TAS2XXX12040.bin +ti/tas2781/TAS2XXX3884.bin +ti/tas2781/TAS2XXX8DE8.bin +ti/tas2781/TAS2XXX3882.bin +ti/tas2781/TXNW2781RCA1.bin +ti/tas2781/TAS2XXX3F101.bin +ti/tas2781/TAS2XXX3F100.bin +ti/tas2781/TAS2XXX11541.bin +ti/tas2781/TAS2XXX387E.bin +ti/tas2781/TAS2XXX2326.bin +ti/tas2781/TAS2XXX38A7.bin +ti/tas2781/TAS2XXX3920.bin +ti/tas2781/TXNW2781RCA0.bin +ti/tas2781/TAS2XXX12041.bin +ti/tas2781/TAS2XXX3F000.bin +ti/tas2781/TAS2XXX387D.bin +ti/tas2781/TAS2XXX387F.bin +ti/tas2781/TAS2XXX3F301.bin ti-connectivity/wl1251-nvs.bin -ti-connectivity/wl128x-fw-4-sr.bin -ti-connectivity/TIInit_6.2.31.bts +ti-connectivity/wl127x-fw-4-sr.bin +ti-connectivity/wl127x-fw-4-mr.bin ti-connectivity/wl1271-fw.bin -ti-connectivity/wl1251-fw.bin -ti-connectivity/wl18xx-fw-4.bin -ti-connectivity/wl127x-fw-plt-3.bin -ti-connectivity/wl128x-fw-5-sr.bin -ti-connectivity/TIInit_6.6.15.bts +ti-connectivity/wl128x-fw-5-plt.bin ti-connectivity/cc33xx_2nd_loader.bin ti-connectivity/cc33xx-conf.bin -ti-connectivity/wl128x-fw-ap.bin -ti-connectivity/wl1271-fw-2.bin -ti-connectivity/wl127x-fw-4-sr.bin -ti-connectivity/wl128x-fw-plt-3.bin -ti-connectivity/wl1271-nvs.bin -ti-connectivity/wl128x-fw.bin -ti-connectivity/wl127x-fw-5-mr.bin -ti-connectivity/wl127x-fw-5-sr.bin -ti-connectivity/wl127x-fw-4-plt.bin -ti-connectivity/wl18xx-fw.bin -ti-connectivity/wl128x-fw-5-mr.bin ti-connectivity/TIInit_7.2.31.bts +ti-connectivity/wl12xx-nvs.bin +ti-connectivity/wl127x-fw-5-mr.bin +ti-connectivity/wl18xx-fw.bin +ti-connectivity/wl128x-fw.bin ti-connectivity/wl127x-fw-5-plt.bin -ti-connectivity/wl127x-fw-4-mr.bin -ti-connectivity/wl128x-fw-3.bin -ti-connectivity/cc33xx_fw.bin ti-connectivity/wl18xx-fw-2.bin +ti-connectivity/TIInit_6.2.31.bts +ti-connectivity/wl128x-fw-4-sr.bin +ti-connectivity/wl128x-fw-5-sr.bin +ti-connectivity/wl127x-fw-4-plt.bin +ti-connectivity/wl128x-nvs.bin +ti-connectivity/wl128x-fw-ap.bin +ti-connectivity/wl128x-fw-4-mr.bin +ti-connectivity/wl1271-nvs.bin +ti-connectivity/wl1251-fw.bin +ti-connectivity/TIInit_6.6.15.bts +ti-connectivity/wl127x-fw-5-sr.bin +ti-connectivity/wl18xx-fw-4.bin +ti-connectivity/wl18xx-fw-3.bin +ti-connectivity/wl1271-fw-2.bin +ti-connectivity/wl128x-fw-4-plt.bin +ti-connectivity/wl127x-nvs.bin +ti-connectivity/cc33xx_fw.bin +ti-connectivity/wl127x-fw-plt-3.bin +ti-connectivity/wl128x-fw-5-mr.bin +ti-connectivity/wl127x-fw-3.bin +ti-connectivity/wl128x-fw-3.bin +ti-connectivity/wl128x-fw-plt-3.bin +ti-connectivity/wl1271-fw-ap.bin ti-keystone/ks2_qmss_pdsp_acc48_k2_le_1_0_0_9.bin ti_3410.fw ti_5052.fw tigon/tg357766.bin -tigon/tg3.bin -tigon/tg3_tso5.bin tigon/tg3_tso.bin +tigon/tg3_tso5.bin +tigon/tg3.bin tlg2300_firmware.bin tsse_firmware.bin ttusb-budget/dspbootcode.bin -ueagle-atm/eagleI.fw +ueagle-atm/CMVepES03.bin +ueagle-atm/CMVepFR10.bin +ueagle-atm/eagleIII.fw +ueagle-atm/DSP9i.bin ueagle-atm/eagleIV.fw -ueagle-atm/CMVepWO.bin +ueagle-atm/930-fpga.bin +ueagle-atm/CMVepIT.bin ueagle-atm/DSP4p.bin ueagle-atm/CMV4p.bin.v2 -ueagle-atm/CMVepFR.bin +ueagle-atm/CMVepFR04.bin +ueagle-atm/DSPep.bin +ueagle-atm/CMVeiWO.bin +ueagle-atm/DSP9p.bin +ueagle-atm/CMVepWO.bin +ueagle-atm/CMV9i.bin +ueagle-atm/adi930.fw +ueagle-atm/CMVep.bin ueagle-atm/CMVei.bin ueagle-atm/DSPei.bin -ueagle-atm/eagleIII.fw -ueagle-atm/DSP9p.bin -ueagle-atm/CMVep.bin -ueagle-atm/DSP9i.bin +ueagle-atm/eagleI.fw +ueagle-atm/CMVepFR.bin ueagle-atm/eagleII.fw -ueagle-atm/CMVepFR04.bin -ueagle-atm/930-fpga.bin -ueagle-atm/CMVepES03.bin -ueagle-atm/CMVepIT.bin -ueagle-atm/CMVepFR10.bin -ueagle-atm/CMVeiWO.bin ueagle-atm/CMV9p.bin -ueagle-atm/CMV9i.bin -ueagle-atm/DSPep.bin ueagle-atm/CMVepES.bin -ueagle-atm/adi930.fw usbdux_firmware.bin usbduxfast_firmware.bin usbduxsigma_firmware.bin @@ -5021,25 +5021,25 @@ vpu_p.bin vxge/X3fw-pxe.ncf vxge/X3fw.ncf wfx/brd8022a.pds -wfx/wfm_wf200_C0.sec -wfx/brd8023a.pds wfx/brd4001a.pds +wfx/brd8023a.pds +wfx/wfm_wf200_C0.sec whiteheat.fw whiteheat_loader.fw wil6210.brd wil6210.fw wsm_22.bin -xe/bmg_guc_70.bin -xe/bmg_huc.bin -xe/lnl_gsc_1.bin xe/lnl_guc_70.bin -xe/ptl_huc.bin -xe/fan_control_8086_e20b_8086_1100.bin xe/lnl_huc.bin +xe/bmg_huc.bin xe/ptl_guc_70.bin +xe/ptl_huc.bin +xe/bmg_guc_70.bin +xe/lnl_gsc_1.bin +xe/fan_control_8086_e20b_8086_1100.bin yam/1200.bin yam/9600.bin -yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw yamaha/yss225_registers.bin +yamaha/ds1_ctrl.fw yamaha/ds1e_ctrl.fw diff --git a/gentoo/portage/savedconfig/x11-terms/st-0.9.2 b/gentoo/portage/savedconfig/x11-terms/st-0.9.2 deleted file mode 100644 index eabac9e7..00000000 --- a/gentoo/portage/savedconfig/x11-terms/st-0.9.2 +++ /dev/null @@ -1,482 +0,0 @@ -/* See LICENSE file for copyright and license details. */ - -/* - * appearance - * - * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html - */ -// static char *font = "Source Code Pro:pixelsize=20:antialias=true:autohint=true"; -static char *font = "mono:pixelsize=18.5:antialias=true:autohint=true"; -static int borderpx = 2; - -/* - * What program is execed by st depends of these precedence rules: - * 1: program passed with -e - * 2: scroll and/or utmp - * 3: SHELL environment variable - * 4: value of shell in /etc/passwd - * 5: value of shell in config.h - */ -static char *shell = "/bin/sh"; -char *utmp = NULL; -/* scroll program: to enable use a string like "scroll" */ -char *scroll = NULL; -char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400"; - -/* identification sequence returned in DA and DECID */ -char *vtiden = "\033[?6c"; - -/* Kerning / character bounding-box multipliers */ -static float cwscale = 1.0; -static float chscale = 1.0; - -/* - * word delimiter string - * - * More advanced example: L" `'\"()[]{}" - */ -wchar_t *worddelimiters = L" "; - -/* selection timeouts (in milliseconds) */ -static unsigned int doubleclicktimeout = 300; -static unsigned int tripleclicktimeout = 600; - -/* alt screens */ -int allowaltscreen = 1; - -/* allow certain non-interactive (insecure) window operations such as: - setting the clipboard text */ -int allowwindowops = 0; - -/* - * draw latency range in ms - from new content/keypress/etc until drawing. - * within this range, st draws when content stops arriving (idle). mostly it's - * near minlatency, but it waits longer for slow updates to avoid partial draw. - * low minlatency will tear/flicker more, as it can "detect" idle too early. - */ -static double minlatency = 8; -static double maxlatency = 33; - -/* - * blinking timeout (set to 0 to disable blinking) for the terminal blinking - * attribute. - */ -static unsigned int blinktimeout = 800; - -/* - * thickness of underline and bar cursors - */ -static unsigned int cursorthickness = 2; - -/* - * bell volume. It must be a value between -100 and 100. Use 0 for disabling - * it - */ -static int bellvolume = 0; - -/* default TERM value */ -char *termname = "st-256color"; - -/* - * spaces per tab - * - * When you are changing this value, don't forget to adapt the »it« value in - * the st.info and appropriately install the st.info in the environment where - * you use this st version. - * - * it#$tabspaces, - * - * Secondly make sure your kernel is not expanding tabs. When running `stty - * -a` »tab0« should appear. You can tell the terminal to not expand tabs by - * running following command: - * - * stty tabs - */ -unsigned int tabspaces = 8; - -/* bg opacity */ -float alpha = 0.7; - -/* Terminal colors (16 first used in escape sequence) */ -static const char *colorname[] = { - /* 8 normal colors */ - "#3b4252", /* black */ - "#bf616a", /* red */ - "#a3be8c", /* green */ - "#ebcb8b", /* yellow */ - "#81a1c1", /* blue */ - "#b48ead", /* magenta */ - "#88c0d0", /* cyan */ - "#e5e9f0", /* white */ - - /* 8 bright colors */ - "#4c566a", /* black */ - "#bf616a", /* red */ - "#a3be8c", /* green */ - "#ebcb8b", /* yellow */ - "#81a1c1", /* blue */ - "#b48ead", /* magenta */ - "#8fbcbb", /* cyan */ - "#eceff4", /* white */ - - [255] = 0, - - /* more colors can be added after 255 to use with DefaultXX */ - // "#2e3440", // background // - // "#1d222b", // background // - "#1a1e26", // background // - "#d8dee9", /* foreground */ -}; - - -/* - * Default colors (colorname index) - * foreground, background, cursor, reverse cursor - */ -unsigned int defaultfg = 257; -unsigned int defaultbg = 256; -unsigned int defaultcs = 257; -static unsigned int defaultrcs = 256; - -/* - * Default shape of cursor - * 2: Block ("█") - * 4: Underline ("_") - * 6: Bar ("|") - * 7: Snowman ("☃") - */ -static unsigned int cursorshape = 2; - -/* - * Default columns and rows numbers - */ - -// static unsigned int cols = 80; -static unsigned int cols = 150; -// static unsigned int rows = 24; -static unsigned int rows = 36; - -/* - * Default colour and shape of the mouse cursor - */ -static unsigned int mouseshape = XC_xterm; -static unsigned int mousefg = 7; -static unsigned int mousebg = 0; - -/* - * Color used to display font attributes when fontconfig selected a font which - * doesn't match the ones requested. - */ -static unsigned int defaultattr = 11; - -/* - * Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set). - * Note that if you want to use ShiftMask with selmasks, set this to an other - * modifier, set to 0 to not use it. - */ -static uint forcemousemod = ShiftMask; - -/* - * Internal mouse shortcuts. - * Beware that overloading Button1 will disable the selection. - */ -static MouseShortcut mshortcuts[] = { - /* mask button function argument release */ - { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, - { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, - { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, - { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, - { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, -}; - -/* Internal keyboard shortcuts. */ -#define MODKEY Mod1Mask -#define TERMMOD (ControlMask|ShiftMask) - -static Shortcut shortcuts[] = { - /* mask keysym function argument */ - { XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} }, - { ControlMask, XK_Print, toggleprinter, {.i = 0} }, - { ShiftMask, XK_Print, printscreen, {.i = 0} }, - { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, - { TERMMOD, XK_Prior, zoom, {.f = +1} }, - { TERMMOD, XK_Next, zoom, {.f = -1} }, - { TERMMOD, XK_Home, zoomreset, {.f = 0} }, - { TERMMOD, XK_C, clipcopy, {.i = 0} }, - { TERMMOD, XK_V, clippaste, {.i = 0} }, - { TERMMOD, XK_Y, selpaste, {.i = 0} }, - { ShiftMask, XK_Insert, selpaste, {.i = 0} }, - { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, - { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, - { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, -}; - -/* - * Special keys (change & recompile st.info accordingly) - * - * Mask value: - * * Use XK_ANY_MOD to match the key no matter modifiers state - * * Use XK_NO_MOD to match the key alone (no modifiers) - * appkey value: - * * 0: no value - * * > 0: keypad application mode enabled - * * = 2: term.numlock = 1 - * * < 0: keypad application mode disabled - * appcursor value: - * * 0: no value - * * > 0: cursor application mode enabled - * * < 0: cursor application mode disabled - * - * Be careful with the order of the definitions because st searches in - * this table sequentially, so any XK_ANY_MOD must be in the last - * position for a key. - */ - -/* - * If you want keys other than the X11 function keys (0xFD00 - 0xFFFF) - * to be mapped below, add them to this array. - */ -static KeySym mappedkeys[] = { -1 }; - -/* - * State bits to ignore when matching key or button events. By default, - * numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored. - */ -static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; - -/* - * This is the huge key array which defines all compatibility to the Linux - * world. Please decide about changes wisely. - */ -static Key key[] = { - /* keysym mask string appkey appcursor */ - { XK_KP_Home, ShiftMask, "\033[2J", 0, -1}, - { XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1}, - { XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1}, - { XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1}, - { XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0}, - { XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1}, - { XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1}, - { XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0}, - { XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1}, - { XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1}, - { XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0}, - { XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1}, - { XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1}, - { XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0}, - { XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1}, - { XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1}, - { XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0}, - { XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0}, - { XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0}, - { XK_KP_End, ControlMask, "\033[J", -1, 0}, - { XK_KP_End, ControlMask, "\033[1;5F", +1, 0}, - { XK_KP_End, ShiftMask, "\033[K", -1, 0}, - { XK_KP_End, ShiftMask, "\033[1;2F", +1, 0}, - { XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0}, - { XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0}, - { XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0}, - { XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0}, - { XK_KP_Insert, ShiftMask, "\033[4l", -1, 0}, - { XK_KP_Insert, ControlMask, "\033[L", -1, 0}, - { XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0}, - { XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0}, - { XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0}, - { XK_KP_Delete, ControlMask, "\033[M", -1, 0}, - { XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0}, - { XK_KP_Delete, ShiftMask, "\033[2K", -1, 0}, - { XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0}, - { XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0}, - { XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0}, - { XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0}, - { XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0}, - { XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0}, - { XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0}, - { XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0}, - { XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0}, - { XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0}, - { XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0}, - { XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0}, - { XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0}, - { XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0}, - { XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0}, - { XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0}, - { XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0}, - { XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0}, - { XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0}, - { XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0}, - { XK_Up, ShiftMask, "\033[1;2A", 0, 0}, - { XK_Up, Mod1Mask, "\033[1;3A", 0, 0}, - { XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0}, - { XK_Up, ControlMask, "\033[1;5A", 0, 0}, - { XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0}, - { XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0}, - { XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A", 0, 0}, - { XK_Up, XK_ANY_MOD, "\033[A", 0, -1}, - { XK_Up, XK_ANY_MOD, "\033OA", 0, +1}, - { XK_Down, ShiftMask, "\033[1;2B", 0, 0}, - { XK_Down, Mod1Mask, "\033[1;3B", 0, 0}, - { XK_Down, ShiftMask|Mod1Mask,"\033[1;4B", 0, 0}, - { XK_Down, ControlMask, "\033[1;5B", 0, 0}, - { XK_Down, ShiftMask|ControlMask,"\033[1;6B", 0, 0}, - { XK_Down, ControlMask|Mod1Mask,"\033[1;7B", 0, 0}, - { XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0, 0}, - { XK_Down, XK_ANY_MOD, "\033[B", 0, -1}, - { XK_Down, XK_ANY_MOD, "\033OB", 0, +1}, - { XK_Left, ShiftMask, "\033[1;2D", 0, 0}, - { XK_Left, Mod1Mask, "\033[1;3D", 0, 0}, - { XK_Left, ShiftMask|Mod1Mask,"\033[1;4D", 0, 0}, - { XK_Left, ControlMask, "\033[1;5D", 0, 0}, - { XK_Left, ShiftMask|ControlMask,"\033[1;6D", 0, 0}, - { XK_Left, ControlMask|Mod1Mask,"\033[1;7D", 0, 0}, - { XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0, 0}, - { XK_Left, XK_ANY_MOD, "\033[D", 0, -1}, - { XK_Left, XK_ANY_MOD, "\033OD", 0, +1}, - { XK_Right, ShiftMask, "\033[1;2C", 0, 0}, - { XK_Right, Mod1Mask, "\033[1;3C", 0, 0}, - { XK_Right, ShiftMask|Mod1Mask,"\033[1;4C", 0, 0}, - { XK_Right, ControlMask, "\033[1;5C", 0, 0}, - { XK_Right, ShiftMask|ControlMask,"\033[1;6C", 0, 0}, - { XK_Right, ControlMask|Mod1Mask,"\033[1;7C", 0, 0}, - { XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0, 0}, - { XK_Right, XK_ANY_MOD, "\033[C", 0, -1}, - { XK_Right, XK_ANY_MOD, "\033OC", 0, +1}, - { XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0}, - { XK_Return, Mod1Mask, "\033\r", 0, 0}, - { XK_Return, XK_ANY_MOD, "\r", 0, 0}, - { XK_Insert, ShiftMask, "\033[4l", -1, 0}, - { XK_Insert, ShiftMask, "\033[2;2~", +1, 0}, - { XK_Insert, ControlMask, "\033[L", -1, 0}, - { XK_Insert, ControlMask, "\033[2;5~", +1, 0}, - { XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0}, - { XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0}, - { XK_Delete, ControlMask, "\033[M", -1, 0}, - { XK_Delete, ControlMask, "\033[3;5~", +1, 0}, - { XK_Delete, ShiftMask, "\033[2K", -1, 0}, - { XK_Delete, ShiftMask, "\033[3;2~", +1, 0}, - { XK_Delete, XK_ANY_MOD, "\033[P", -1, 0}, - { XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0}, - { XK_BackSpace, XK_NO_MOD, "\177", 0, 0}, - { XK_BackSpace, Mod1Mask, "\033\177", 0, 0}, - { XK_Home, ShiftMask, "\033[2J", 0, -1}, - { XK_Home, ShiftMask, "\033[1;2H", 0, +1}, - { XK_Home, XK_ANY_MOD, "\033[H", 0, -1}, - { XK_Home, XK_ANY_MOD, "\033[1~", 0, +1}, - { XK_End, ControlMask, "\033[J", -1, 0}, - { XK_End, ControlMask, "\033[1;5F", +1, 0}, - { XK_End, ShiftMask, "\033[K", -1, 0}, - { XK_End, ShiftMask, "\033[1;2F", +1, 0}, - { XK_End, XK_ANY_MOD, "\033[4~", 0, 0}, - { XK_Prior, ControlMask, "\033[5;5~", 0, 0}, - { XK_Prior, ShiftMask, "\033[5;2~", 0, 0}, - { XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0}, - { XK_Next, ControlMask, "\033[6;5~", 0, 0}, - { XK_Next, ShiftMask, "\033[6;2~", 0, 0}, - { XK_Next, XK_ANY_MOD, "\033[6~", 0, 0}, - { XK_F1, XK_NO_MOD, "\033OP" , 0, 0}, - { XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0}, - { XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0}, - { XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0}, - { XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0}, - { XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0}, - { XK_F2, XK_NO_MOD, "\033OQ" , 0, 0}, - { XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0}, - { XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0}, - { XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0}, - { XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0}, - { XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0}, - { XK_F3, XK_NO_MOD, "\033OR" , 0, 0}, - { XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0}, - { XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0}, - { XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0}, - { XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0}, - { XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0}, - { XK_F4, XK_NO_MOD, "\033OS" , 0, 0}, - { XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0}, - { XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0}, - { XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0}, - { XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0}, - { XK_F5, XK_NO_MOD, "\033[15~", 0, 0}, - { XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0}, - { XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0}, - { XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0}, - { XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0}, - { XK_F6, XK_NO_MOD, "\033[17~", 0, 0}, - { XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0}, - { XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0}, - { XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0}, - { XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0}, - { XK_F7, XK_NO_MOD, "\033[18~", 0, 0}, - { XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0}, - { XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0}, - { XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0}, - { XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0}, - { XK_F8, XK_NO_MOD, "\033[19~", 0, 0}, - { XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0}, - { XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0}, - { XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0}, - { XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0}, - { XK_F9, XK_NO_MOD, "\033[20~", 0, 0}, - { XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0}, - { XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0}, - { XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0}, - { XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0}, - { XK_F10, XK_NO_MOD, "\033[21~", 0, 0}, - { XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0}, - { XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0}, - { XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0}, - { XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0}, - { XK_F11, XK_NO_MOD, "\033[23~", 0, 0}, - { XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0}, - { XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0}, - { XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0}, - { XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0}, - { XK_F12, XK_NO_MOD, "\033[24~", 0, 0}, - { XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0}, - { XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0}, - { XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0}, - { XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0}, - { XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0}, - { XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0}, - { XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0}, - { XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0}, - { XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0}, - { XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0}, - { XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0}, - { XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0}, - { XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0}, - { XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0}, - { XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0}, - { XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0}, - { XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0}, - { XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0}, - { XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0}, - { XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0}, - { XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0}, - { XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0}, - { XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0}, - { XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0}, - { XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0}, - { XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0}, - { XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0}, -}; - -/* - * Selection types' masks. - * Use the same masks as usual. - * Button1Mask is always unset, to make masks match between ButtonPress. - * ButtonRelease and MotionNotify. - * If no match is found, regular selection is used. - */ -static uint selmasks[] = { - [SEL_RECTANGULAR] = Mod1Mask, -}; - -/* - * Printable characters in ASCII, used to estimate the advance width - * of single wide characters. - */ -static char ascii_printable[] = - " !\"#$%&'()*+,-./0123456789:;<=>?" - "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_" - "`abcdefghijklmnopqrstuvwxyz{|}~"; diff --git a/gentoo/portage/savedconfig/x11-terms/st-0.9.2.bak b/gentoo/portage/savedconfig/x11-terms/st-0.9.2.bak deleted file mode 100644 index 2cd740a2..00000000 --- a/gentoo/portage/savedconfig/x11-terms/st-0.9.2.bak +++ /dev/null @@ -1,474 +0,0 @@ -/* See LICENSE file for copyright and license details. */ - -/* - * appearance - * - * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html - */ -static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; -static int borderpx = 2; - -/* - * What program is execed by st depends of these precedence rules: - * 1: program passed with -e - * 2: scroll and/or utmp - * 3: SHELL environment variable - * 4: value of shell in /etc/passwd - * 5: value of shell in config.h - */ -static char *shell = "/bin/sh"; -char *utmp = NULL; -/* scroll program: to enable use a string like "scroll" */ -char *scroll = NULL; -char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400"; - -/* identification sequence returned in DA and DECID */ -char *vtiden = "\033[?6c"; - -/* Kerning / character bounding-box multipliers */ -static float cwscale = 1.0; -static float chscale = 1.0; - -/* - * word delimiter string - * - * More advanced example: L" `'\"()[]{}" - */ -wchar_t *worddelimiters = L" "; - -/* selection timeouts (in milliseconds) */ -static unsigned int doubleclicktimeout = 300; -static unsigned int tripleclicktimeout = 600; - -/* alt screens */ -int allowaltscreen = 1; - -/* allow certain non-interactive (insecure) window operations such as: - setting the clipboard text */ -int allowwindowops = 0; - -/* - * draw latency range in ms - from new content/keypress/etc until drawing. - * within this range, st draws when content stops arriving (idle). mostly it's - * near minlatency, but it waits longer for slow updates to avoid partial draw. - * low minlatency will tear/flicker more, as it can "detect" idle too early. - */ -static double minlatency = 2; -static double maxlatency = 33; - -/* - * blinking timeout (set to 0 to disable blinking) for the terminal blinking - * attribute. - */ -static unsigned int blinktimeout = 800; - -/* - * thickness of underline and bar cursors - */ -static unsigned int cursorthickness = 2; - -/* - * bell volume. It must be a value between -100 and 100. Use 0 for disabling - * it - */ -static int bellvolume = 0; - -/* default TERM value */ -char *termname = "st-256color"; - -/* - * spaces per tab - * - * When you are changing this value, don't forget to adapt the »it« value in - * the st.info and appropriately install the st.info in the environment where - * you use this st version. - * - * it#$tabspaces, - * - * Secondly make sure your kernel is not expanding tabs. When running `stty - * -a` »tab0« should appear. You can tell the terminal to not expand tabs by - * running following command: - * - * stty tabs - */ -unsigned int tabspaces = 8; - -/* Terminal colors (16 first used in escape sequence) */ -static const char *colorname[] = { - /* 8 normal colors */ - "black", - "red3", - "green3", - "yellow3", - "blue2", - "magenta3", - "cyan3", - "gray90", - - /* 8 bright colors */ - "gray50", - "red", - "green", - "yellow", - "#5c5cff", - "magenta", - "cyan", - "white", - - [255] = 0, - - /* more colors can be added after 255 to use with DefaultXX */ - "#cccccc", - "#555555", - "gray90", /* default foreground colour */ - "black", /* default background colour */ -}; - - -/* - * Default colors (colorname index) - * foreground, background, cursor, reverse cursor - */ -unsigned int defaultfg = 258; -unsigned int defaultbg = 259; -unsigned int defaultcs = 256; -static unsigned int defaultrcs = 257; - -/* - * Default shape of cursor - * 2: Block ("█") - * 4: Underline ("_") - * 6: Bar ("|") - * 7: Snowman ("☃") - */ -static unsigned int cursorshape = 2; - -/* - * Default columns and rows numbers - */ - -static unsigned int cols = 80; -static unsigned int rows = 24; - -/* - * Default colour and shape of the mouse cursor - */ -static unsigned int mouseshape = XC_xterm; -static unsigned int mousefg = 7; -static unsigned int mousebg = 0; - -/* - * Color used to display font attributes when fontconfig selected a font which - * doesn't match the ones requested. - */ -static unsigned int defaultattr = 11; - -/* - * Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set). - * Note that if you want to use ShiftMask with selmasks, set this to an other - * modifier, set to 0 to not use it. - */ -static uint forcemousemod = ShiftMask; - -/* - * Internal mouse shortcuts. - * Beware that overloading Button1 will disable the selection. - */ -static MouseShortcut mshortcuts[] = { - /* mask button function argument release */ - { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, - { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, - { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, - { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, - { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, -}; - -/* Internal keyboard shortcuts. */ -#define MODKEY Mod1Mask -#define TERMMOD (ControlMask|ShiftMask) - -static Shortcut shortcuts[] = { - /* mask keysym function argument */ - { XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} }, - { ControlMask, XK_Print, toggleprinter, {.i = 0} }, - { ShiftMask, XK_Print, printscreen, {.i = 0} }, - { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, - { TERMMOD, XK_Prior, zoom, {.f = +1} }, - { TERMMOD, XK_Next, zoom, {.f = -1} }, - { TERMMOD, XK_Home, zoomreset, {.f = 0} }, - { TERMMOD, XK_C, clipcopy, {.i = 0} }, - { TERMMOD, XK_V, clippaste, {.i = 0} }, - { TERMMOD, XK_Y, selpaste, {.i = 0} }, - { ShiftMask, XK_Insert, selpaste, {.i = 0} }, - { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, -}; - -/* - * Special keys (change & recompile st.info accordingly) - * - * Mask value: - * * Use XK_ANY_MOD to match the key no matter modifiers state - * * Use XK_NO_MOD to match the key alone (no modifiers) - * appkey value: - * * 0: no value - * * > 0: keypad application mode enabled - * * = 2: term.numlock = 1 - * * < 0: keypad application mode disabled - * appcursor value: - * * 0: no value - * * > 0: cursor application mode enabled - * * < 0: cursor application mode disabled - * - * Be careful with the order of the definitions because st searches in - * this table sequentially, so any XK_ANY_MOD must be in the last - * position for a key. - */ - -/* - * If you want keys other than the X11 function keys (0xFD00 - 0xFFFF) - * to be mapped below, add them to this array. - */ -static KeySym mappedkeys[] = { -1 }; - -/* - * State bits to ignore when matching key or button events. By default, - * numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored. - */ -static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; - -/* - * This is the huge key array which defines all compatibility to the Linux - * world. Please decide about changes wisely. - */ -static Key key[] = { - /* keysym mask string appkey appcursor */ - { XK_KP_Home, ShiftMask, "\033[2J", 0, -1}, - { XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1}, - { XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1}, - { XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1}, - { XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0}, - { XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1}, - { XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1}, - { XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0}, - { XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1}, - { XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1}, - { XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0}, - { XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1}, - { XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1}, - { XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0}, - { XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1}, - { XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1}, - { XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0}, - { XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0}, - { XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0}, - { XK_KP_End, ControlMask, "\033[J", -1, 0}, - { XK_KP_End, ControlMask, "\033[1;5F", +1, 0}, - { XK_KP_End, ShiftMask, "\033[K", -1, 0}, - { XK_KP_End, ShiftMask, "\033[1;2F", +1, 0}, - { XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0}, - { XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0}, - { XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0}, - { XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0}, - { XK_KP_Insert, ShiftMask, "\033[4l", -1, 0}, - { XK_KP_Insert, ControlMask, "\033[L", -1, 0}, - { XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0}, - { XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0}, - { XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0}, - { XK_KP_Delete, ControlMask, "\033[M", -1, 0}, - { XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0}, - { XK_KP_Delete, ShiftMask, "\033[2K", -1, 0}, - { XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0}, - { XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0}, - { XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0}, - { XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0}, - { XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0}, - { XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0}, - { XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0}, - { XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0}, - { XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0}, - { XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0}, - { XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0}, - { XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0}, - { XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0}, - { XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0}, - { XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0}, - { XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0}, - { XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0}, - { XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0}, - { XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0}, - { XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0}, - { XK_Up, ShiftMask, "\033[1;2A", 0, 0}, - { XK_Up, Mod1Mask, "\033[1;3A", 0, 0}, - { XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0}, - { XK_Up, ControlMask, "\033[1;5A", 0, 0}, - { XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0}, - { XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0}, - { XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A", 0, 0}, - { XK_Up, XK_ANY_MOD, "\033[A", 0, -1}, - { XK_Up, XK_ANY_MOD, "\033OA", 0, +1}, - { XK_Down, ShiftMask, "\033[1;2B", 0, 0}, - { XK_Down, Mod1Mask, "\033[1;3B", 0, 0}, - { XK_Down, ShiftMask|Mod1Mask,"\033[1;4B", 0, 0}, - { XK_Down, ControlMask, "\033[1;5B", 0, 0}, - { XK_Down, ShiftMask|ControlMask,"\033[1;6B", 0, 0}, - { XK_Down, ControlMask|Mod1Mask,"\033[1;7B", 0, 0}, - { XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0, 0}, - { XK_Down, XK_ANY_MOD, "\033[B", 0, -1}, - { XK_Down, XK_ANY_MOD, "\033OB", 0, +1}, - { XK_Left, ShiftMask, "\033[1;2D", 0, 0}, - { XK_Left, Mod1Mask, "\033[1;3D", 0, 0}, - { XK_Left, ShiftMask|Mod1Mask,"\033[1;4D", 0, 0}, - { XK_Left, ControlMask, "\033[1;5D", 0, 0}, - { XK_Left, ShiftMask|ControlMask,"\033[1;6D", 0, 0}, - { XK_Left, ControlMask|Mod1Mask,"\033[1;7D", 0, 0}, - { XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0, 0}, - { XK_Left, XK_ANY_MOD, "\033[D", 0, -1}, - { XK_Left, XK_ANY_MOD, "\033OD", 0, +1}, - { XK_Right, ShiftMask, "\033[1;2C", 0, 0}, - { XK_Right, Mod1Mask, "\033[1;3C", 0, 0}, - { XK_Right, ShiftMask|Mod1Mask,"\033[1;4C", 0, 0}, - { XK_Right, ControlMask, "\033[1;5C", 0, 0}, - { XK_Right, ShiftMask|ControlMask,"\033[1;6C", 0, 0}, - { XK_Right, ControlMask|Mod1Mask,"\033[1;7C", 0, 0}, - { XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0, 0}, - { XK_Right, XK_ANY_MOD, "\033[C", 0, -1}, - { XK_Right, XK_ANY_MOD, "\033OC", 0, +1}, - { XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0}, - { XK_Return, Mod1Mask, "\033\r", 0, 0}, - { XK_Return, XK_ANY_MOD, "\r", 0, 0}, - { XK_Insert, ShiftMask, "\033[4l", -1, 0}, - { XK_Insert, ShiftMask, "\033[2;2~", +1, 0}, - { XK_Insert, ControlMask, "\033[L", -1, 0}, - { XK_Insert, ControlMask, "\033[2;5~", +1, 0}, - { XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0}, - { XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0}, - { XK_Delete, ControlMask, "\033[M", -1, 0}, - { XK_Delete, ControlMask, "\033[3;5~", +1, 0}, - { XK_Delete, ShiftMask, "\033[2K", -1, 0}, - { XK_Delete, ShiftMask, "\033[3;2~", +1, 0}, - { XK_Delete, XK_ANY_MOD, "\033[P", -1, 0}, - { XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0}, - { XK_BackSpace, XK_NO_MOD, "\177", 0, 0}, - { XK_BackSpace, Mod1Mask, "\033\177", 0, 0}, - { XK_Home, ShiftMask, "\033[2J", 0, -1}, - { XK_Home, ShiftMask, "\033[1;2H", 0, +1}, - { XK_Home, XK_ANY_MOD, "\033[H", 0, -1}, - { XK_Home, XK_ANY_MOD, "\033[1~", 0, +1}, - { XK_End, ControlMask, "\033[J", -1, 0}, - { XK_End, ControlMask, "\033[1;5F", +1, 0}, - { XK_End, ShiftMask, "\033[K", -1, 0}, - { XK_End, ShiftMask, "\033[1;2F", +1, 0}, - { XK_End, XK_ANY_MOD, "\033[4~", 0, 0}, - { XK_Prior, ControlMask, "\033[5;5~", 0, 0}, - { XK_Prior, ShiftMask, "\033[5;2~", 0, 0}, - { XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0}, - { XK_Next, ControlMask, "\033[6;5~", 0, 0}, - { XK_Next, ShiftMask, "\033[6;2~", 0, 0}, - { XK_Next, XK_ANY_MOD, "\033[6~", 0, 0}, - { XK_F1, XK_NO_MOD, "\033OP" , 0, 0}, - { XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0}, - { XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0}, - { XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0}, - { XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0}, - { XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0}, - { XK_F2, XK_NO_MOD, "\033OQ" , 0, 0}, - { XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0}, - { XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0}, - { XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0}, - { XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0}, - { XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0}, - { XK_F3, XK_NO_MOD, "\033OR" , 0, 0}, - { XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0}, - { XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0}, - { XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0}, - { XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0}, - { XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0}, - { XK_F4, XK_NO_MOD, "\033OS" , 0, 0}, - { XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0}, - { XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0}, - { XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0}, - { XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0}, - { XK_F5, XK_NO_MOD, "\033[15~", 0, 0}, - { XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0}, - { XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0}, - { XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0}, - { XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0}, - { XK_F6, XK_NO_MOD, "\033[17~", 0, 0}, - { XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0}, - { XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0}, - { XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0}, - { XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0}, - { XK_F7, XK_NO_MOD, "\033[18~", 0, 0}, - { XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0}, - { XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0}, - { XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0}, - { XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0}, - { XK_F8, XK_NO_MOD, "\033[19~", 0, 0}, - { XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0}, - { XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0}, - { XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0}, - { XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0}, - { XK_F9, XK_NO_MOD, "\033[20~", 0, 0}, - { XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0}, - { XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0}, - { XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0}, - { XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0}, - { XK_F10, XK_NO_MOD, "\033[21~", 0, 0}, - { XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0}, - { XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0}, - { XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0}, - { XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0}, - { XK_F11, XK_NO_MOD, "\033[23~", 0, 0}, - { XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0}, - { XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0}, - { XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0}, - { XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0}, - { XK_F12, XK_NO_MOD, "\033[24~", 0, 0}, - { XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0}, - { XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0}, - { XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0}, - { XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0}, - { XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0}, - { XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0}, - { XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0}, - { XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0}, - { XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0}, - { XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0}, - { XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0}, - { XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0}, - { XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0}, - { XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0}, - { XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0}, - { XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0}, - { XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0}, - { XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0}, - { XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0}, - { XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0}, - { XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0}, - { XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0}, - { XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0}, - { XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0}, - { XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0}, - { XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0}, - { XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0}, -}; - -/* - * Selection types' masks. - * Use the same masks as usual. - * Button1Mask is always unset, to make masks match between ButtonPress. - * ButtonRelease and MotionNotify. - * If no match is found, regular selection is used. - */ -static uint selmasks[] = { - [SEL_RECTANGULAR] = Mod1Mask, -}; - -/* - * Printable characters in ASCII, used to estimate the advance width - * of single wide characters. - */ -static char ascii_printable[] = - " !\"#$%&'()*+,-./0123456789:;<=>?" - "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_" - "`abcdefghijklmnopqrstuvwxyz{|}~"; diff --git a/scripts/mkbackup b/scripts/mkbackup index 6638f027..5c4b9630 100755 --- a/scripts/mkbackup +++ b/scripts/mkbackup @@ -2,4 +2,4 @@ BACKUP_DATE=$(date +%m_%d_%Y) -doas rsync -aHAXS --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/var/cache/distfiles/*","/home/brian/Documents/books/*","/home/brian/Videos/*","/home/brian/Music/*","/home/brian/Pictures/*","/home/brian/Audio/*","/home/brian/Games/*"} /* /mnt/media/usb-drive/"$HOST"_backup_"${BACKUP_DATE}" +doas rsync -aHAXS --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/var/cache/distfiles/*","/var/cache/ccache/*","/home/brian/Documents/books/*","/home/brian/Videos/*","/home/brian/Music/*","/home/brian/Pictures/*","/home/brian/Audio/*","/home/brian/Games/*"} /* /mnt/media/usb-drive/gentoo_backup_"${BACKUP_DATE}"

    %n721$NnIO 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 Yt@H1uQ{RP1z+P)&jX97X;Rqf!O( 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%0A4Ek*>Nfl~!EZ{jpb=BjHX$o~g+EeOD-(`vekG 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 z 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 z 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ⅈ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%0Aqq;?0wI0Vb$Bli@ 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 YNSoB`OrRJ?_@9RlO!O-5+yDE20RI0Q5C8xG literal 0 HcmV?d00001 diff --git a/gentoo/dotfiles/.zsh/zsh-autocomplete/.img/recent-dirs.png b/gentoo/dotfiles/.zsh/zsh-autocomplete/.img/recent-dirs.png new file mode 100644 index 0000000000000000000000000000000000000000..5769108e73d7209869accde38f9a054aa6ce1197 GIT binary patch literal 80919 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 z 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 z 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

-zV6 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�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 z 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ʦsK7Zt7aqnqv`;1M3~%Oz-YO_mxC&Asch6Q1VL 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