argcomplete icon indicating copy to clipboard operation
argcomplete copied to clipboard

Error on terminal startup: compdump:107: bad pattern

Open kennedyjosh opened this issue 1 year ago • 2 comments

I'm using zsh 5.8.1 (x86_64-apple-darwin21.0), python 3.10, argcomplete 2.0.0

My ~/.zshrc:

# a bunch of aliases which I haven't pasted here

export PATH="/opt/homebrew/opt/erlang@24/bin:$PATH"

# for git autocompletion
# https://stackoverflow.com/questions/26462667/git-completion-not-working-in-zsh-on-os-x-yosemite-with-homebrew
autoload -U compinit && compinit
zmodload -i zsh/complist
fpath=(~/.zsh/ $fpath)

# for h script autocompletion
autoload -U bashcompinit && bashcompinit
eval "$(register-python-argcomplete --external-argcomplete-script /Users/josh/Code/server/h h)"

When I source this (or spawn a new terminal), I get a large error:

compdump:107: bad pattern: /usr/local/share/zsh/site-functions/(_SUSEconfig|__python_argcomplete_run|__python_argcomplete_run_inner|_a2ps|_a2utils|_aap|_abcde|_absolute_command_paths|_ack|_acpi|_acpitool|_acroread|_adb|_add-zle-hook-widget|_add-zsh-hook|_alias|_aliases|_all_labels|_all_matches|_alsa-utils|_alternative|_analyseplugin|_ansible|_ant|_antiword|_apachectl|_apm|_approximate|_apt|_apt-file|_apt-move|_apt-show-versions|_aptitude|_arch_archives|_arch_namespace|_arg_compile|_arguments|_arp|_arping|_arrays|_asciidoctor|_asciinema|_assign|_at|_attr|_augeas|_auto-apt|_autocd|_avahi|_awk|_axi-cache|_base64|_basename|_bash|_bash_complete|_bash_completions|_baudrates|_baz|_be_name|_beadm|_beep|_bibtex|_bind_addresses|_bindkey|_bison|_bittorrent|_bogofilter|_bpf_filters|_bpython|_brace_parameter|_brctl|_bsd_disks|_bsd_pkg|_bsdconfig|_bsdinstall|_btrfs|_bts|_bug|_builtin|_bzip2|_bzr|_cabal|_cache_invalid|_caffeinate|_cal|_calendar|_call_function|_call_program|_canonical_paths|_cat|_ccal|_cd|_cdbs-edit-patch|_cdcd|_cdr|_cdrdao|_cdrecord|_chattr|_chcon|_chflags|_chkconfig|_chmod|_chown|_chroot|_chrt|_chsh|_cksum|_clay|_cmdambivalent|_cmdstring|_cmp|_code|_column|_combination|_comm|_command|_command_names|_comp_locale|_compadd|_compdef|_complete|_complete_debug|_complete_help|_complete_help_generic|_complete_tag|_completers|_composer|_compress|_condition|_configure|_coreadm|_correct|_correct_filename|_correct_word|_cowsay|_cp|_cpio|_cplay|_cpupower|_crontab|_cryptsetup|_cscope|_cssh|_csup|_ctags_tags|_cu|_curl|_cut|_cvs|_cvsup|_cygcheck|_cygpath|_cygrunsrv|_cygserver|_cygstart|_dak|_darcs|_date|_date_formats|_dates|_dbus|_dchroot|_dchroot-dsa|_dconf|_dcop|_dcut|_dd|_deb_architectures|_deb_codenames|_deb_files|_deb_packages|_debbugs_bugnumber|_debchange|_debcheckout|_debdiff|_debfoster|_deborphan|_debsign|_debuild|_default|_defaults|_delimiters|_describe|_description|_devtodo|_df|_dhclient|_dhcpinfo|_dict|_dict_words|_diff|_diff3|_diff_options|_diffstat|_dig|_dir_list|_directories|_directory_stack|_dirs|_disable|_dispatch|_django|_dkms|_dladm|_dlocate|_dmesg|_dmidecode|_dnf|_dns_types|_doas|_domains|_dos2unix|_dpatch-edit-patch|_dpkg|_dpkg-buildpackage|_dpkg-cross|_dpkg-repack|_dpkg_source|_dput|_drill|_dsh|_dtrace|_dtruss|_du|_dumpadm|_dumper|_dupload|_dvi|_dynamic_directory_name|_e2label|_ecasound|_echotc|_echoti|_ed|_elfdump|_elinks|_email_addresses|_emulate|_enable|_enscript|_entr|_env|_eog|_equal|_espeak|_etags|_ethtool|_evince|_exec|_expand|_expand_alias|_expand_word|_extensions|_external_pwds|_fakeroot|_fbsd_architectures|_fbsd_device_types|_fc|_feh|_fetch|_fetchmail|_ffmpeg|_figlet|_file_descriptors|_file_flags|_file_modes|_file_systems|_files|_find|_find_net_interfaces|_findmnt|_finger|_fink|_first|_flac|_flex|_floppy|_flowadm|_fmadm|_fmt|_fold|_fortune|_free|_freebsd-update|_fs_usage|_fsh|_fstat|_functions|_fuse_arguments|_fuse_values|_fuser|_fusermount|_fw_update|_gcc|_gcore|_gdb|_geany|_gem|_generic|_genisoimage|_getclip|_getconf|_getent|_getfacl|_getmail|_getopt|_ghostscript|_git|_git-buildpackage|_global|_global_tags|_globflags|_globqual_delims|_globquals|_gnome-gv|_gnu_generic|_gnupod|_gnutls|_go|_gpasswd|_gpg|_gphoto2|_gprof|_gqview|_gradle|_graphicsmagick|_grep|_grep-excuses|_groff|_groups|_growisofs|_gsettings|_gstat|_guard|_guilt|_gv|_gzip|_hash|_have_glob_qual|_hdiutil|_head|_hexdump|_history|_history_complete_word|_history_modifiers|_host|_hostname|_hosts|_htop|_hwinfo|_iconv|_iconvconfig|_id|_ifconfig|_iftop|_ignored|_imagemagick|_in_vared|_inetadm|_init_d|_initctl|_install|_invoke-rc.d|_ionice|_iostat|_ip|_ipadm|_ipsec|_ipset|_iptables|_irssi|_ispell|_iwconfig|_jail|_jails|_java|_java_class|_jexec|_jls|_jobs|_jobs_bg|_jobs_builtin|_jobs_fg|_joe|_join|_jot|_jq|_kdeconnect|_kfmclient|_kill|_killall|_kld|_knock|_kpartx|_kvno|_last|_ld_debug|_ldap|_ldconfig|_ldd|_less|_lha|_libvirt|_lighttpd|_limit|_limits|_links|_lintian|_list|_list_files|_lldb|_ln|_loadkeys|_locale|_localedef|_locales|_locate|_logical_volumes|_look|_losetup|_lp|_ls|_lsattr|_lsblk|_lscfg|_lsdev|_lslv|_lsof|_lspv|_lsusb|_lsvg|_ltrace|_lua|_luarocks|_lynx|_lz4|_lzop|_mac_applications|_mac_files_for_application|_madison|_mail|_mailboxes|_main_complete|_make|_make-kpkg|_man|_match|_math|_math_params|_matlab|_md5sum|_mdadm|_mdfind|_mdls|_mdutil|_members|_mencal|_menu|_mere|_mergechanges|_message|_mh|_mii-tool|_mime_types|_mixerctl|_mkdir|_mkfifo|_mknod|_mkshortcut|_mktemp|_mkzsh|_module|_module-assistant|_module_math_func|_modutils|_mondo|_monotone|_moosic|_mosh|_most_recent_file|_mount|_mozilla|_mpc|_mplayer|_mt|_mtools|_mtr|_multi_parts|_mupdf|_mutt|_mv|_my_accounts|_myrepos|_mysql_utils|_mysqldiff|_nautilus|_nbsd_architectures|_ncftp|_nedit|_net_interfaces|_netcat|_netscape|_netstat|_networkmanager|_networksetup|_newsgroups|_next_label|_next_tags|_nginx|_ngrep|_nice|_nkf|_nl|_nm|_nmap|_normal|_nothing|_npm|_nslookup|_numfmt|_nvram|_objdump|_object_classes|_object_files|_obsd_architectures|_od|_okular|_oldlist|_open|_openstack|_opkg|_options|_options_set|_options_unset|_osascript|_osc|_other_accounts|_otool|_pack|_pandoc|_parameter|_parameters|_paste|_patch|_patchutils|_path_commands|_path_files|_pax|_pbcopy|_pbm|_pbuilder|_pdf|_pdftk|_perforce|_perl|_perl_basepods|_perl_modules|_perldoc|_pfctl|_pfexec|_pgrep|_php|_physical_volumes|_pick_variant|_picocom|_pidof|_pids|_pine|_ping|_piuparts|_pkg-config|_pkg5|_pkg_instance|_pkgadd|_pkgin|_pkginfo|_pkgrm|_pkgtool|_plutil|_pmap|_pon|_portaudit|_portlint|_portmaster|_ports|_portsnap|_postfix|_postgresql|_postscript|_powerd|_precommand|_prefix|_print|_printenv|_printers|_process_names|_procstat|_prompt|_prove|_prstat|_ps|_ps1234|_pscp|_pspdf|_psutils|_ptree|_pump|_putclip|_pv|_pwgen|_pydoc|_python|_python_argcomplete_/Users/josh/Code/server/h|_python_modules|_qdbus|_qemu|_qiv|_qtplay|_quilt|_rake|_ranlib|_rar|_rcctl|_rclone|_rcs|_rdesktop|_read|_read_comp|_readelf|_readlink|_readshortcut|_rebootin|_redirect|_regex_arguments|_regex_words|_remote_files|_renice|_reprepro|_requested|_retrieve_cache|_retrieve_mac_apps|_ri|_rlogin|_rm|_rmdir|_route|_rpm|_rrdtool|_rsync|_rubber|_ruby|_run-help|_runit|_samba|_savecore|_say|_sbuild|_sc_usage|_sccs|_sched|_schedtool|_schroot|_scl|_scons|_screen|_script|_scselect|_scutil|_seafile|_sed|_selinux_contexts|_selinux_roles|_selinux_types|_selinux_users|_sep_parts|_seq|_sequence|_service|_services|_set|_set_command|_setfacl|_setopt|_setsid|_setup|_setxkbmap|_sh|_shasum|_showmount|_shred|_shuf|_shutdown|_signals|_signify|_sisu|_slabtop|_slrn|_smartmontools|_smit|_snoop|_socket|_sockstat|_softwareupdate|_sort|_source|_spamassassin|_split|_sqlite|_sqsh|_ss|_ssh|_ssh_hosts|_sshfs|_stat|_stdbuf|_stgit|_store_cache|_stow|_strace|_strftime|_strings|_strip|_stty|_su|_sub_commands|_sublimetext|_subscript|_subversion|_sudo|_suffix_alias_files|_surfraw|_svcadm|_svccfg|_svcprop|_svcs|_svcs_fmri|_svn-buildpackage|_sw_vers|_swaks|_swanctl|_swift|_sys_calls|_sysctl|_sysrc|_sysstat|_systat|_system_profiler|_tac|_tags|_tail|_tar|_tar_archive|_tardy|_tcpdump|_tcpsys|_tcptraceroute|_tee|_telnet|_terminals|_tex|_texi|_texinfo|_tidy|_tiff|_tilde|_tilde_files|_time_zone|_timeout|_tin|_tla|_tload|_tmux|_todo.sh|_toilet|_toolchain-source|_top|_topgit|_totd|_touch|_tpb|_tput|_tr|_tracepath|_transmission|_trap|_trash|_tree|_truss|_tty|_ttyctl|_ttys|_tune2fs|_twidge|_twisted|_typeset|_ulimit|_uml|_umountable|_unace|_uname|_unexpand|_unhash|_uniq|_unison|_units|_update-alternatives|_update-rc.d|_uptime|_urls|_urpmi|_urxvt|_uscan|_user_admin|_user_at_host|_user_expand|_user_math_func|_users|_users_on|_valgrind|_value|_values|_vared|_vars|_vcsh|_vim|_vim-addons|_visudo|_vmctl|_vmstat|_vnc|_volume_groups|_vorbis|_vpnc|_vserver|_w|_w3m|_wait|_wajig|_wakeup_capable_devices|_wanna-build|_wanted|_watch|_watch-snoop|_wc|_webbrowser|_wget|_whereis|_which|_who|_whois|_widgets|_wiggle|_wipefs|_wpa_cli|_x_arguments|_x_borderwidth|_x_color|_x_colormapid|_x_cursor|_x_display|_x_extension|_x_font|_x_geometry|_x_keysym|_x_locale|_x_modifier|_x_name|_x_resource|_x_selection_timeout|_x_title|_x_utils|_x_visual|_x_window|_xargs|_xauth|_xautolock|_xclip|_xcode-select|_xdvi|_xfig|_xft_fonts|_xloadimage|_xmlsoft|_xmlstarlet|_xmms2|_xmodmap|_xournal|_xpdf|_xrandr|_xscreensaver|_xset|_xt_arguments|_xt_session_id|_xterm|_xv|_xwit|_xxd|_xz|_yafc|_yast|_yodl|_yp|_yum|_zargs|_zattr|_zcalc|_zcalc_line|_zcat|_zcompile|_zdump|_zeal|_zed|_zfs|_zfs_dataset|_zfs_keysource_props|_zfs_pool|_zftp|_zip|_zle|_zlogin|_zmodload|_zmv|_zoneadm|_zones|_zparseopts|_zpool|_zpty|_zsh|_zsh-mime-handler|_zsocket|_zstyle|_ztodo|_zypper)(N:t)

This only happened after I added the last two lines to my zshrc. Autocomplete works as expected with my script – but this error is really large and annoying to happen every time I open a new window.

kennedyjosh avatar Aug 30 '22 22:08 kennedyjosh

I'm not 100% sure, but I think this might be due to the function _python_argcomplete_ ending with my script's path, which includes / chars. I looked at the line in compdump throwing the error and compared it from a working state to a broken state, and this was one of the only differences (besides the other _python_argcomplete_* functions)

Don't really have much more time to look into it currently but would greatly appreciate a fix.

kennedyjosh avatar Aug 31 '22 17:08 kennedyjosh

We're already replacing / with _ for fish, perhaps we should apply a similar change to all shells?

https://github.com/kislyuk/argcomplete/blob/95da43507eaed949bc63539052a4c8d40d8bb98a/argcomplete/shell_integration.py#L165-L177

evanunderscore avatar Dec 09 '23 02:12 evanunderscore