aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShohei YOSHIDA <syohex@gmail.com>2026-05-19 12:18:39 +0900
committerShohei YOSHIDA <syohex@gmail.com>2026-05-19 12:18:39 +0900
commit723d5f2726c13e51121059cff04a5f6cb7c4db88 (patch)
tree10ecec69b6f191f69f4bcd22b8b5b303ed593e1d /src
parentMerge pull request #1265 from zsh-users/update-jest (diff)
downloadzsh-completions-add-playwright.tar
zsh-completions-add-playwright.tar.gz
zsh-completions-add-playwright.tar.bz2
zsh-completions-add-playwright.tar.lz
zsh-completions-add-playwright.tar.xz
zsh-completions-add-playwright.tar.zst
zsh-completions-add-playwright.zip
Add playwright completionadd-playwright
Diffstat (limited to 'src')
-rw-r--r--src/_playwright340
1 files changed, 340 insertions, 0 deletions
diff --git a/src/_playwright b/src/_playwright
new file mode 100644
index 0000000..138e8e3
--- /dev/null
+++ b/src/_playwright
@@ -0,0 +1,340 @@
+#compdef playwright
+# ------------------------------------------------------------------------------
+# Copyright (c) 2026 Github zsh-users - https://github.com/zsh-users
+#
+# 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.
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+# Completion script for playwright 1.60.0 (https://playwright.dev/)
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
+#
+# ------------------------------------------------------------------------------
+
+_playwright() {
+ typeset -A opt_args
+ local context state line
+ local curcontext="$curcontext"
+ local ret=1
+
+ local -a browsers=(chromium firefox webkit)
+ local -a installable_browsers=(chromium firefox webkit chromium-headless-shell)
+ local -a target_languages=(javascript playwright-test python python-async python-pytest
+ csharp csharp-mstest csharp-nunit csharp-xunit java java-junit)
+ local -a channels=(chrome chrome-beta msedge-dev)
+ local -a pager_formats=(Letter Legal Tabloid Ledger A0 A1 A2 A3 A4 A5 A6)
+ local -a loop_providers=(claude copilot opencode vscode vscode-legacy)
+ local -a trace_modes=(on off on-first-retry on-all-retries retain-on-failure
+ retain-on-first-failure retain-on-failure-and-retries)
+
+ _arguments -C -A "-*" \
+ '(-v --verbose)'{-v,--verbose}'[output the version number]' \
+ '(- *)'{-h,--help}'[display help for command]' \
+ '1: :_playwright_subcommands' \
+ '*::arg:->args' \
+ && ret=0
+
+ case "$state" in
+ (args)
+ local -a options=('(- *)'{-h,--help}'[display help for command]')
+
+ case $words[1] in
+ (help)
+ options+=('1: :_playwright_subcommands')
+ ;;
+ (open|codegen|cr|ff|wk|screenshot|pdf|show-trace|test)
+ options+=(
+ '(-b --browser)'{-b,--browser}'[browser to use(default: chromium)]:browser:($browsers)' )
+ ;|
+ (open|codegen|cr|ff|wk|screenshot|pdf)
+ options+=(
+ '--block-service-workers[block service workers]'
+ '--channel[Chromium distribution channel]:channel:($channels)'
+ '--color-scheme[emulate preferred color scheme]:scheme:(light dark)'
+ '--device[emulate device(e.g. "iPhone 11")]:device'
+ '--geolocation[specify geolocation coordinates]:coordinates'
+ '--ignore-https-errors[ignore https errors]'
+ '--load-storage[load context storage state from the file]:file:_files'
+ '--lang[specify language/locale(e.g. "en-GB")]:language'
+ '--proxy-server[specify proxy server]:proxy'
+ '--proxy-bypass[comma-separated domains to bypass proxy]:bypass'
+ '--save-har[save HAR file with all network activity at the end]:file:_files'
+ '--save-har-glob[filter entries in the HAR by matching URL against this glob pattern]:pattern'
+ '--save-storage[save context storage state at the end]:file:_files'
+ '--timezone[time zone to emulate]:time_zone'
+ '--timeout[timeout for Playwright actions in milliseconds(default: no timeout)]:timeout'
+ '--user-agent[specify user agent string]:user_agent'
+ '--user-data-dir[use the specified user data directory instead of a new context]:dir:_files -/'
+ '--viewport-size[specify browser viewport size in pixels(e.g. "1280, 720")]:size'
+ '*::url:_urls'
+ )
+ ;|
+ (install)
+ options+=(
+ '--with-deps[install system dependencies for browsers]'
+ '--dry-run[do not execute installation, only print information]'
+ '(- *)--list[prints list of browsers from all playwright installations]'
+ '--force[force reinstall of already installed browsers]'
+ '--only-shell[only install headless shell when installing chromium]'
+ '--no-shell[do not install chromium headless shell]'
+ '*::browser:($installable_browsers)'
+ )
+ ;;
+ (uninstall)
+ options+=('--all[remove all browsers used by any Playwright installation from the system]')
+ ;;
+ (install-deps)
+ options+=('--dry-run[do not modify the system]')
+ ;;
+ (screenshot|pdf)
+ options+=(
+ '--wait-for-selector[wait for selector before taking a screenshot]:selector'
+ '--wait-for-timeout[wait for timeout in milliseconds before taking a screenshot]:timeout'
+ '*:: :_files'
+ )
+ ;|
+ (screenshot)
+ options+=(
+ '--full-page[take a full page screenshot]'
+ '*:: :_files'
+ )
+ ;;
+ (pdf)
+ options+=(
+ '--pager-format[pager format]:format:($pager_formats)'
+ '*:: :_files'
+ )
+ ;;
+ (show-trace)
+ options+=(
+ '(-h --host)'{-h,--host}'[host to serve trace on]:host'
+ '(-p --port)'{-p,--port}'[port to serve trace on]:port'
+ '--stdin[accept trace URLs over stdin to update the viewer]'
+ '*:: :_files'
+ )
+ ;;
+ (trace)
+ _playwright_trace && ret=0
+ return ret
+ ;;
+ (test)
+ options+=(
+ '(-c --config)'{-c,--config}'[configuration file or a test directory]:config:_files'
+ '--debug[run tests with Playwright Inspector]:mode:(inspector cli)'
+ '--fail-on-flaky-tests[fail if any test is flagged as flaky]'
+ '--forbid-only[fail if test.only is called]'
+ '--fully-parallel[run all tests in parallel]'
+ '(-g --grep)'{-g,--grep}'[only run tests matching this regular expression]:pattern'
+ '--global-timeout[maximum time this test suite can run in milliseconds]:timeout'
+ '--grep-invert[only run tests that do not match this regular expression]:pattern'
+ '--headed[run tests in headed browsers]'
+ '--ignore-snapshots[ignore screenshot and snapshot expectations]'
+ '(-j --workers)'{-j,--workers}'[number of concurrent workers or percentage of logical CPU cores]:workers'
+ '--last-failed[only re-run the failures]'
+ '--list[collect all the tests and report them, but do not run]'
+ '--max-failures[stop after the first N failures]:num'
+ '--no-deps[do not run project dependencies]'
+ '--only-changed[only run test files that have been changed between "HEAD" and "ref"]:ref'
+ '--output[folder for output artifacts(default: "test-results")]:dir:_files -/'
+ '--pass-with-no-tests[make test run succeed even if no tests were found]'
+ '*--project[only run tests from the specified list of projects]:project'
+ '--quiet[suppress stdio]'
+ '--repeat-each[run each test N times(default: 1)]:num'
+ '--reporter[reporter to use, comma-separated]:reporter:_playwright_reporters'
+ '--retries[maximum retry count for flaky tests(default: no retries)]:num'
+ '--run-agents[run agents to generate the code for page.perform]:agent:(missing all none)'
+ '--shard[shard tests and execute only the selected shard(e.g. "3/5")]:shard'
+ '--test-list[path to a file containing a list of tests to run]:file:_files'
+ '--test-list-invert[path to a file containing a list of tests to skip]:file:_files'
+ '--timeout[specify test timeout threshold in milliseconds, zero for unlimited(default: 30000)]:timeout'
+ '--trace[force tracing mode]:mode:($trace_modes)'
+ '--tsconfig[path to a single tsconfig applicable to all imported files]:file:_files'
+ '(-u --update-snapshots)'{-u,--update-snapshots}'[update snapshots with actual results]:mode:(all changed missing none)'
+ '--ui[run tests in interactive UI mode]'
+ '--ui-host[host to server UI on]:host'
+ '--ui-port[port to server UI on]:port'
+ '--update-source-method[choose the way source is updated(default: patch)]:method:(overwrite 3way patch)'
+ '-x[stop after the first failure]'
+ '*:: :_files'
+ )
+ ;;
+ (show-report)
+ options+=(
+ '(-h --host)'{-h,--host}'[host to serve report on]:host'
+ '(-p --port)'{-p,--port}'[port to serve report on]:port'
+ )
+ ;;
+ (merge-reports)
+ options+=(
+ '(-c --config)'{-c,--config}'[configuration file]:file:_files'
+ '--reporter[reporter to use, comma-separated (default: list)]:reporter:_playwright_reporters'
+ '*:: :_files -/'
+ )
+ ;;
+ (clear-cache)
+ options+=(
+ '(-c --config)'{-c,--config}'[configuration file or a test directory]:file:_files'
+ )
+ ;;
+ (init-agents)
+ options+=(
+ '--loop[agentic loop provider]:provider:($loop_providers)'
+ '(-c --config)'{-c,--config}'[configuration file to find a project to use for seed test]:file:_files'
+ '--project[project to use for seed test]:_files -/'
+ '--prompts[include prompts in the agent initialization]'
+ )
+ ;;
+ esac
+
+ _arguments "$options[@]" && ret=0
+ ;;
+ esac
+
+ return ret
+}
+
+(( $+functions[_playwright_subcommands] )) ||
+_playwright_subcommands() {
+ local -a commands=(
+ "open:open page in browser specified via -b, --browser"
+ "codegen:open page and generate code for user actions"
+ "install:ensure browsers necessary for this version of Playwright are installed"
+ "uninstall:remove browsers used by this installation of Playwright from the system"
+ "install-deps:install dependencies necessary to run browsers"
+ "cr:open page in Chromium"
+ "ff:open page in Firefox"
+ "wk:open page in WebKit"
+ "screenshot:capture a page screenshot"
+ "pdf:save page as PDF"
+ "show-trace:show trace viewer"
+ "trace:inspect trace files from the command line"
+ "test:run tests with Playwright Test"
+ "show-report:show HTML report"
+ "merge-reports:merge multiple blob reports into a single report"
+ "clear-cache:clear build and test caches"
+ "init-agents:Initialize repository agents"
+ "help:display help for command"
+ )
+ _describe -t commands 'command' commands "$@"
+}
+
+(( $+functions[_playwright_trace] )) ||
+_playwright_trace() {
+ local ret=1
+
+ _arguments -C \
+ '(- *)'{-h,--help}'[Print this usage information]' \
+ '1: :_playwright_trace_subcommands' \
+ '*:: :->arg' \
+ && ret=0
+
+ case $state in
+ (arg)
+ local -a options=(
+ '(- *)'{-h,--help}'[display help for command]'
+ '*:: :_files'
+ )
+
+ case $words[1] in
+ (help)
+ options=('1:command:_playwright_trace_subcommands')
+ ;;
+ (actions)
+ options+=(
+ '--grep[filter actions by title pattern]:pattern'
+ '--errors-only[only show failed actions]'
+ )
+ ;;
+ (requests)
+ options+=(
+ '--grep[filter by URL pattern]:pattern'
+ '--method[filter by HTTP method]:method:(DELETE GET HEAD POST PUT CONNECT OPTIONS TRACE PATCH)'
+ '--status[filter by status code]:code'
+ '--failed[only show failed request(status >= 400)]'
+ )
+ ;;
+ (console)
+ options+=(
+ '--errors-only[only show errors]'
+ '--warnings[show errors and warnings]'
+ '--browser[only browser console messages]'
+ '--stdio[only stdout/stderr]'
+ )
+ ;;
+ (snapshot)
+ options+=(
+ '--name[snapshot phase]:name:(before input after)'
+ '--serve[serve snapshot on localhost and keep running]'
+ )
+ ;;
+ (screenshot|attachment)
+ options+=('(-o --output)'{-o,--output}'[output file path]:file:_files')
+ ;;
+ esac
+
+ _arguments "$options[@]" && ret=0
+ ;;
+ esac
+
+ return ret
+}
+
+(( $+functions[_playwright_trace_subcommands] )) ||
+_playwright_trace_subcommands() {
+ local -a commands=(
+ "open:extract trace file for inspection"
+ "close:remove extracted trace data"
+ "actions:list actions in the trace"
+ "action:show details of a specific action"
+ "requests:show network requests"
+ "request:show details of a specific network request"
+ "console:show console messages"
+ "errors:show errors with stack traces"
+ "snapshot:run a playwright-cli command against a DOM snapshot"
+ "screenshot:save screencast screenshot for an action"
+ "attachments:list trace attachments"
+ "attachment:extract a trace attachment by its number"
+ "install-skill:install SKILL.md for LLM integration"
+ "help:display help for command"
+ )
+ _describe -t commands 'command' commands "$@"
+}
+
+(( $+functions[_playwright_reporters] )) ||
+_playwright_reporters() {
+ local -a reporters=(list line dot json junit null github html blob)
+ _values -s ',' reporter $reporters
+}
+
+_playwright "$@"
+
+# Local Variables:
+# mode: Shell-Script
+# sh-indentation: 2
+# indent-tabs-mode: nil
+# sh-basic-offset: 2
+# End:
+# vim: ft=zsh sw=2 ts=2 et