Subject: 30.0.50; (bounds-of-things-at-point 'string) identify error in js-ts-mode

From: 张旭 <[email-masked]>
Date: Thu, 30 May 2024 15:20:19 +0800

In jsx file and js-ts-mode enabled, when called (bounds-of-things-at-point 'string),
it return wrong position range. e.g.

function testExample (){
return (
<B1main>
<Link to='?type=  A  jedi'></Link>
</mainB2>
)}
when cursor is at position A, and called (bounds-of-things-at-point
'string), it will return range (B1 . B2) rather than range of single quote.

In GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin23.5.0, NS
appkit-2487.60 Version 14.5 (Build 23F79)) of 2024-05-22 built on
192.168.0.103
Windowing system distributor 'Apple', version 10.3.2487
System Description:  macOS 14.5

Configured using:
'configure --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp
--infodir=/opt/homebrew/Cellar/emacs-head@30/30.0.50_1/share/info/emacs
--prefix=/opt/homebrew/Cellar/emacs-head@30/30.0.50_1 --without-x
--without-dbus --with-imagemagick --with-modules --with-gnutls
--with-rsvg --with-xml2 --with-xwidgets --with-webp --with-ns
--disable-ns-self-contained 'CFLAGS=-DFD_SETSIZE=10000
-DDARWIN_UNLIMITED_SELECT''

Configured features:
ACL GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG LCMS2 LIBXML2 MODULES NOTIFY
KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM XWIDGETS ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8

Major mode: JavaScript

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  auto-revert-mode: t
  lisp-keyword-indent-mode: t
  eros-mode: t
  server-mode: t
  pixel-scroll-precision-mode: t
  save-place-mode: t
  recentf-mode: t
  savehist-mode: t
  marginalia-mode: t
  vertico-multiform-mode: t
  vertico-mode: t
  lsp-bridge-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  which-key-mode: t
  repeat-help-mode: t
  repeat-mode: t
  mini-echo-mode: t
  global-hide-mode-line-mode: t
  hide-mode-line-mode: t
  global-page-break-lines-mode: t
  global-colorful-mode: t
  diff-hl-margin-local-mode: t
  diff-hl-margin-mode: t
  diff-hl-flydiff-mode: t
  global-diff-hl-mode: t
  diff-hl-mode: t
  shackle-mode: t
  dirvish-override-dired-mode: t
  undo-fu-session-global-mode: t
  undo-fu-session-mode: t
  hl-line-mode: t
  subword-mode: t
  outline-minor-mode: t
  rainbow-delimiters-mode: t
  highlight-parentheses-mode: t
  flymake-mode: t
  global-atomic-chrome-edit-mode: t
  global-hungry-delete-mode: t
  hungry-delete-mode: t
  global-pangu-spacing-mode: t
  pangu-spacing-mode: t
  global-hl-todo-mode: t
  hl-todo-mode: t
  simpleclip-mode: t
  binky-margin-mode: t
  binky-margin-local-mode: t
  binky-mode: t
  goto-address-prog-mode: t
  global-goto-address-mode: t
  goto-address-mode: t
  electric-pair-mode: t
  keyfreq-autosave-mode: t
  keyfreq-mode: t
  global-treesit-auto-mode: t
  denote-rename-buffer-mode: t
  denote-menu-bar-mode: t
  global-mise-mode: t
  mise-mode: t
  global-dash-fontify-mode: t
  meow-global-mode: t
  meow-mode: t
  meow-normal-mode: t
  delete-selection-mode: t
  meow-esc-mode: t
  elispfl-ielm-mode: t
  elispfl-mode: t
  gcmh-mode: t
  leaf-key-override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  window-divider-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  auto-save-visited-mode: t
  hs-minor-mode: t

Load-path shadows:
/Users/liuyinz/.config/emacs/lib/compat/compat hides /opt/homebrew/Cellar/emacs-head@30/30.0.50_1/share/emacs/30.0.50/lisp/emacs-lisp/compat

Features:
(shadow sort mail-extr emacsbug elisp-demos info-colors tramp-cmds
package-lint finder finder-inf helpful cc-langs edebug debug backtrace
info-look f elisp-refs s shortdoc comp-common help-fns apheleia
apheleia-rcs apheleia-dp apheleia-formatters apheleia-utils apheleia-log
apheleia-formatter-context 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 package url-handlers
magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode git-commit log-edit message sendmail yank-media rfc822 mml
mml-sec epa epg rfc6068 epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader add-log magit-core
magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process with-editor magit-mode browse-url url url-proxy
url-privacy url-expand url-methods url-history mailcap magit-git
magit-base magit-section crm vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs
vc-rcs ibuffer-vc ibuf-ext ibuffer ibuffer-loaddefs vterm term ehelp
vterm-module term/xterm xterm flymake-collection-eslint
flymake-collection jtsx typescript-ts-mode js c-ts-common cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs vertico-directory cursor-sensor consult-imenu imenu
consult-register consult-xref consult bookmark network-stream puny nsm
exec-path-from-shell sis flymake-bridge checkdoc lisp-keyword-indent
eros pp server pixel-scroll cua-base saveplace recentf tree-widget
wid-edit savehist duplexer marginalia orderless vertico-multiform
vertico init-bridge-detect lsp-bridge tramp trampver tramp-integration
files-x tramp-message tramp-compat xdg shell pcomplete parse-time
iso8601 time-date tramp-loaddefs lsp-bridge-semantic-tokens
lsp-bridge-dart lsp-bridge-inlay-hint lsp-bridge-org-babel
lsp-bridge-lsp-installer lsp-bridge-diagnostic lsp-bridge-code-action
acm acm-quick-access acm-backend-jupyter acm-backend-org-roam
acm-backend-copilot acm-backend-codeium acm-backend-ctags
acm-backend-citre acm-backend-tabnine acm-backend-telega
acm-backend-tempel acm-backend-search-sdcv-words
acm-backend-search-file-words acm-backend-path acm-backend-lsp
acm-backend-elisp acm-backend-yas yasnippet-collection yasnippet
acm-icon svg dom lsp-bridge-call-hierarchy lsp-bridge-peek
lsp-bridge-jdtls lsp-bridge-ref grep lsp-bridge-epc acm-frame
markdown-mode edit-indirect which-key repeat-help repeat mini-echo
hide-mode-line face-remap page-break-lines colorful-mode diff-hl-margin
diff-hl-dired diff-hl-flydiff diff diff-hl log-view pcvs-util vc-dir
ewoc vc shackle trace cl-print dirvish derived undo-fu-session vc-git
diff-mode track-changes vc-dispatcher flymake-relint relint xr hl-line
cap-words superword subword noutline outline hideshow rainbow-delimiters
highlight-parentheses flymake compile text-property-search comint
ansi-osc ansi-color warnings jka-compr atomic-chrome websocket
url-cookie url-domsuf url-util url-parse auth-source icons
password-cache url-vars bindat let-alist hungry-delete pangu-spacing
hl-todo simpleclip binky-margin binky pulse goto-addr elec-pair-extra
elec-pair keyfreq flymake-collection-hook treesit-auto treesit
denote-rename-buffer denote dired dired-loaddefs xref ring mise
inheritenv json map init-env init-key init-gui init-write init-markdown
init-lang init-web init-project project init-reader init-vcs init-format
init-flymake init-ide init-color init-benchmark init-package init-passwd
init-tool pinyinlib init-spell init-diff init-pair isolate init-jump
init-edit copy-as-format xml tabify coercion init-undo psearch find-func
thingatpt init-dired init-ibuffer ibuf-macs init-window init-highlight
init-ui doom-city-lights-theme doom-themes doom-themes-base
mini-echo-segments dash init-bridge init-yas init-outline init-embark
init-consult init-minibuffer init-meow meow meow-tutor meow-cheatsheet
meow-cheatsheet-layout meow-core meow-shims delsel meow-esc meow-command
array meow-beacon meow-thing meow-visual meow-keypad meow-helpers
meow-util color meow-keymap meow-face meow-var init-duplexer
init-builtin transient format-spec eieio eieio-core edmacro kmacro
byte-opt disp-table init-elisp elispfl advice init-font init-bootstrap
no-littering compat gcmh leaf zig-mode-autoloads
yasnippet-collection-autoloads yasnippet-autoloads xterm-color-autoloads
xr-autoloads with-proxy-autoloads with-editor-autoloads
web-mode-autoloads vundo-autoloads vue-ts-mode-autoloads
visual-fill-column-autoloads vertico-autoloads vc-msg-autoloads
valign-autoloads undo-hl-autoloads typst-ts-mode-autoloads
typst-preview-autoloads ts-docstr-autoloads treesit-auto-autoloads
transpose-frame-autoloads transient-showcase-autoloads testrun-autoloads
terminal-focus-reporting-autoloads tera-mode-autoloads
swift-ts-mode-autoloads super-save-autoloads
ssh-config-mode-el-autoloads spinner-autoloads skewer-mode-autoloads
simpleclip-autoloads shrink-path-autoloads shackle-autoloads
separedit-autoloads selected-autoloads screenshot-autoloads s-autoloads
rsync-mode-autoloads rg-autoloads reverso-autoloads restclient-autoloads
repeat-help-autoloads relint-autoloads redacted-autoloads
rainbow-delimiters-autoloads quicktype-autoloads quickrun-autoloads
psearch-autoloads proxy-mode-autoloads posframe-autoloads
popup-el-autoloads popper-autoloads plz-see-autoloads plz-autoloads
plur-autoloads pip-requirements-autoloads rx pinyinlib-autoloads
pcre2el-autoloads pangu-spacing-autoloads pandoc-mdoe-autoloads
page-break-lines-autoloads package-lint-autoloads ox-gfm-autoloads
orderless-autoloads on-autoloads olivetti-autoloads obvious-autoloads
nodejs-repl-autoloads no-littering-autoloads mode-minder-autoloads
mise-autoloads mini-echo-autoloads mermaid-ts-mode-autoloads
meow-autoloads markdown-toc-autoloads markdown-mode-autoloads
marginalia-autoloads magit-autoloads macrostep-autoloads
lsp-bridge-autoloads lisp-keyword-indent-autoloads
license-templates-autoloads leaf-autoloads keyfreq-autoloads
keycast-autoloads jtsx-autoloads jq-ts-mode-autoloads jinx-autoloads
isolate-autoloads insecure-lock-autoloads inheritenv-autoloads
info-colors-autoloads impatient-mode-autoloads igist-autoloads
ibuffer-vc-autoloads hydra-autoloads hungry-delete-autoloads
hugo-autoloads ht-autoloads hsluv-emacs-autoloads hl-todo-autoloads
highlight-parentheses-autoloads highlight-defined-autoloads
helpful-autoloads handlebars-mode-autoloads grip-mode-autoloads
graphql-mode-autoloads gitignore-templates-autoloads
git-timemachine-autoloads git-modes-autoloads git-link-autoloads
git-cliff-autoloads gcmh-autoloads focus-autoloads
flymake-relint-autoloads flymake-collection-autoloads cl-macs gv
flymake-bridge-autoloads file-info-autoloads f-autoloads
exec-path-from-shell-autoloads etrace-autoloads eros-autoloads
envrc-autoloads embark-autoloads emacs-which-key-autoloads
Emacs-wgrep-autoloads emacs-websocket-autoloads
emacs-web-server-autoloads emacs-undo-fu-session-autoloads
emacs-sql-indent-autoloads emacs-smart-input-source-autoloads
emacs-request-autoloads emacs-popon-autoloads emacs-opencc-autoloads
emacs-libvterm-autoloads emacs-htmlize-autoloads
emacs-hide-mode-line-autoloads emacs-easy-hugo-autoloads
emacs-doom-themes-autoloads emacs-async-autoloads elispfl-autoloads
elisp-refs-autoloads elisp-demos-autoloads elfeed-webkit-autoloads
elfeed-autoloads elec-pair-extra-autoloads edit-indirect-autoloads
dwim-shell-command-autoloads duplexer-autoloads
dockerfile-mode-autoloads dirvish-autoloads diredfl-autoloads
diff-hl-autoloads denote-menu-autoloads denote-hugo-autoloads
denote-explore-autoloads denote-autoloads deno-bridge-autoloads
dash-autoloads ct-autoloads csv-mode-autoloads copy-as-format-autoloads
consult-yasnippet-autoloads consult-todo-autoloads consult-dir-autoloads
consult-denote-autoloads consult-autoloads compat-autoloads
combobulate-autoloads colorful-mode-autoloads coercion-autoloads
clojure-mode-autoloads citre-autoloads browse-at-remote-autoloads
borg-autoloads binky-autoloads bicycle-autoloads
benchmark-init-el-autoloads authinfo-color-mode-autoloads
atomic-chrome-autoloads apheleia-autoloads easy-mmode ansi-autoloads
adoc-mode-autoloads cl-extra help-mode acm-terminal-autoloads cl-seq
borg loaddefs-gen generate-lisp-file lisp-mnt radix-tree subr-x pcase
info cl-loaddefs cl-lib bytecomp byte-compile init-define 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 emacs)

Memory information:
((conses 16 782618 574547)
(symbols 48 79878 87)
(strings 32 229019 36062)
(string-bytes 1 6055144)
(vectors 16 68353)
(vector-slots 8 699601 139432)
(floats 8 791 8512)
(intervals 56 40284 13040)
(buffers 992 55))