From unknown Fri Aug 15 04:05:00 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#62416 <62416@debbugs.gnu.org> To: bug#62416 <62416@debbugs.gnu.org> Subject: Status: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode Reply-To: bug#62416 <62416@debbugs.gnu.org> Date: Fri, 15 Aug 2025 11:05:00 +0000 retitle 62416 30.0.50; Symbols skipped in the navigation in ruby-ts-mode reassign 62416 emacs submitter 62416 Bo=C5=A1ko Ivani=C5=A1evi=C4=87 severity 62416 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 24 08:37:44 2023 Received: (at submit) by debbugs.gnu.org; 24 Mar 2023 12:37:44 +0000 Received: from localhost ([127.0.0.1]:39989 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pfgft-0008Ht-Nw for submit@debbugs.gnu.org; Fri, 24 Mar 2023 08:37:44 -0400 Received: from [209.51.188.17] (port=55804 helo=lists.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pfebZ-000258-KR for submit@debbugs.gnu.org; Fri, 24 Mar 2023 06:25:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pfebT-00083E-HV for bug-gnu-emacs@gnu.org; Fri, 24 Mar 2023 06:24:59 -0400 Received: from mail-yw1-x1129.google.com ([2607:f8b0:4864:20::1129]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pfebI-0008Jg-CR for bug-gnu-emacs@gnu.org; Fri, 24 Mar 2023 06:24:58 -0400 Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-544b959a971so25032597b3.3 for ; Fri, 24 Mar 2023 03:24:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679653476; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=JZzOYD5Rvg/eq3KBnO3gSJfdsgdZxoD/WTmx196dmDQ=; b=Zql9E/4YwAT/aYVcQZmyhaXsa2g+16UOq++B+oUW8IFLO999vyMTuDwZDnLrbdUMxE 4IwBWVcidCf0gKqHY7R/avnoIiOpn/oJYEe+N86QFIBzChNSqDdbSRITwI7+wAbhMOgE ixourJv2PamwUkW4+pfYUOsqiuNAmp2pK3Bc6W53gbF91Swpec3SeRgNBqdEmTN/vem9 zPQPg/ckpUSxl1gR751jxdcVeZkQrXIZHDXFZEHQPxpVTmpp+KixgA4p8UHYbJS78k9n UAitT+Mqx6i2to8pVSzQ7BpSTjE9Oe+s0Nc6vmICqWTCAlyFEHzfms8liW7X65z1INOt iNsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679653476; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=JZzOYD5Rvg/eq3KBnO3gSJfdsgdZxoD/WTmx196dmDQ=; b=T0ZPf2BElDT8tnju/G4kn1FBghZoWTck615L2Q3a9kBX/krKFHS1hzWYiCe6i2Riw2 2SfpOdtfqN3S3VDOXwkHElrPPaJXgsmaCPP+FX6itjHDRiXk8kcW7FEq75E/vNkyKWqr nKCtLFpGnDvSx6f2YeVceJXjyYXiJhl1IYawu5BScqIFG7DV9CT8RH/pjlzvIPbecvn7 R318xKg8dIOC9Uh3Tt609Eaq1P89UpqKwnWVoFOmBW9yaMxuQM6ocLHnDzOFu4w1LsO2 8T7xQB75AE2NFvD5xWVGE2pg+uYt5tO+KxWoaraVKeG37URPcESyMtgKGY0f2y2k9TdR 4zHQ== X-Gm-Message-State: AAQBX9eKm+A0J3pKf7vUvRnYBKNdBy3QUcjKk9XzDwB8LzyKVUQbhnNN RhJDGsIJm4BaVITlWEQ2AGxPo8TBBqxkeZcG/gxrLocWH4i4IXlV X-Google-Smtp-Source: AKy350axf0HvR5UvVTCmkZ+vbgb1KmhHZd/449vOP5+oSAdJh42aDfQRes3V1vRnsI62kzCFcXTGxVQhGqR0RP2hMrA= X-Received: by 2002:a81:ac08:0:b0:544:8ac7:2608 with SMTP id k8-20020a81ac08000000b005448ac72608mr800954ywh.6.1679653475417; Fri, 24 Mar 2023 03:24:35 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= Date: Fri, 24 Mar 2023 11:24:24 +0100 Message-ID: Subject: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary="000000000000bf818605f7a2cc84" Received-SPF: pass client-ip=2607:f8b0:4864:20::1129; envelope-from=bosko.ivanisevic@gmail.com; helo=mail-yw1-x1129.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.1 (/) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 24 Mar 2023 08:37:37 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.1 (-) --000000000000bf818605f7a2cc84 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Navigating word forward/backward skips the Ruby symbol in the ruby-ts-mode. Adding "simple_symbol" to the treesit-sexp-type-regexp is fixing it. (setq-local treesit-sexp-type-regexp (regexp-opt '("class" "module" "method" "argument_list" "array" "hash" "parenthesized_statements" "if" "case" "when" "block" "do_block" "begin" "binary" "simple_symbol" ;; <-- missing "assignment"))) In GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin22.3.0, NS appkit-2299.40 Version 13.2.1 (Build 22D68)) of 2023-03-14 built on Bosko-M2.local Repository revision: 3fb30c8f1338ee8429411d6d36cd8ffbeb42f3cc Repository branch: master Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.2.1 Configured using: 'configure --with-native-compilation --with-xwidgets --with-tree-sitter --with-json --with-modules PKG_CONFIG_PATH=3D/opt/homebrew/opt:/opt/homebrew/opt/gcc/lib/pkgconfig:/o= pt/homebrew/opt/jansson/lib/pkgconfig:/opt/homebrew/opt/libxml2/lib/pkgconf= ig:/opt/homebrew/opt/gnutls/lib/pkgconfig:/opt/homebrew/opt/librsvg/lib/pkg= config:/opt/homebrew/opt/p11-kit/lib/pkgconfig:/opt/homebrew/opt/libgccjit/= lib/pkgconfig:/opt/homebrew/opt/tree-sitter/lib/pkgconfig:/opt/homebrew/opt= /sqlite/lib/pkgconfig' Configured features: ACL GLIB GNUTLS JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS ZLIB Important settings: locale-coding-system: utf-8 Major mode: Ruby Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t csv-field-index-mode: t auto-revert-mode: t volatile-highlights-mode: t yas-minor-mode: t savehist-mode: t which-key-mode: t server-mode: t global-rbenv-mode: t save-place-mode: t which-function-mode: t global-corfu-mode: t corfu-mode: t recentf-mode: t global-undo-tree-mode: t undo-tree-mode: t show-smartparens-global-mode: t show-smartparens-mode: t smartparens-global-mode: t smartparens-mode: t global-diff-hl-mode: t diff-hl-mode: t marginalia-mode: t vertico-mode: t eat-eshell-visual-command-mode: t eat-eshell-mode: t shell-dirtrack-mode: t global-treesit-auto-mode: t global-dash-fontify-mode: t override-global-mode: t delete-selection-mode: t global-hl-line-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t hs-minor-mode: t Load-path shadows: /Users/bosko/.config/emacs/packages/30.0.50/magit-section-20230302.2130/mag= it-section-autoloads hides /Users/bosko/.config/emacs/packages/30.0.50/magit-section-20230314.1653/mag= it-section-autoloads /Users/bosko/.config/emacs/packages/30.0.50/magit-section-20230302.2130/mag= it-section hides /Users/bosko/.config/emacs/packages/30.0.50/magit-section-20230314.1653/mag= it-section /Users/bosko/.config/emacs/packages/30.0.50/magit-section-20230302.2130/mag= it-section-pkg hides /Users/bosko/.config/emacs/packages/30.0.50/magit-section-20230314.1653/mag= it-section-pkg /Users/bosko/.config/emacs/packages/30.0.50/transient-20230315.1520/transie= nt hides /Applications/Emacs.app/Contents/Resources/lisp/transient Features: (shadow mail-extr emacsbug ielm subword-mode-expansions cap-words superword subword completion dos-w32 find-cmd find-dired browse-kill-ring expand-region text-mode-expansions cc-mode-expansions the-org-mode-expansions ruby-mode-expansions nxml-mode-expansions js-mode-expansions web-mode-expansions html-mode-expansions css-mode-expansions er-basic-expansions expand-region-core expand-region-custom consult-xref typescript-ts-mode web-mode tetris gamegrid popup avy mc-edit-lines cl-print tempo smtpmail consult-icomplete icomplete ido tar-mode arc-mode archive-mode loaddefs-gen lisp-mnt mm-archive network-stream url-cache url-http url-auth url-gw nsm display-line-numbers shortdoc json-ts-mode thai-util thai-word lao-util enriched docker-cli cal-move po mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core rect misearch multi-isearch move-text char-fold dabbrev git-rebase help-fns radix-tree magit-subtree magit-gitignore magit-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util misc css-mode consult-imenu rfc1345 quail dired-aux diff-hl-dired rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-enc xmltok magit-patch vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs bug-reference flyspell ispell magit-extras git-timemachine embark-org embark-consult embark ffap magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff git-commit log-edit magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient magit-git magit-base magit-section crm yaml-ts-mode csv-mode sort smartparens-markdown markdown-mode color pcmpl-unix em-unix em-term em-script em-prompt em-pred em-ls em-hist em-glob em-extpipe em-cmpl em-dirs em-basic em-banner em-alias eshell esh-mode esh-var esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util cus-edit cus-start cus-load files-x diary-lib diary-loaddefs cal-iso face-remap whitespace smerge-mode inf-ruby sql view sh-script executable oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku url-file svg gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range message sendmail rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils gnus-win gnus nnheader gnus-util range mm-util mail-prsvr ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi org-superstar ob-js ob-sql ob-css ob-ruby ob-dot ob-plantuml ob-ditaa ob-shell org-crypt org-habit org-agenda org-element org-persist xdg org-id avl-tree org-refile smartparens-org org ob-graphql request mailheader mail-utils graphql-mode let-alist ob-restclient restclient ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-version org-compat org-macs yank-media smartparens-html sgml-mode facemenu dom smartparens-javascript js c-ts-common smartparens-c cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ruby-ts-mode smartparens-ruby ruby-mode smie time-date vc-git hideshow eglot external-completion array jsonrpc ert debug backtrace find-func flymake-proc flymake smartparens-elixir elixir-ts-mode heex-ts-mode desktop frameset cursor-sensor autorevert filenotify term disp-table ehelp add-log etags fileloop generator xref project volatile-highlights yasnippet-snippets yasnippet savehist which-key init server pinentry init-packages empv ibuf-macs rbenv saveplace erlang-start which-func imenu corfu-terminal popon corfu recentf tree-widget wid-edit undo-tree diff queue diminish smartparens-config smartparens-text smartparens advice loadhist diff-hl smartrep log-view pcvs-util vc-dir ewoc vc vc-dispatcher diff-mode git-modes gitignore-mode gitconfig-mode conf-mode gitattributes-mode all-the-icons-dired all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons modus-vivendi-theme modus-themes wgrep grep compile consult-vertico consult bookmark text-property-search pp marginalia orderless dired-subtree dired-hacks-utils vertico compat dash-docs use-package-dash-docs gnutls puny thingatpt async format-spec xml edmacro kmacro eat shell pcomplete comint ansi-osc ring ansi-color exec-path-from-shell treesit-auto treesit f f-shortdoc dash s dired-x dired dired-loaddefs use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf magit-autoloads pcase docker-compose-mode-autoloads ibuffer-vc-autoloads json-snatcher-autoloads magit-section-autoloads ibuffer-git-autoloads inf-ruby-autoloads wgrep-autoloads eat-autoloads move-text-autoloads yari-autoloads ibuffer-tramp-autoloads rainbow-delimiters-autoloads smex-autoloads easy-kill-autoloads avy-autoloads yaml-mode-autoloads markup-faces-autoloads orderless-autoloads git-timemachine-autoloads git-commit-autoloads railscasts-theme-autoloads browse-kill-ring-autoloads pinentry-autoloads consult-dash-autoloads ov-autoloads csv-mode-autoloads change-inner-autoloads ob-graphql-autoloads graphql-mode-autoloads adoc-mode-autoloads vlf-autoloads neotree-autoloads docker-cli-autoloads all-the-icons-dired-autoloads all-the-icons-autoloads f-autoloads smartparens-autoloads undo-tree-autoloads queue-autoloads flycheck-autoloads websocket-autoloads dash-docs-autoloads popup-autoloads gist-autoloads which-key-autoloads rbenv-autoloads vertico-autoloads textile-mode-autoloads request-autoloads smartrep-autoloads expand-region-autoloads sass-mode-autoloads haml-mode-autoloads embark-consult-autoloads consult-autoloads embark-autoloads anzu-autoloads marginalia-autoloads with-editor-autoloads gh-autoloads marshal-autoloads logito-autoloads pcache-autoloads async-autoloads pkg-info-autoloads epl-autoloads diminish-autoloads git-modes-autoloads treesit-auto-autoloads typescript-mode-autoloads scss-mode-autoloads imenu-anywhere-autoloads modus-themes-autoloads web-mode-autoloads multiple-cursors-autoloads elisp-slime-nav-autoloads volatile-highlights-autoloads markdown-mode-autoloads dockerfile-mode-autoloads litable-autoloads org-superstar-autoloads corfu-terminal-autoloads popon-autoloads corfu-autoloads ob-restclient-autoloads restclient-autoloads discover-my-major-autoloads makey-autoloads diff-hl-autoloads fringe-helper-autoloads julia-shell-autoloads julia-mode-autoloads yasnippet-snippets-autoloads yasnippet-autoloads empv-autoloads docker-autoloads transient-autoloads compat-autoloads tablist-autoloads s-autoloads aio-autoloads impatient-mode-autoloads htmlize-autoloads simple-httpd-autoloads dired-subtree-autoloads dired-hacks-utils-autoloads exec-path-from-shell-autoloads ht-autoloads info dash-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source eieio eieio-core password-cache json map byte-opt url-vars comp comp-cstr warnings icons subr-x rx cl-seq cl-macs gv cl-extra help-mode cl-loaddefs cl-lib bytecomp byte-compile delsel hl-line init-basic rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads xwidget-internal kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 10314598 2323441) (symbols 48 150486 125) (strings 32 645485 143465) (string-bytes 1 1444475747) (vectors 16 196492) (vector-slots 8 4033147 2066742) (floats 8 2001 10400) (intervals 56 664485 22032) (buffers 984 174)) Regards, Bo=C5=A1ko Ivani=C5=A1evi=C4=87 http://pragdevnotes.com Ruby on Windows Guides @boskoivanisevic --000000000000bf818605f7a2cc84 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Navigating word forward/backward skips the Ruby symbol in = the ruby-ts-mode.
Adding "simple_symbol" to the treesit-sexp-t= ype-regexp is fixing it.

=C2=A0 (setq-local treesit-= sexp-type-regexp
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (regex= p-opt '("class"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "module"<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 "method"
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &= quot;argument_list"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "array"
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 "hash"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "= ;parenthesized_statements"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "if"<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 "case"
=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quo= t;when"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "block"
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 "do_block"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "begin&quo= t;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 "binary"
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &= quot;simple_symbol" ;; <-- missing
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "= ;assignment")))

In GNU Emacs 30.0.50 (build 1, aarch64-ap= ple-darwin22.3.0, NS
=C2=A0appkit-2299.40 Version 13.2.1 (Build 22D68)) = of 2023-03-14 built on
=C2=A0Bosko-M2.local
Repository revision: 3fb3= 0c8f1338ee8429411d6d36cd8ffbeb42f3cc
Repository branch: master
Window= ing system distributor 'Apple', version 10.3.2299
System Descrip= tion: =C2=A0macOS 13.2.1

Configured using:
=C2=A0'configure -= -with-native-compilation --with-xwidgets --with-tree-sitter
=C2=A0--with= -json --with-modules
=C2=A0PKG_CONFIG_PATH=3D/opt/homebrew/opt:/opt/home= brew/opt/gcc/lib/pkgconfig:/opt/homebrew/opt/jansson/lib/pkgconfig:/opt/hom= ebrew/opt/libxml2/lib/pkgconfig:/opt/homebrew/opt/gnutls/lib/pkgconfig:/opt= /homebrew/opt/librsvg/lib/pkgconfig:/opt/homebrew/opt/p11-kit/lib/pkgconfig= :/opt/homebrew/opt/libgccjit/lib/pkgconfig:/opt/homebrew/opt/tree-sitter/li= b/pkgconfig:/opt/homebrew/opt/sqlite/lib/pkgconfig'

Configured f= eatures:
ACL GLIB GNUTLS JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY K= QUEUE NS
PDUMPER PNG RSVG SQLITE3 THREADS TOOLKIT_SCROLL_BARS TREE_SITTE= R WEBP
XIM XWIDGETS ZLIB

Important settings:
=C2=A0 locale-cod= ing-system: utf-8

Major mode: Ruby

Minor modes in effect:
= =C2=A0 global-git-commit-mode: t
=C2=A0 magit-auto-revert-mode: t
=C2= =A0 csv-field-index-mode: t
=C2=A0 auto-revert-mode: t
=C2=A0 volatil= e-highlights-mode: t
=C2=A0 yas-minor-mode: t
=C2=A0 savehist-mode: t=
=C2=A0 which-key-mode: t
=C2=A0 server-mode: t
=C2=A0 global-rben= v-mode: t
=C2=A0 save-place-mode: t
=C2=A0 which-function-mode: t
= =C2=A0 global-corfu-mode: t
=C2=A0 corfu-mode: t
=C2=A0 recentf-mode:= t
=C2=A0 global-undo-tree-mode: t
=C2=A0 undo-tree-mode: t
=C2=A0= show-smartparens-global-mode: t
=C2=A0 show-smartparens-mode: t
=C2= =A0 smartparens-global-mode: t
=C2=A0 smartparens-mode: t
=C2=A0 glob= al-diff-hl-mode: t
=C2=A0 diff-hl-mode: t
=C2=A0 marginalia-mode: t=C2=A0 vertico-mode: t
=C2=A0 eat-eshell-visual-command-mode: t
=C2= =A0 eat-eshell-mode: t
=C2=A0 shell-dirtrack-mode: t
=C2=A0 global-tr= eesit-auto-mode: t
=C2=A0 global-dash-fontify-mode: t
=C2=A0 override= -global-mode: t
=C2=A0 delete-selection-mode: t
=C2=A0 global-hl-line= -mode: t
=C2=A0 tooltip-mode: t
=C2=A0 global-eldoc-mode: t
=C2=A0= show-paren-mode: t
=C2=A0 electric-indent-mode: t
=C2=A0 mouse-wheel= -mode: t
=C2=A0 tab-bar-mode: t
=C2=A0 menu-bar-mode: t
=C2=A0 fil= e-name-shadow-mode: t
=C2=A0 global-font-lock-mode: t
=C2=A0 font-loc= k-mode: t
=C2=A0 blink-cursor-mode: t
=C2=A0 column-number-mode: t=C2=A0 line-number-mode: t
=C2=A0 transient-mark-mode: t
=C2=A0 auto= -composition-mode: t
=C2=A0 auto-encryption-mode: t
=C2=A0 auto-compr= ession-mode: t
=C2=A0 hs-minor-mode: t

Load-path shadows:
/Use= rs/bosko/.config/emacs/packages/30.0.50/magit-section-20230302.2130/magit-s= ection-autoloads hides /Users/bosko/.config/emacs/packages/30.0.50/magit-se= ction-20230314.1653/magit-section-autoloads
/Users/bosko/.config/emacs/p= ackages/30.0.50/magit-section-20230302.2130/magit-section hides /Users/bosk= o/.config/emacs/packages/30.0.50/magit-section-20230314.1653/magit-section<= br>/Users/bosko/.config/emacs/packages/30.0.50/magit-section-20230302.2130/= magit-section-pkg hides /Users/bosko/.config/emacs/packages/30.0.50/magit-s= ection-20230314.1653/magit-section-pkg
/Users/bosko/.config/emacs/packag= es/30.0.50/transient-20230315.1520/transient hides /Applications/Emacs.app/= Contents/Resources/lisp/transient

Features:
(shadow mail-extr ema= csbug ielm subword-mode-expansions cap-words
superword subword completio= n dos-w32 find-cmd find-dired
browse-kill-ring expand-region text-mode-e= xpansions cc-mode-expansions
the-org-mode-expansions ruby-mode-expansion= s nxml-mode-expansions
js-mode-expansions web-mode-expansions html-mode-= expansions
css-mode-expansions er-basic-expansions expand-region-coreexpand-region-custom consult-xref typescript-ts-mode web-mode tetris
ga= megrid popup avy mc-edit-lines cl-print tempo smtpmail
consult-icomplete= icomplete ido tar-mode arc-mode archive-mode
loaddefs-gen lisp-mnt mm-a= rchive network-stream url-cache url-http
url-auth url-gw nsm display-lin= e-numbers shortdoc json-ts-mode thai-util
thai-word lao-util enriched do= cker-cli cal-move po
mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-= cursors
multiple-cursors-core rect misearch multi-isearch move-text char= -fold
dabbrev git-rebase help-fns radix-tree magit-subtree magit-gitigno= re
magit-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-h= elp
ediff-init ediff-util misc css-mode consult-imenu rfc1345 quail
d= ired-aux diff-hl-dired rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid
r= ng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn
= nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-enc xmltok
magit-pa= tch vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs
bug-reference flysp= ell ispell magit-extras git-timemachine embark-org
embark-consult embark= ffap magit-bookmark magit-submodule magit-blame
magit-stash magit-reflo= g magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remot= e magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit= -merge magit-branch magit-reset
magit-files magit-refs magit-status magi= t magit-repos magit-apply
magit-wip magit-log magit-diff git-commit log-= edit magit-core
magit-autorevert magit-margin magit-transient magit-proc= ess with-editor
magit-mode transient magit-git magit-base magit-section = crm yaml-ts-mode
csv-mode sort smartparens-markdown markdown-mode color = pcmpl-unix
em-unix em-term em-script em-prompt em-pred em-ls em-hist em-= glob
em-extpipe em-cmpl em-dirs em-basic em-banner em-alias eshell esh-m= ode
esh-var esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-moduleesh-groups esh-util cus-edit cus-start cus-load files-x diary-lib
diar= y-loaddefs cal-iso face-remap whitespace smerge-mode inf-ruby sql
view s= h-script executable oc-basic ol-eww eww url-queue mm-url ol-rmail
ol-mhe= ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view
mml-smim= e smime dig gnus-sum shr pixel-fill kinsoku url-file svg
gnus-group gnus= -undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail
mail-source utf= 7 nnoo parse-time gnus-spec gnus-int gnus-range message
sendmail rfc822 = mml mml-sec epa derived epg rfc6068 epg-config mm-decode
mm-bodies mm-en= code mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mailabbrev gmm-utils = gnus-win gnus nnheader gnus-util range mm-util
mail-prsvr ol-docview doc= -view jka-compr image-mode exif ol-bibtex
bibtex iso8601 ol-bbdb ol-w3m = ol-doi org-link-doi org-superstar ob-js
ob-sql ob-css ob-ruby ob-dot ob-= plantuml ob-ditaa ob-shell org-crypt
org-habit org-agenda org-element or= g-persist xdg org-id avl-tree
org-refile smartparens-org org ob-graphql = request mailheader mail-utils
graphql-mode let-alist ob-restclient restc= lient ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-src ob-co= mint org-pcomplete
org-list org-footnote org-faces org-entities noutline= outline
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-foldorg-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs
= org-version org-compat org-macs yank-media smartparens-html sgml-mode
fa= cemenu dom smartparens-javascript js c-ts-common smartparens-c cc-mode
c= c-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
c= c-defs ruby-ts-mode smartparens-ruby ruby-mode smie time-date vc-git
hid= eshow eglot external-completion array jsonrpc ert debug backtrace
find-f= unc flymake-proc flymake smartparens-elixir elixir-ts-mode
heex-ts-mode = desktop frameset cursor-sensor autorevert filenotify term
disp-table ehe= lp add-log etags fileloop generator xref project
volatile-highlights yas= nippet-snippets yasnippet savehist which-key init
server pinentry init-p= ackages empv ibuf-macs rbenv saveplace
erlang-start which-func imenu cor= fu-terminal popon corfu recentf
tree-widget wid-edit undo-tree diff queu= e diminish smartparens-config
smartparens-text smartparens advice loadhi= st diff-hl smartrep log-view
pcvs-util vc-dir ewoc vc vc-dispatcher diff= -mode git-modes
gitignore-mode gitconfig-mode conf-mode gitattributes-mo= de
all-the-icons-dired all-the-icons all-the-icons-faces data-materialdata-weathericons data-octicons data-fileicons data-faicons
data-allth= eicons modus-vivendi-theme modus-themes wgrep grep compile
consult-verti= co consult bookmark text-property-search pp marginalia
orderless dired-s= ubtree dired-hacks-utils vertico compat dash-docs
use-package-dash-docs = gnutls puny thingatpt async format-spec xml
edmacro kmacro eat shell pco= mplete comint ansi-osc ring ansi-color
exec-path-from-shell treesit-auto= treesit f f-shortdoc dash s dired-x
dired dired-loaddefs use-package us= e-package-ensure use-package-delight
use-package-diminish use-package-bi= nd-key bind-key easy-mmode
use-package-core finder-inf magit-autoloads p= case
docker-compose-mode-autoloads ibuffer-vc-autoloads
json-snatcher= -autoloads magit-section-autoloads ibuffer-git-autoloads
inf-ruby-autolo= ads wgrep-autoloads eat-autoloads move-text-autoloads
yari-autoloads ibu= ffer-tramp-autoloads rainbow-delimiters-autoloads
smex-autoloads easy-ki= ll-autoloads avy-autoloads yaml-mode-autoloads
markup-faces-autoloads or= derless-autoloads git-timemachine-autoloads
git-commit-autoloads railsca= sts-theme-autoloads
browse-kill-ring-autoloads pinentry-autoloads consul= t-dash-autoloads
ov-autoloads csv-mode-autoloads change-inner-autoloads<= br>ob-graphql-autoloads graphql-mode-autoloads adoc-mode-autoloads
vlf-a= utoloads neotree-autoloads docker-cli-autoloads
all-the-icons-dired-auto= loads all-the-icons-autoloads f-autoloads
smartparens-autoloads undo-tre= e-autoloads queue-autoloads
flycheck-autoloads websocket-autoloads dash-= docs-autoloads
popup-autoloads gist-autoloads which-key-autoloads rbenv-= autoloads
vertico-autoloads textile-mode-autoloads request-autoloads
= smartrep-autoloads expand-region-autoloads sass-mode-autoloads
haml-mode= -autoloads embark-consult-autoloads consult-autoloads
embark-autoloads a= nzu-autoloads marginalia-autoloads
with-editor-autoloads gh-autoloads ma= rshal-autoloads logito-autoloads
pcache-autoloads async-autoloads pkg-in= fo-autoloads epl-autoloads
diminish-autoloads git-modes-autoloads treesi= t-auto-autoloads
typescript-mode-autoloads scss-mode-autoloads imenu-any= where-autoloads
modus-themes-autoloads web-mode-autoloads multiple-curso= rs-autoloads
elisp-slime-nav-autoloads volatile-highlights-autoloads
= markdown-mode-autoloads dockerfile-mode-autoloads litable-autoloads
org-= superstar-autoloads corfu-terminal-autoloads popon-autoloads
corfu-autol= oads ob-restclient-autoloads restclient-autoloads
discover-my-major-auto= loads makey-autoloads diff-hl-autoloads
fringe-helper-autoloads julia-sh= ell-autoloads julia-mode-autoloads
yasnippet-snippets-autoloads yasnippe= t-autoloads empv-autoloads
docker-autoloads transient-autoloads compat-a= utoloads tablist-autoloads
s-autoloads aio-autoloads impatient-mode-auto= loads htmlize-autoloads
simple-httpd-autoloads dired-subtree-autoloadsdired-hacks-utils-autoloads exec-path-from-shell-autoloads ht-autoloadsinfo dash-autoloads package browse-url url url-proxy url-privacy
url-e= xpand url-methods url-history url-cookie generate-lisp-file
url-domsuf u= rl-util mailcap url-handlers url-parse auth-source eieio
eieio-core pass= word-cache json map byte-opt url-vars comp comp-cstr
warnings icons subr= -x rx cl-seq cl-macs gv cl-extra help-mode
cl-loaddefs cl-lib bytecomp b= yte-compile delsel hl-line init-basic rmc
iso-transl tooltip cconv eldoc= paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode = mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-b= ar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment= text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshado= w isearch easymenu
timer select scroll-bar mouse jit-lock font-lock synt= ax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-gene= ric
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese<= br>tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek<= br>romanian slovak czech european ethiopic indian cyrillic chinese
compo= site emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook hel= p abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs fa= ces cus-face macroexp files window text-properties
overlay sha1 md5 base= 64 format env code-pages mule custom widget keymap
hashtable-print-reada= ble backquote threads xwidget-internal kqueue cocoa
ns lcms2 multi-tty m= ake-network-process native-compile emacs)

Memory information:
((c= onses 16 10314598 2323441)
=C2=A0(symbols 48 150486 125)
=C2=A0(strin= gs 32 645485 143465)
=C2=A0(string-bytes 1 1444475747)
=C2=A0(vectors= 16 196492)
=C2=A0(vector-slots 8 4033147 2066742)
=C2=A0(floats 8 20= 01 10400)
=C2=A0(intervals 56 664485 22032)
=C2=A0(buffers 984 1= 74))

Regards,
Bo=C5=A1= ko Ivani=C5=A1evi=C4=87
--000000000000bf818605f7a2cc84-- From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 24 14:41:34 2023 Received: (at 62416) by debbugs.gnu.org; 24 Mar 2023 18:41:35 +0000 Received: from localhost ([127.0.0.1]:41377 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pfmM2-0001g1-MF for submit@debbugs.gnu.org; Fri, 24 Mar 2023 14:41:34 -0400 Received: from mail-wm1-f47.google.com ([209.85.128.47]:50903) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pfmM0-0001fn-TT for 62416@debbugs.gnu.org; Fri, 24 Mar 2023 14:41:33 -0400 Received: by mail-wm1-f47.google.com with SMTP id n19so1700588wms.0 for <62416@debbugs.gnu.org>; Fri, 24 Mar 2023 11:41:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679683287; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=ETJlfeWBUfunRCnz52aXrig8v6t4A2ukdfAwNrolhFE=; b=nF5x6oGbOxEmVRH5O77KH4BEQpRGrt5JSyu5zsBU44H8fiE45NOSPpO5h8ScUJ1Lwi PDTPzyI9aXGS9Hu0mjzEw1zR1agaeyzrmfhkunRQkyqy41wVRaN2T78emsLCP9C1+dA5 zkl8ssuW0wnAC0nCkc5L+zxvyF0FAYErI3bAs5EM7dzkCSiZZ8Rlc3AXMu8G8dWPesAO YMvDLcD0Kxs59alQ9/Cz/Kw8simqpln0WFfn5nZ9RCg6aKPNycHqMhyvRluQS3KGs56E CQ/P/b4V0ZwKUmDONALrgWCyCyck3Vvn7NBOnMMpX0CUAc6JHETlr5wwm9O1vEL4Q4XW hUfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679683287; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ETJlfeWBUfunRCnz52aXrig8v6t4A2ukdfAwNrolhFE=; b=gd6kOfEGanw5aWuPiqUkinpH8xv1pLBcRRcVrZDxDNZHJ35ifv+DogNUCYDh8R5BRW oTT3K6yKI11h3XvLeFpPb5zN2kOb9tnZIXtb9XmZ+JsQuwlf05IYTjwTZav+BcSFoNi3 9Pe8QirhZfCgoCNPWz2QFspeqJqZiDrqHDUzmkB1/GLs/V8O5WL4DiTHQ/D7PBy3PTR8 bQOucgvstTkpuQAmNs9NTeNTTANKmTaPprjEJi/q5NrrP6EF7sFy416edWCfnasgHxSJ Ezl7vnJk3+QZU3Vx7J5xQUv9rkCbEwwM7e2sQNdThzGcZLPSonD5sD3X30cG/4t4diuS HM0Q== X-Gm-Message-State: AO0yUKVozwZrptMTxXkbfcjvjPrSukyfbtN+OXmszVluzPuHb3tTD7ZM rrd6MK/qSXPTU6qglyV+sSU= X-Google-Smtp-Source: AK7set+u6v64HEwqTUdxy4cCTfO92tQSc3T5pTp+u93eam4ZReqgZZxa/jK7TgXgNIfusp6MFV4U7w== X-Received: by 2002:a05:600c:b54:b0:3ee:36f:3485 with SMTP id k20-20020a05600c0b5400b003ee036f3485mr3306340wmr.8.1679683286959; Fri, 24 Mar 2023 11:41:26 -0700 (PDT) Received: from [192.168.0.2] ([85.132.229.92]) by smtp.googlemail.com with ESMTPSA id m20-20020a05600c3b1400b003dc434b39c7sm12004649wms.0.2023.03.24.11.41.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Mar 2023 11:41:26 -0700 (PDT) Message-ID: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> Date: Fri, 24 Mar 2023 20:41:23 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode Content-Language: en-US To: =?UTF-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416@debbugs.gnu.org, Juri Linkov References: From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 62416 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) On 24/03/2023 12:24, BoÅ¡ko IvaniÅ¡ević wrote: > Navigating word forward/backward skips the Ruby symbol in the ruby-ts-mode. > Adding "simple_symbol" to the treesit-sexp-type-regexp is fixing it. > >   (setq-local treesit-sexp-type-regexp >               (regexp-opt '("class" >                             "module" >                             "method" >                             "argument_list" >                             "array" >                             "hash" >                             "parenthesized_statements" >                             "if" >                             "case" >                             "when" >                             "block" >                             "do_block" >                             "begin" >                             "binary" >                             "simple_symbol" ;; <-- missing >                             "assignment"))) Juri, what do you think? In the context of your previous feedback regarding sexp navigation in ruby-ts-mode. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 25 15:18:05 2023 Received: (at 62416) by debbugs.gnu.org; 25 Mar 2023 19:18:05 +0000 Received: from localhost ([127.0.0.1]:43521 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pg9Ov-0002CD-9u for submit@debbugs.gnu.org; Sat, 25 Mar 2023 15:18:05 -0400 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:33131) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pg9Ot-0002Bd-Kt for 62416@debbugs.gnu.org; Sat, 25 Mar 2023 15:18:04 -0400 Received: (Authenticated sender: juri@linkov.net) by mail.gandi.net (Postfix) with ESMTPSA id 302BD40002; Sat, 25 Mar 2023 19:17:53 +0000 (UTC) From: Juri Linkov To: Dmitry Gutov Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode In-Reply-To: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> (Dmitry Gutov's message of "Fri, 24 Mar 2023 20:41:23 +0200") Organization: LINKOV.NET References: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> Date: Sat, 25 Mar 2023 21:04:52 +0200 Message-ID: <86v8iomzk3.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 62416 Cc: =?utf-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) >> Navigating word forward/backward skips the Ruby symbol in the ruby-ts-mode. >> Adding "simple_symbol" to the treesit-sexp-type-regexp is fixing it. >>   (setq-local treesit-sexp-type-regexp >>               (regexp-opt '("class" >>                             "module" >>                             "method" >>                             "argument_list" >>                             "array" >>                             "hash" >>                             "parenthesized_statements" >>                             "if" >>                             "case" >>                             "when" >>                             "block" >>                             "do_block" >>                             "begin" >>                             "binary" >>                             "simple_symbol" ;; <-- missing >>                             "assignment"))) > > Juri, what do you think? > > In the context of your previous feedback regarding sexp navigation in > ruby-ts-mode. This is fine. But anyway I think in its current state treesit-sexp-type-regexp is underdesigned as noted in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62238#59 so no tweaking could fix its design flaws. For example, foo = { a: b } when point is on the left curly bracket, 'C-M-f C-M-b' doesn't move back to the original position, etc. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 25 22:14:47 2023 Received: (at 62416) by debbugs.gnu.org; 26 Mar 2023 02:14:47 +0000 Received: from localhost ([127.0.0.1]:43731 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgFuA-0004aa-JT for submit@debbugs.gnu.org; Sat, 25 Mar 2023 22:14:46 -0400 Received: from mail-wm1-f53.google.com ([209.85.128.53]:35546) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgFu9-0004aN-EG for 62416@debbugs.gnu.org; Sat, 25 Mar 2023 22:14:45 -0400 Received: by mail-wm1-f53.google.com with SMTP id bg16-20020a05600c3c9000b003eb34e21bdfso5308277wmb.0 for <62416@debbugs.gnu.org>; Sat, 25 Mar 2023 19:14:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679796878; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=wNO1iU1oTZf8v9D5J/jv/WodeXbtS28ouIfgFE0GrT4=; b=GM6ybgjHnWHd4yL7HnkyAEj2RjrPEuJ/jix6J3QtNb3QX12xHAZIQ2BUdtGHTg2VYu ABn239/79WDhEY9cR3c5XtOQpPVJwqkS1JrZub3a21fSMtFskhoumibASiqhTQ+zXWT3 9tPYMiSmhwLO3r8FljZtIStt6zJIS8lIanhzA/W7OiQL06b0SUH1+BI509RplQ8VRqoB z+/Cl+XCltzI2P6GXIhyNIjYVGKaBmtWK9SQG6B0haw8PYOGrMb/cWT4WZWIkyzcn62r WEr2iOhskBsGw6jvaU/hgYV4lazVXBrIBHuwcZ6B0rt41B8PQLCNf3kLu3hU4pMN6MMZ oWfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679796878; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wNO1iU1oTZf8v9D5J/jv/WodeXbtS28ouIfgFE0GrT4=; b=oizcXcr3O+aVaQP0zj2KbCuvsP9nl3Dn3aUTfzGFChxaGsuWYCcsJnVpGv+CFKsYl4 p4xDzNmtZ7r3V4poIA96et92zYQrOdjoybENi9hkxFqnTRt+N9hSlWN73beb9YTLPCJA Ml0X8AX/FKQ0J5xddtfXL3ID0QHZHwL55LyWKoHOy9JIg0MbhINdOCykgOggWUZvUtQh auAg4CFE2EumlfMKKKAIaOSLV6sSpzsqYGbga1d4vKXPBmnOOax3pO7rdAKUMvTKTnHI fD9Qj0hZJD81LxX4K+v/7rY071wv/xGUcKNoaE/ahFE1qx1LwLtmYQ3Ca87ejjHepaMh ymJw== X-Gm-Message-State: AO0yUKWSU18La+lnoVvHVcnq/37BXn46ssqtteeo2I5JR9YBO+MCBsup hvaeJBQFBh1p0T4BUxR1LkA= X-Google-Smtp-Source: AK7set/Ojapoe+6sQv1fDM806SYEbNWqw8rSOm6H7WRZQpvGwbLvSf+JlfnzBkz8AJqKZTq+kh7lbg== X-Received: by 2002:a7b:c4d7:0:b0:3ed:a07b:c591 with SMTP id g23-20020a7bc4d7000000b003eda07bc591mr5836045wmk.1.1679796878185; Sat, 25 Mar 2023 19:14:38 -0700 (PDT) Received: from [192.168.0.2] ([85.132.229.92]) by smtp.googlemail.com with ESMTPSA id w6-20020a05600c474600b003ede04deb14sm4304745wmo.48.2023.03.25.19.14.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 25 Mar 2023 19:14:37 -0700 (PDT) Message-ID: <7f03efd3-b3d8-2a93-3414-63a7a2604943@yandex.ru> Date: Sun, 26 Mar 2023 05:14:35 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode Content-Language: en-US To: Juri Linkov References: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> <86v8iomzk3.fsf@mail.linkov.net> From: Dmitry Gutov In-Reply-To: <86v8iomzk3.fsf@mail.linkov.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 62416 Cc: =?UTF-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) On 25/03/2023 21:04, Juri Linkov wrote: >>> Navigating word forward/backward skips the Ruby symbol in the ruby-ts-mode. >>> Adding "simple_symbol" to the treesit-sexp-type-regexp is fixing it. >>>   (setq-local treesit-sexp-type-regexp >>>               (regexp-opt '("class" >>>                             "module" >>>                             "method" >>>                             "argument_list" >>>                             "array" >>>                             "hash" >>>                             "parenthesized_statements" >>>                             "if" >>>                             "case" >>>                             "when" >>>                             "block" >>>                             "do_block" >>>                             "begin" >>>                             "binary" >>>                             "simple_symbol" ;; <-- missing >>>                             "assignment"))) >> >> Juri, what do you think? >> >> In the context of your previous feedback regarding sexp navigation in >> ruby-ts-mode. > > This is fine. Good. Let's push it into master. > But anyway I think in its current state > treesit-sexp-type-regexp is underdesigned as noted in > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62238#59 > so no tweaking could fix its design flaws. For example, > > foo = { > a: b > } > > when point is on the left curly bracket, 'C-M-f C-M-b' doesn't > move back to the original position, etc. Hm, yeah, it's a little unexpected that not only it doesn't move back exactly, it skips the full assignment expression in both directions. What is the downside of dropping "binary" and "assignment" from treesit-sexp-type-regexp, added there not too long ago? Without "assignment" there, your example becomes a round-trip. BTW, we should wrap the regexp with \`...\'. It currently does substring matching, that's why it also matches "identifier" (which should probably be added too). From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 27 12:41:32 2023 Received: (at 62416) by debbugs.gnu.org; 27 Mar 2023 16:41:32 +0000 Received: from localhost ([127.0.0.1]:48315 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgpuV-0004Lg-Qe for submit@debbugs.gnu.org; Mon, 27 Mar 2023 12:41:32 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:60763) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgpuT-0004LP-56 for 62416@debbugs.gnu.org; Mon, 27 Mar 2023 12:41:30 -0400 Received: (Authenticated sender: juri@linkov.net) by mail.gandi.net (Postfix) with ESMTPSA id 9374EE0009; Mon, 27 Mar 2023 16:41:21 +0000 (UTC) From: Juri Linkov To: Dmitry Gutov Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode In-Reply-To: <7f03efd3-b3d8-2a93-3414-63a7a2604943@yandex.ru> (Dmitry Gutov's message of "Sun, 26 Mar 2023 05:14:35 +0300") Organization: LINKOV.NET References: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> <86v8iomzk3.fsf@mail.linkov.net> <7f03efd3-b3d8-2a93-3414-63a7a2604943@yandex.ru> Date: Mon, 27 Mar 2023 19:29:02 +0300 Message-ID: <86v8imfrbt.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 62416 Cc: =?utf-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) >> But anyway I think in its current state >> treesit-sexp-type-regexp is underdesigned as noted in >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62238#59 >> so no tweaking could fix its design flaws. For example, >> foo = { >> a: b >> } >> when point is on the left curly bracket, 'C-M-f C-M-b' doesn't >> move back to the original position, etc. > > Hm, yeah, it's a little unexpected that not only it doesn't move back > exactly, it skips the full assignment expression in both directions. > > What is the downside of dropping "binary" and "assignment" from > treesit-sexp-type-regexp, added there not too long ago? Without > "assignment" there, your example becomes a round-trip. This will break other cases, e.g. b = %Q{This is a "string"} c = %w!foo bar baz! d = %(hello (nested) world) when point is after "b", 'C-M-f' will move to "c" instead of the end of line. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 27 13:28:43 2023 Received: (at 62416) by debbugs.gnu.org; 27 Mar 2023 17:28:43 +0000 Received: from localhost ([127.0.0.1]:48375 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgqeB-0005rL-DY for submit@debbugs.gnu.org; Mon, 27 Mar 2023 13:28:43 -0400 Received: from mail-wm1-f51.google.com ([209.85.128.51]:54229) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgqe8-0005r4-Q9 for 62416@debbugs.gnu.org; Mon, 27 Mar 2023 13:28:41 -0400 Received: by mail-wm1-f51.google.com with SMTP id p34so5479721wms.3 for <62416@debbugs.gnu.org>; Mon, 27 Mar 2023 10:28:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679938115; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=LGeGYeOulshTQEs4/4F2YIk/a29JLyYm5K1dfD7Do44=; b=mW4Zi8l7Iwz6wMrpeH4TLkrkTSCOi+yyGbxtjmJAVJQOi4pDC3wqgIuZnmBUgQQlsl iaSkUawVL6w2oi5AHvvDJtyRYzwv2Sb8c/86lJFreDWIkBKoUpc4e7hl5aunPIXF7u+C wsw1JFtQroeyH7n/j7/e+6yVwwRutoJd8Ad8J0Tm/RLuiMMbm5LHWSiMV68YwQltwFLB 0jb/8E3eNlF7sotlv0sVQN0tBSM2M+4d9e+ZZjZHD6eIiR7VlTejjmTmyP46+3jZ1MgX xXXpbFYNTkwDIe9uBzwIuGd0k9PoF98+rorfABsYF9Hg6ls5+KhQ79rv3kcbvlsXDmZK cl1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679938115; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LGeGYeOulshTQEs4/4F2YIk/a29JLyYm5K1dfD7Do44=; b=uXJTIZGjhVSwMbNY5BLl2Z93J03eX54SVERueO+HPW5Nvvmt+HCyA1/vU3mgQX09Sm HobzhQ/xKb9emGRRLLRibP5brspixOsZ+1Ie2/eM0Jlwe+q/jYe9ubhZuASloXUgPCfq xkKGcYf1Ikv3zGvVGG8a+dG35Rhq7+/nN+wh40KO2u6jjzCBwh7P3fuRceozK0lrf+R7 HnW0BodYs0CyK4uXrLi0m9ehZBwyAKF3NruduSUcfibHLcFde6w8RMIs4JB029CBrJTS XXpYareyXJ02ESjMqDeNfsEvGHTb1SUetEWKM6D8opZVCEpuuhXP2U6QqqJWYXkGz72X 0nzA== X-Gm-Message-State: AO0yUKXpdDvNDd0SmJju2Rw9hBkbTR01DwaejqepiCY3/uZf7Y9tylEh spt7GmdS9PcSubyjbTJLu5U= X-Google-Smtp-Source: AK7set/lmy9w/RRuYfrwiVzfr2llAvzKfnfAmZAxw6KX7PyaxA/T733Xd2Pc8/NvrNx7vQkR05NXtQ== X-Received: by 2002:a05:600c:2049:b0:3df:e6bb:768 with SMTP id p9-20020a05600c204900b003dfe6bb0768mr9588073wmg.24.1679938114719; Mon, 27 Mar 2023 10:28:34 -0700 (PDT) Received: from [192.168.1.2] ([31.216.80.60]) by smtp.googlemail.com with ESMTPSA id j36-20020a05600c1c2400b003ebf73acf9asm23617225wms.3.2023.03.27.10.28.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Mar 2023 10:28:34 -0700 (PDT) Message-ID: <385443e1-4d17-317b-decf-36a3cf50111e@yandex.ru> Date: Mon, 27 Mar 2023 20:28:32 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode To: Juri Linkov References: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> <86v8iomzk3.fsf@mail.linkov.net> <7f03efd3-b3d8-2a93-3414-63a7a2604943@yandex.ru> <86v8imfrbt.fsf@mail.linkov.net> Content-Language: en-US From: Dmitry Gutov In-Reply-To: <86v8imfrbt.fsf@mail.linkov.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 62416 Cc: =?UTF-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) On 27/03/2023 19:29, Juri Linkov wrote: >>> But anyway I think in its current state >>> treesit-sexp-type-regexp is underdesigned as noted in >>> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62238#59 >>> so no tweaking could fix its design flaws. For example, >>> foo = { >>> a: b >>> } >>> when point is on the left curly bracket, 'C-M-f C-M-b' doesn't >>> move back to the original position, etc. >> >> Hm, yeah, it's a little unexpected that not only it doesn't move back >> exactly, it skips the full assignment expression in both directions. >> >> What is the downside of dropping "binary" and "assignment" from >> treesit-sexp-type-regexp, added there not too long ago? Without >> "assignment" there, your example becomes a round-trip. > > This will break other cases, e.g. > > b = %Q{This is a "string"} > c = %w!foo > bar > baz! > d = %(hello (nested) world) > > when point is after "b", 'C-M-f' will move to "c" instead of the end of line. That is because the string literals aren't recognized as sexps yet. Try this: diff --git a/lisp/progmodes/ruby-ts-mode.el b/lisp/progmodes/ruby-ts-mode.el index d1034d467ab..c46247c747a 100644 --- a/lisp/progmodes/ruby-ts-mode.el +++ b/lisp/progmodes/ruby-ts-mode.el @@ -1129,8 +1129,11 @@ ruby-ts-mode "block" "do_block" "begin" - "binary" - "assignment"))) + "integer" + "simple_symbol" + "string" + "string_array" + ))) ;; AFAIK, Ruby can not nest methods (setq-local treesit-defun-prefer-top-level nil) From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 28 02:38:14 2023 Received: (at 62416) by debbugs.gnu.org; 28 Mar 2023 06:38:14 +0000 Received: from localhost ([127.0.0.1]:48733 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ph2yE-0001Kv-Jg for submit@debbugs.gnu.org; Tue, 28 Mar 2023 02:38:14 -0400 Received: from relay10.mail.gandi.net ([217.70.178.230]:54243) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ph2yD-0001KU-9N for 62416@debbugs.gnu.org; Tue, 28 Mar 2023 02:38:14 -0400 Received: (Authenticated sender: juri@linkov.net) by mail.gandi.net (Postfix) with ESMTPSA id 5F0BE240002; Tue, 28 Mar 2023 06:38:04 +0000 (UTC) From: Juri Linkov To: Dmitry Gutov Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode In-Reply-To: <385443e1-4d17-317b-decf-36a3cf50111e@yandex.ru> (Dmitry Gutov's message of "Mon, 27 Mar 2023 20:28:32 +0300") Organization: LINKOV.NET References: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> <86v8iomzk3.fsf@mail.linkov.net> <7f03efd3-b3d8-2a93-3414-63a7a2604943@yandex.ru> <86v8imfrbt.fsf@mail.linkov.net> <385443e1-4d17-317b-decf-36a3cf50111e@yandex.ru> Date: Tue, 28 Mar 2023 09:31:52 +0300 Message-ID: <86o7odmlnr.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 62416 Cc: =?utf-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) >> This will break other cases, e.g. >> b = %Q{This is a "string"} >> c = %w!foo >> bar >> baz! >> d = %(hello (nested) world) >> when point is after "b", 'C-M-f' will move to "c" instead of the end of >> line. > > That is because the string literals aren't recognized as sexps yet. Try > this: > > @@ -1129,8 +1129,11 @@ ruby-ts-mode > "block" > "do_block" > "begin" > - "binary" > - "assignment"))) > + "integer" > + "simple_symbol" > + "string" > + "string_array" > + ))) Thanks, this definitely is an improvement since it handles all mentioned cases. However, there are still a lot of more things that need fixing. When point is on the left curly bracket in b = %Q{This is a "string"} 'C-M-f' doesn't move to the right curly bracket. Also double quotes inside the string are not matched by 'C-M-f'. In d = %(hello (nested) world) 'C-M-f' doesn't move to the closing parens from opening parens. Looking at test/lisp/progmodes/ruby-mode-resources/ruby.rb for example here curly brackets are not matched with 'C-M-f C-M-b' in string interpolation and regexps: "abc/#{ddf}ghi" /foo/xi != %r{bar}mo.tee Do you think it is possible to handle these cases by crafting treesit-sexp-type-regexp? From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 28 18:24:59 2023 Received: (at 62416-done) by debbugs.gnu.org; 28 Mar 2023 22:24:59 +0000 Received: from localhost ([127.0.0.1]:50827 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1phHkQ-0001JE-RX for submit@debbugs.gnu.org; Tue, 28 Mar 2023 18:24:59 -0400 Received: from mail-wm1-f47.google.com ([209.85.128.47]:54183) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1phHkP-0001J0-6Q for 62416-done@debbugs.gnu.org; Tue, 28 Mar 2023 18:24:57 -0400 Received: by mail-wm1-f47.google.com with SMTP id p34so7815875wms.3 for <62416-done@debbugs.gnu.org>; Tue, 28 Mar 2023 15:24:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680042291; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=hUeSbMgWBir2LnX1lIB47/fo7n2p765QUM+gzpX+prc=; b=FmWhXE++AswtzWIbVddp9taLBfkH5ERe+Rh1MwAK79O1lPwVg2fWbtdz9aM8QM67mR y8Xm5rpigJ0gcrg/Fe+f24i9fk8FacHT3x1HXk5IzK86zCW9dRX++4zX92/iliT6LtFX o3V1RWm5nfRm5MIg1IiAS8A8c76M3CaE5+uCQMz43azgZ+FpaNQYi1sgztEHcS+mE2hI hPu0WIrrQBUgbCdwHVOQflNPCrQSKOzS97NxIj5h5AXjPFls6UIAsaGIWtQazvoACPu8 tQZ0IAu64bOJuCB6uyu+E9haDjknbUQkgeqE4sn7UHGVXu2cl3NqMkeIyQV0cVQJDYih Q4yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680042291; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hUeSbMgWBir2LnX1lIB47/fo7n2p765QUM+gzpX+prc=; b=sSG4Xqsh3Pxs25rr0x3TI8VTPW/yA3MWssWevrBw5sFrEESrKuPq876zz2esr0FBkm T6yRSznnGv1GB4cpzIue1TwzduWMS41A21/TP/YYoQ4OGwF0r24X7wkCWM09CF1VbEj9 Lr7RBVxJumPB2b7WKbDIy8FG1WFqI4Zpna8I4iUuPSSdxPUaPLHwwgegjNK5mQZfnway 8cG3Vf3R6oflgexI05iNNyAoi4r2yiMKefkuNoWW3qqd2igFGLLhU5553+7oaz1LyEa3 fjwFTjlrYaxN1cvD8t4BaGQUCvzNYOIwr71CCOJuAWLJiBfn0PnRzGJiGvdoTrEIrO1W wXWQ== X-Gm-Message-State: AO0yUKW+MFsiESj5yY3xyIGYRuDyIrw4UHC6YTWqNDrG9R+paoi4wHu/ +XIE5wryJf++hDv7ES+iaDk= X-Google-Smtp-Source: AK7set/zzTU+70o0nVUGr1gNfgM0Q+g4ikFZySKIbeO3XmsoEvN5ZXGSY7liH002NN45MqMwNgumxQ== X-Received: by 2002:a1c:ed08:0:b0:3ee:95c:b73e with SMTP id l8-20020a1ced08000000b003ee095cb73emr12796226wmh.24.1680042291229; Tue, 28 Mar 2023 15:24:51 -0700 (PDT) Received: from [192.168.1.2] ([31.216.80.60]) by smtp.googlemail.com with ESMTPSA id c1-20020a05600c0a4100b003ee5fa61f45sm177697wmq.3.2023.03.28.15.24.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Mar 2023 15:24:50 -0700 (PDT) Message-ID: Date: Wed, 29 Mar 2023 01:24:49 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode Content-Language: en-US To: Juri Linkov References: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> <86v8iomzk3.fsf@mail.linkov.net> <7f03efd3-b3d8-2a93-3414-63a7a2604943@yandex.ru> <86v8imfrbt.fsf@mail.linkov.net> <385443e1-4d17-317b-decf-36a3cf50111e@yandex.ru> <86o7odmlnr.fsf@mail.linkov.net> From: Dmitry Gutov In-Reply-To: <86o7odmlnr.fsf@mail.linkov.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 62416-done Cc: =?UTF-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) On 28/03/2023 09:31, Juri Linkov wrote: >>> This will break other cases, e.g. >>> b = %Q{This is a "string"} >>> c = %w!foo >>> bar >>> baz! >>> d = %(hello (nested) world) >>> when point is after "b", 'C-M-f' will move to "c" instead of the end of >>> line. >> >> That is because the string literals aren't recognized as sexps yet. Try >> this: >> >> @@ -1129,8 +1129,11 @@ ruby-ts-mode >> "block" >> "do_block" >> "begin" >> - "binary" >> - "assignment"))) >> + "integer" >> + "simple_symbol" >> + "string" >> + "string_array" >> + ))) > > Thanks, this definitely is an improvement since it handles all mentioned cases. Very good, I've pushed that change, and with that I'm closing this bug. Thank you both. > However, there are still a lot of more things that need fixing. > When point is on the left curly bracket in > > b = %Q{This is a "string"} > > 'C-M-f' doesn't move to the right curly bracket. > Also double quotes inside the string are not matched by 'C-M-f'. > > In > > d = %(hello (nested) world) > > 'C-M-f' doesn't move to the closing parens from opening parens. > > Looking at test/lisp/progmodes/ruby-mode-resources/ruby.rb > for example here curly brackets are not matched with 'C-M-f C-M-b' > in string interpolation and regexps: > > "abc/#{ddf}ghi" > > /foo/xi != %r{bar}mo.tee > > Do you think it is possible to handle these cases > by crafting treesit-sexp-type-regexp? I don't think so. tree-sitter parse tree has no information about these parens or their positions. So we'd need to do this with some custom code: check the context (e.g. see that we are inside a string) and then move over parens and etc. It's not out of the question to do that in the common tree-sitter code, too (Ruby doesn't look very special in having strings). But whether this is useful enough to expend that effort, seems like a subject for a separate discussion (report-emacs-bug or emacs-devel -- your choice). From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 30 03:48:19 2023 Received: (at 62416) by debbugs.gnu.org; 30 Mar 2023 07:48:19 +0000 Received: from localhost ([127.0.0.1]:55642 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1phn18-00076n-QS for submit@debbugs.gnu.org; Thu, 30 Mar 2023 03:48:19 -0400 Received: from mail-pl1-f169.google.com ([209.85.214.169]:40537) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1phn17-000761-4B for 62416@debbugs.gnu.org; Thu, 30 Mar 2023 03:48:17 -0400 Received: by mail-pl1-f169.google.com with SMTP id u10so17317100plz.7 for <62416@debbugs.gnu.org>; Thu, 30 Mar 2023 00:48:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680162491; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=E84/BiIekhJFjcf+LzuYNWDBw78lSOp1sbH45jiIERg=; b=XM4iR1qqt38dX0ndfY2CKk5CzMDD3I6lqGmFn6xuIakxmyNdPEeMlUdT/LO/e+Aard 4+my787RefLMDQMgP5/wrIYaRxerXD7LdSVyD868B7VzHTmjauRJxNKI/hZspXZyXGbG LKz7YLiPknx1NIewECFtGcz6RNYPHqYohORmPtR8frNAZWtUaGpATeFvhfpbm4W10rSE IJI5CwZuwkxjNf1Rmy/hX+9HjCzF5Iqy6AyJ8vBXfmigWPv8QvDGIwDKVfhakpZ99W7h 2QNYrJqqVTNzA5hj3IQQ+l3GAj2gERHk2KgLCz2uJUTHmtyr/4y+6bI4kPcuVqrDQxFL hDQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680162491; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=E84/BiIekhJFjcf+LzuYNWDBw78lSOp1sbH45jiIERg=; b=yZ9v39ZKrj1ayVmpz6TFFx9hVPHQtRfBfk9tgDAW/5S6e5MIkad1+XM70BvRqNk9ny 8kEb7tssf7w2F/tZqi1PKgvELnFL7RHKuekK/XnNZKhVWM+wdcbO7e6PKCnr0et51zlp I3SQ88Uq1j7GOhHutZo1SJbdi5YXFvBFE6MpG0PqmWrbjI8DNRW/qjPaQCqkgqZA0byQ SpTnV9W1mddf1cgtoS3ldqnfLoDvEISXnW6lgkXMb8bmZ7+lHZK2rlI8uj3FMNJJsvCB r7Ply1Xx1w9VOz8SC6JOw6RpRHTnJ91mllKnPI+aLU9+8BXAGdUhmul5ay4KpY0c6Ak4 vJhw== X-Gm-Message-State: AO0yUKWnQU+xQ0jdlVvPCmEsTe7gz+DSCb3y9cGFLiNBm2ji3oc5pijx 9w1QqBBECA7L7QG3BoIMVFY= X-Google-Smtp-Source: AK7set/t+oDRaQrRMq0BY9ogEce4T3vsx+StlbVSAJR0KoPcnH+gu9f+pCjc4Hkz3NbS9ut/vUakTg== X-Received: by 2002:a05:6a20:3a9f:b0:d9:1aed:a05b with SMTP id d31-20020a056a203a9f00b000d91aeda05bmr19845247pzh.50.1680162490670; Thu, 30 Mar 2023 00:48:10 -0700 (PDT) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id c22-20020aa78c16000000b006280ae74893sm18359854pfd.48.2023.03.30.00.48.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Mar 2023 00:48:10 -0700 (PDT) From: Yuan Fu Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.400.51.1.1\)) Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode Message-Id: Date: Thu, 30 Mar 2023 00:47:58 -0700 To: Juri Linkov X-Mailer: Apple Mail (2.3731.400.51.1.1) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 62416 Cc: bosko.ivanisevic@gmail.com, 62416@debbugs.gnu.org, Dmitry Gutov X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Juri Linkov writes: >>> This will break other cases, e.g. >>> b =3D %Q{This is a "string"} >>> c =3D %w!foo >>> bar >>> baz! >>> d =3D %(hello (nested) world) >>> when point is after "b", 'C-M-f' will move to "c" instead of the end = of >>> line. >> >> That is because the string literals aren't recognized as sexps yet. = Try >> this: >> >> @@ -1129,8 +1129,11 @@ ruby-ts-mode >> "block" >> "do_block" >> "begin" >> - "binary" >> - "assignment"))) >> + "integer" >> + "simple_symbol" >> + "string" >> + "string_array" >> + ))) > > Thanks, this definitely is an improvement since it handles all = mentioned cases. > > However, there are still a lot of more things that need fixing. > When point is on the left curly bracket in > > b =3D %Q{This is a "string"} > > 'C-M-f' doesn't move to the right curly bracket. > Also double quotes inside the string are not matched by 'C-M-f'. > > In > > d =3D %(hello (nested) world) > > 'C-M-f' doesn't move to the closing parens from opening parens. Have someone fixed these two cases? Because when I tried to invoke (treesit-forward-sexp), point moved to the closing bracket/paren. Anyway, I just wonder if there=E2=80=99s any fundamental shortcoming = with how treesit-beginning/end-of-thing works? Yuan From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 30 05:32:35 2023 Received: (at 62416) by debbugs.gnu.org; 30 Mar 2023 09:32:35 +0000 Received: from localhost ([127.0.0.1]:55764 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1phoe3-0003nF-Cj for submit@debbugs.gnu.org; Thu, 30 Mar 2023 05:32:35 -0400 Received: from mail-wm1-f45.google.com ([209.85.128.45]:40851) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1phoe2-0003mq-5n for 62416@debbugs.gnu.org; Thu, 30 Mar 2023 05:32:34 -0400 Received: by mail-wm1-f45.google.com with SMTP id d11-20020a05600c3acb00b003ef6e6754c5so7597969wms.5 for <62416@debbugs.gnu.org>; Thu, 30 Mar 2023 02:32:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680168748; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=puYzGKZoYFWTN9uQ5TGfns0XavdJDLn22TyfuU5zBNE=; b=pjeJLYYnkkfGfcV43VetOIKl+i/72N976Psvk42akM+ddICTWDiST+3q8CNMzqTMy2 G7AJHnh+RXbZG2INSUFHsOMHfYMxMzCv/jimvlI4rjezLZxWke9SlhVOak4g28S6tBU1 3uc/cus62hLDcCyE6w5Xdm39eaQrUoCODhOabgq2+KnzG8etnPkB29rGTcFWaBuuJY86 NNcjXOBnPv/wHFu/CE5sfNPqPQut74hZplX/t+ZUpXs393hylsGlGBAg2gyB0UaY7vWe k0L4F8lfTufkIKrGT6kOL/xkUiIWlUN8yyE8eeK+RPai++49l+XNoAd64PaNOQ4pGSqq dnaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680168748; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=puYzGKZoYFWTN9uQ5TGfns0XavdJDLn22TyfuU5zBNE=; b=psB1115yWfRyD+7TDByPIG0lLDyWiPQ7qzZ/UTUSLD13m7TxBZEva1fJ/VbAiihGP7 b1ioCSZmdGUhyZOqIa9aqf2tfYa/AfTqDgjiFAnVbKXG7n7Z5cO8cERp4wP7iODyM6Pd YndQBH7DalYVdE0MueGkglp6U3j81zzJL060F6evams1hzVVCE5vN1xGGafDu9N5XyLr n3sel4V0DZ9mfs1LdZFvHpKcNNrVagjqrCq9Gh7RG18MclAs/fVaGJohItMxNWKGTmQv mex7b0tQXrXJ87JEygGblDWZ9Dv29wnZk3kTixXPEww3M8XQD8sj4vK0vF+5G0KruZ87 Irww== X-Gm-Message-State: AO0yUKXSS1zmJju9Hhm6titT80MUe/8tDKnB5DvzhGsao2K7GbcEo7lS cEb7mMhwKyUa78TgcVJFAbNzQwjHdFp0Qw== X-Google-Smtp-Source: AK7set9zWOYj4N+xG8jiCRwfVGPtk6ua/9zvQFPuquYuVbsNfA2YxJ306JsrB+N3DFcY+Ov7jyDtEg== X-Received: by 2002:a7b:c3c7:0:b0:3ed:fddf:b771 with SMTP id t7-20020a7bc3c7000000b003edfddfb771mr17483288wmj.12.1680168748274; Thu, 30 Mar 2023 02:32:28 -0700 (PDT) Received: from [192.168.1.2] ([31.216.80.60]) by smtp.googlemail.com with ESMTPSA id n19-20020a7bcbd3000000b003ef684c5e32sm5079946wmi.48.2023.03.30.02.32.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Mar 2023 02:32:27 -0700 (PDT) Message-ID: <8fa7abb8-d9ce-e39e-6507-53c52749ac79@yandex.ru> Date: Thu, 30 Mar 2023 12:32:26 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode Content-Language: en-US To: Yuan Fu , Juri Linkov References: From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 62416 Cc: bosko.ivanisevic@gmail.com, 62416@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) On 30/03/2023 10:47, Yuan Fu wrote: >> However, there are still a lot of more things that need fixing. >> When point is on the left curly bracket in >> >> b = %Q{This is a "string"} >> >> 'C-M-f' doesn't move to the right curly bracket. >> Also double quotes inside the string are not matched by 'C-M-f'. >> >> In >> >> d = %(hello (nested) world) >> >> 'C-M-f' doesn't move to the closing parens from opening parens. > > Have someone fixed these two cases? Because when I tried to invoke > (treesit-forward-sexp), point moved to the closing bracket/paren. From which position? When point is right before '{', it doesn't move in my testing. It does move when it was before '%'. > Anyway, I just wonder if there’s any fundamental shortcoming with how > treesit-beginning/end-of-thing works? I don't know. Seems like this method is good for a lot of things, but some fiddly details are going to be different from the default forward-sexp. ruby-mode's sexp navigation is also not ideal in its own way, and it's been useful anyway. From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 02 18:35:16 2023 Received: (at 62416) by debbugs.gnu.org; 2 Apr 2023 22:35:16 +0000 Received: from localhost ([127.0.0.1]:42927 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pj6I7-0005Do-VF for submit@debbugs.gnu.org; Sun, 02 Apr 2023 18:35:16 -0400 Received: from mail-pj1-f42.google.com ([209.85.216.42]:36677) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pj6I4-0005DS-N1 for 62416@debbugs.gnu.org; Sun, 02 Apr 2023 18:35:14 -0400 Received: by mail-pj1-f42.google.com with SMTP id o6-20020a17090a9f8600b0023f32869993so30676234pjp.1 for <62416@debbugs.gnu.org>; Sun, 02 Apr 2023 15:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680474906; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=A1ZCz51G49euHecM0CIVFWDde36RlVNbMnNz7J7+yIc=; b=YVrhjF85/WTzlYJcp5s5jT4q7aIOWoS0RCEBsCHLWJvEGbgdrfdy/qK56f7RgpSVBj ohfjbnkDOacsmTWUUC4yzkiF4UFWxzaLfbq+C2RKFeWvZq3I4/feR6797/PC31fC3lcH J+4IeCrUpxcdEA7yzUNrv0Gewcjf4Aer1G+nEGNOhVgR7Jpx4/DNi/Q2wnfwbEJOSTQS N4/TSTdD1rxGX0HEQq67V1CM4az76ywEJyovqAlzUoxY1ilWWGkgRJ8dZIw3b5zBcoqU VKsct9ZaaGXX8D7vZaUWI/6jhlwqoC+dfEZEuiM8Ni3Nj4DcjOOwi9TJaAFgYLryLQBL 9KhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680474906; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=A1ZCz51G49euHecM0CIVFWDde36RlVNbMnNz7J7+yIc=; b=tdbaV7c7/x0zeImvHy6Z7480jxXjrattn2VFhVDZHOh7mWpaJVYPZ/+R1+NNuZNbf3 WlNfi34b/G+xwN52OE0v82CQVd5oRpZwzNL+YfPdizr6qS1OirSqdHn7/8Pw9T88feUM saWXsPSTYm2WA7jwTK6TH/ABZng2FoogfX/1fbFbne5wGisf4y4PFz2Ht7/Nri3fShM/ 5wUdk+h5WJQBAXDHJWiLNvOIYD20XotRQqRKuxYgRpMTUuGQ3vIJ28+92Qd9bgQFcU+Q DNpE5lfZy4tz4gGPXp/PwYYREiR5gTsa0I5WxdQP3+HUW5Vo83BTFwd4yecCOGdI6oaQ C0rg== X-Gm-Message-State: AAQBX9fIyPMwgeOWp5OjD2NQwd3ViuSsB/LI62UqguVfvBisLsnTcqQN pJDWlQYeke3IGZEJepwSVKE= X-Google-Smtp-Source: AKy350YukspuifwiUSzkEJ8p9d8sBstXhypmJGsH8aXu3HoV2tBlKyvs6BYxxyyzeJiSHudZi3VTYw== X-Received: by 2002:a17:90b:4f86:b0:237:9fbd:31c8 with SMTP id qe6-20020a17090b4f8600b002379fbd31c8mr37484305pjb.15.1680474906417; Sun, 02 Apr 2023 15:35:06 -0700 (PDT) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id dw24-20020a17090b095800b0023cff7e39a6sm8456357pjb.22.2023.04.02.15.35.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 02 Apr 2023 15:35:06 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.400.51.1.1\)) Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode From: Yuan Fu In-Reply-To: <8fa7abb8-d9ce-e39e-6507-53c52749ac79@yandex.ru> Date: Sun, 2 Apr 2023 15:34:54 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <612A0BCF-7E29-4C3F-AFB5-3AB71F32B786@gmail.com> References: <8fa7abb8-d9ce-e39e-6507-53c52749ac79@yandex.ru> To: Dmitry Gutov X-Mailer: Apple Mail (2.3731.400.51.1.1) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 62416 Cc: bosko.ivanisevic@gmail.com, 62416@debbugs.gnu.org, Juri Linkov X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > On Mar 30, 2023, at 2:32 AM, Dmitry Gutov wrote: >=20 > On 30/03/2023 10:47, Yuan Fu wrote: >=20 >>> However, there are still a lot of more things that need fixing. >>> When point is on the left curly bracket in >>>=20 >>> b =3D %Q{This is a "string"} >>>=20 >>> 'C-M-f' doesn't move to the right curly bracket. >>> Also double quotes inside the string are not matched by 'C-M-f'. >>>=20 >>> In >>>=20 >>> d =3D %(hello (nested) world) >>>=20 >>> 'C-M-f' doesn't move to the closing parens from opening parens. >> Have someone fixed these two cases? Because when I tried to invoke >> (treesit-forward-sexp), point moved to the closing bracket/paren. >=20 > =46rom which position? When point is right before '{', it doesn't move = in my testing. It does move when it was before '%'. Ok, I see it. I=E2=80=99ll try to see what=E2=80=99s going on when I = find some time.=20 >=20 >> Anyway, I just wonder if there=E2=80=99s any fundamental shortcoming = with how >> treesit-beginning/end-of-thing works? >=20 > I don't know. Seems like this method is good for a lot of things, but = some fiddly details are going to be different from the default = forward-sexp. >=20 > ruby-mode's sexp navigation is also not ideal in its own way, and it's = been useful anyway. One thing I noticed is that treesit-forward-sexp uses = treesit-beginning/end-of-thing, which jumps out of the parent when there = is no more siblings to go to. The default forward-sexp obviously = doesn=E2=80=99t do this. Perhaps we should stay in the same level in = tree-sitter-forward-sexp too.=20 Yuan= From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 02 18:43:51 2023 Received: (at 62416) by debbugs.gnu.org; 2 Apr 2023 22:43:51 +0000 Received: from localhost ([127.0.0.1]:42936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pj6QQ-0005SC-JJ for submit@debbugs.gnu.org; Sun, 02 Apr 2023 18:43:50 -0400 Received: from mail-wm1-f54.google.com ([209.85.128.54]:53159) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pj6QO-0005Ru-KW for 62416@debbugs.gnu.org; Sun, 02 Apr 2023 18:43:49 -0400 Received: by mail-wm1-f54.google.com with SMTP id l37so16020421wms.2 for <62416@debbugs.gnu.org>; Sun, 02 Apr 2023 15:43:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680475423; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=vCkGlEkAbKWfkdROSjCBkPr9txK3Xilh1bcnw+4WyT8=; b=PymnVRt+E5NXR1qSWM+nEjyGWMxVctlNRp4ElzHoqetcP0SGNF3xIqsownerxZGJMX EXHF9sto2lHdbC48EmlsAZT5eX/WMZ7IovyirmaFp+NvITgbvK9XucZIogfZX7mU/wLd rj7EctOxW3x6lJ4iTwn8I3AYIsl8EF0E3tg6bUa5EMnGNvk2JOuCp8g9WoH8p+XV9Mer xPmuiTc8kkJ2XkcMnFivitWMVlVmgoyeQIuPdgO53T2+pz0ynXtnYxVN1DdD4AoPb5HN 25mH5IjLM02Yp97lJ3dZJFuGYoKKDaFvIQkrssn0zz6OGDV+mmCpn5oHB8RICPfBBBmW BKgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680475423; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vCkGlEkAbKWfkdROSjCBkPr9txK3Xilh1bcnw+4WyT8=; b=diDtGcl5dw108noqpeMvzvZWw8ZYCz6PosBlv+Jw4+b6asoAfX2a5JeajRlPH0dcma KbJHxatuNUzxYqbqnJJQNmeijqL51uTEYvrMHXYiosbcElUCAsdZY9LBFzdTKlIamX6w 4PRXZvQ+e6hdR3y1FGuvLjuSLkqlGpddfS8r6chSt+dKl2kyLpgjVU8CJFmiDY9Ao2mo P3AMQ2LSt7yWiSLUitfHlhq1ttUvk5Ut1ppcSabBFRb2YYoOLpVTLveb+DibKvVaKb3P n5Z3x0tqgVrES4hehQkJsweTikm15yzvaSXm/5ZalY1FJypuCHCiXjuLlgSOhHM/f5tI P5og== X-Gm-Message-State: AO0yUKWhSLzJ952YGWbo7ZBAvfpLwJm66tCzvGUc7wC0EtGS6gsVBnvG RWVRR94q1QBpqGpHRayP/LA= X-Google-Smtp-Source: AK7set9YG7IRx1bj1eHvimOZY5I++1cV93DMDiT+LX25YL3Swf2SThpZVwb0vOntBpyeYIZyo0XvIQ== X-Received: by 2002:a7b:cb94:0:b0:3ee:2552:7512 with SMTP id m20-20020a7bcb94000000b003ee25527512mr24863196wmi.13.1680475422735; Sun, 02 Apr 2023 15:43:42 -0700 (PDT) Received: from [192.168.1.2] ([31.216.80.60]) by smtp.googlemail.com with ESMTPSA id m18-20020a7bca52000000b003ee44b2effasm10167892wml.12.2023.04.02.15.43.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 02 Apr 2023 15:43:42 -0700 (PDT) Message-ID: <9a3d2866-c24c-05bc-3258-2f09cfed66c8@yandex.ru> Date: Mon, 3 Apr 2023 01:43:40 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode Content-Language: en-US To: Yuan Fu References: <8fa7abb8-d9ce-e39e-6507-53c52749ac79@yandex.ru> <612A0BCF-7E29-4C3F-AFB5-3AB71F32B786@gmail.com> From: Dmitry Gutov In-Reply-To: <612A0BCF-7E29-4C3F-AFB5-3AB71F32B786@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 62416 Cc: bosko.ivanisevic@gmail.com, 62416@debbugs.gnu.org, Juri Linkov X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) On 03/04/2023 01:34, Yuan Fu wrote: > >> On Mar 30, 2023, at 2:32 AM, Dmitry Gutov wrote: >> >> On 30/03/2023 10:47, Yuan Fu wrote: >> >>>> However, there are still a lot of more things that need fixing. >>>> When point is on the left curly bracket in >>>> >>>> b = %Q{This is a "string"} >>>> >>>> 'C-M-f' doesn't move to the right curly bracket. >>>> Also double quotes inside the string are not matched by 'C-M-f'. >>>> >>>> In >>>> >>>> d = %(hello (nested) world) >>>> >>>> 'C-M-f' doesn't move to the closing parens from opening parens. >>> Have someone fixed these two cases? Because when I tried to invoke >>> (treesit-forward-sexp), point moved to the closing bracket/paren. >> From which position? When point is right before '{', it doesn't move in my testing. It does move when it was before '%'. > Ok, I see it. I’ll try to see what’s going on when I find some time. There is nothing surprising in this behavior, given the current implementation: it doesn't examine the text in the buffer, just uses the parse tree, And there is no trace of these parens/braces in the parse tree. >>> Anyway, I just wonder if there’s any fundamental shortcoming with how >>> treesit-beginning/end-of-thing works? >> I don't know. Seems like this method is good for a lot of things, but some fiddly details are going to be different from the default forward-sexp. >> >> ruby-mode's sexp navigation is also not ideal in its own way, and it's been useful anyway. > One thing I noticed is that treesit-forward-sexp uses treesit-beginning/end-of-thing, which jumps out of the parent when there is no more siblings to go to. The default forward-sexp obviously doesn’t do this. Perhaps we should stay in the same level in tree-sitter-forward-sexp too. That's a different aspect of its behavior. One that makes 'backward-up-list' fail to work, IIUC. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 03 12:29:53 2023 Received: (at 62416-done) by debbugs.gnu.org; 3 Apr 2023 16:29:53 +0000 Received: from localhost ([127.0.0.1]:45067 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pjN45-0000AT-6I for submit@debbugs.gnu.org; Mon, 03 Apr 2023 12:29:53 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:39313) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pjN43-0000AC-N0 for 62416-done@debbugs.gnu.org; Mon, 03 Apr 2023 12:29:52 -0400 Received: (Authenticated sender: juri@linkov.net) by mail.gandi.net (Postfix) with ESMTPSA id E3BDEE0007; Mon, 3 Apr 2023 16:29:43 +0000 (UTC) From: Juri Linkov To: Dmitry Gutov Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode In-Reply-To: (Dmitry Gutov's message of "Wed, 29 Mar 2023 01:24:49 +0300") Organization: LINKOV.NET References: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> <86v8iomzk3.fsf@mail.linkov.net> <7f03efd3-b3d8-2a93-3414-63a7a2604943@yandex.ru> <86v8imfrbt.fsf@mail.linkov.net> <385443e1-4d17-317b-decf-36a3cf50111e@yandex.ru> <86o7odmlnr.fsf@mail.linkov.net> Date: Mon, 03 Apr 2023 19:03:34 +0300 Message-ID: <868rf99kyh.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 62416-done Cc: =?utf-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) >> Looking at test/lisp/progmodes/ruby-mode-resources/ruby.rb >> for example here curly brackets are not matched with 'C-M-f C-M-b' >> in string interpolation and regexps: >> "abc/#{ddf}ghi" >> /foo/xi != %r{bar}mo.tee >> Do you think it is possible to handle these cases >> by crafting treesit-sexp-type-regexp? > > I don't think so. tree-sitter parse tree has no information about these > parens or their positions. Actually, it has information about string interpolation, so adding "interpolation" to 'treesit-sexp-type-regexp' allows to navigate "#{ddf}" in "abc/#{ddf}ghi". But other paired characters in strings have no parsed information and need examining the text in the buffer indeed. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 03 16:41:51 2023 Received: (at 62416-done) by debbugs.gnu.org; 3 Apr 2023 20:41:51 +0000 Received: from localhost ([127.0.0.1]:45385 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pjQzu-0003qc-Uw for submit@debbugs.gnu.org; Mon, 03 Apr 2023 16:41:51 -0400 Received: from mail-wr1-f45.google.com ([209.85.221.45]:37592) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pjQzs-0003qO-VO for 62416-done@debbugs.gnu.org; Mon, 03 Apr 2023 16:41:49 -0400 Received: by mail-wr1-f45.google.com with SMTP id y14so30696202wrq.4 for <62416-done@debbugs.gnu.org>; Mon, 03 Apr 2023 13:41:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680554503; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=bF7AH42w0JZZQpKv2po+Yme2ilged2VuI7cZAX0cdoA=; b=V836KIHgHURg71hu/OmhIg4/ciOJ9hIREOXruYQovEfn05/4KVVUFjW7q4sjbIeSYO eTJ25SZBpL2qqfvJYmOdTP8lIL8byo2VCyRTYKRDOtVJ6QAEj55iAh2bE3IdNrEsWMqB oT5pYpNj7i43HlcNesMAM/4jNPx3k6OstWvnpSQ7ypCxJihA89bUarprjVvlrmg6mk9J zQ99JJvSPbkiPkC1a84aZu1epzbcY9UR0xmgozwGIqtg0iMf6+vt/oxXSTIIsIZoYYkK GKMmKeeeiDYzVT8F0VDvn/hGVPuCPeO1t1q0Abwtz8Op3NTZ540KGWgNgiKLvB6BOxg/ /ziw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680554503; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bF7AH42w0JZZQpKv2po+Yme2ilged2VuI7cZAX0cdoA=; b=jMjd4oe51A+lTwfDgtMb6rXezXYDtgUpplCL4HSGK5j/46QE3ty9eOB8FVZ+cqSvoU 0aFx9zkEeVDvd6XrnkCDP0FsfNralHOaby+lESoSuX+Pl+iQsJ4oQtqg1LJ8yb8T1kcc v4aC71tte+I5f9Du7oH5f/GqPs8zU/0gwhiEH6VVWwU4+J9hhxm1PCnNA7TRKxDccLiV vhuyTPk9n4IR65wxrcjBnXCvpVknEFIpgoKvV9UbQWcW8S1xbBKcTHsZqygcBx+Db98s Ju4NRebC5D5a1RsRIYWMFxNzhd+ykDnlHvKkezTNcoDnfmjOpxadXJz6lMQ/dbZOlxzx Atjw== X-Gm-Message-State: AAQBX9eCOgwutlV2WvM8UKVrgA48lOX3bQpvHk4RKvruht4DXjHj/A4T c5ozk1vAbJXa5EU974k6Au0= X-Google-Smtp-Source: AKy350YlFILvJEPLxhNwNcL68IzMOvY2UF4WTAlqNrcY1RvfcV85nzbpSbVRaD3YLXtBfb5d/f6EqA== X-Received: by 2002:a5d:554d:0:b0:2cf:f44e:45e1 with SMTP id g13-20020a5d554d000000b002cff44e45e1mr25921104wrw.19.1680554502874; Mon, 03 Apr 2023 13:41:42 -0700 (PDT) Received: from [192.168.1.2] ([31.216.80.60]) by smtp.googlemail.com with ESMTPSA id t17-20020adff611000000b002c5a790e959sm10538469wrp.19.2023.04.03.13.41.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Apr 2023 13:41:42 -0700 (PDT) Message-ID: Date: Mon, 3 Apr 2023 23:41:41 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode Content-Language: en-US To: Juri Linkov References: <9cfb677e-2c3b-94f3-e09f-8b231dd9b8f5@yandex.ru> <86v8iomzk3.fsf@mail.linkov.net> <7f03efd3-b3d8-2a93-3414-63a7a2604943@yandex.ru> <86v8imfrbt.fsf@mail.linkov.net> <385443e1-4d17-317b-decf-36a3cf50111e@yandex.ru> <86o7odmlnr.fsf@mail.linkov.net> <868rf99kyh.fsf@mail.linkov.net> From: Dmitry Gutov In-Reply-To: <868rf99kyh.fsf@mail.linkov.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 62416-done Cc: =?UTF-8?B?Qm/FoWtvIEl2YW5pxaFldmnEhw==?= , 62416-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) On 03/04/2023 19:03, Juri Linkov wrote: >>> Looking at test/lisp/progmodes/ruby-mode-resources/ruby.rb >>> for example here curly brackets are not matched with 'C-M-f C-M-b' >>> in string interpolation and regexps: >>> "abc/#{ddf}ghi" >>> /foo/xi != %r{bar}mo.tee >>> Do you think it is possible to handle these cases >>> by crafting treesit-sexp-type-regexp? >> I don't think so. tree-sitter parse tree has no information about these >> parens or their positions. > Actually, it has information about string interpolation, > so adding "interpolation" to 'treesit-sexp-type-regexp' > allows to navigate "#{ddf}" in "abc/#{ddf}ghi". Now added in commit bd5c1d1cbbd. Note that it doesn't pair the curly braces either: the beginning is before '#'. > But other paired characters in strings have no parsed information > and need examining the text in the buffer indeed. Right. From unknown Fri Aug 15 04:05:00 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 02 May 2023 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator