GNU bug report logs - #59534
29.0.50; Improvement for treesit in python.

Previous Next

Package: emacs;

Reported by: Nasy <nasyxx <at> gmail.com>

Date: Thu, 24 Nov 2022 08:57:02 UTC

Severity: normal

Found in version 29.0.50

Fixed in version 29.1

Done: Yuan Fu <casouri <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 59534 in the body.
You can then email your comments to 59534 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#59534; Package emacs. (Thu, 24 Nov 2022 08:57:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Nasy <nasyxx <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 24 Nov 2022 08:57:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nasy <nasyxx <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; Improvement for treesit in python.
Date: Wed, 23 Nov 2022 13:53:19 -0600
Hi,

1. Operators

Python added "@" and "@=" as operators in version 3.5 and ":=" in
version 3.8. So I guess these three should be in the
=python--treesit-operators=.

2. Doc strings

Treesit does not consider the content inside the triple quotes at the
beginning of the Python file to be the documents.

For example, lines 2-4 of this file
https://github.com/python/cpython/blob/main/Lib/csv.py#L2-L4

"""
csv.py - read/write/investigate CSV files
"""

It be fontify as string instead of doc.

I changed this function to recognize the outermost single string as the
doc string.

  (defun python--treesit-fontify-string (node override start end &rest _)
    "Fontify string.
  NODE is the string node.  Do not fontify the initial f for
  f-strings.  OVERRIDE is the override flag described in
  `treesit-font-lock-rules'.  START and END mark the region to be
  fontified."
    (let* ((string-beg (treesit-node-start node))
           (string-end (treesit-node-end node))
           (maybe-expression (treesit-node-parent node))
           (maybe-defun (treesit-node-parent
                         (treesit-node-parent
                          maybe-expression)))
           (face (if (and (member (treesit-node-type maybe-defun)
                                  '("function_definition"
-                                   "class_definition"))
+                                   "class_definition"
+                                   nil))
                          ;; This check filters out this case:
                          ;; def function():
                          ;;     return "some string"
                          (equal (treesit-node-type maybe-expression)
                                 "expression_statement"))
                     'font-lock-doc-face
                   'font-lock-string-face)))
      (when (eq (char-after string-beg) ?f)
        (cl-incf string-beg))
      (treesit-fontify-with-override
       (max start string-beg) (min end string-end) face override)))

I'm not familiar with treesit, this solution could not be the best, but
I don't know if there is any other simple way to improve it.  Maybe we
could use something like =python-info-docstring-p= to check if it is doc
or net.



In GNU Emacs 29.0.50 (build 1, aarch64-apple-darwin22.1.0, NS
appkit-2299.00 Version 13.0 (Build 22A380)) of 2022-11-21 built on
Nasys-MacBook-Pro.local
Repository revision: 19954da8dd927f9db4ca95d8a1320207e6c404cd
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.0

Configured using:
'configure --prefix=/Users/Nasy/.nasy --enable-autodepend
--disable-silent-rules --disable-ns-self-contained --with-xpm
--with-jpeg --with-tiff --with-gif --with-png --with-rsvg --with-lcms2
--with-xml2 --without-imagemagick --with-native-image-api --with-json
--with-tree-sitter --with-xft --with-harfbuzz --with-libotf
--without-m17n-flt --without-xaw3d --with-ns --with-gpm --with-dbus
--with-gconf --with-gsettings --with-gnutls --with-zlib --with-modules
--with-threads --with-native-compilation --with-file-notification=yes
--with-xwidgets --without-compress-install --with-libgmp
--with-included-regex 'CFLAGS=-I/Users/Nasy/.macports/include/gcc-devel
-I/Users/Nasy/.nasy/include -I/Users/Nasy/.nix-profile/include
-I/run/current-system/sw/include'
'CPPFLAGS=-I/Users/Nasy/.macports/include/gcc-devel
-I/Users/Nasy/.nasy/include -I/Users/Nasy/.nix-profile/include
-I/run/current-system/sw/include'
'LDFLAGS=-L/Users/Nasy/.macports/lib/gcc-devel -L/Users/Nasy/.nasy/lib
-L/Users/Nasy/.nix-profile/lib -L/run/current-system/sw/lib''

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

Important settings:
  value of $EMACSNATIVELOADPATH: /Users/Nasy/.emacs.d/萚兮/旹/eln
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Python

Minor modes in effect:
  lsp-diagnostics-mode: t
  lsp-headerline-breadcrumb-mode: t
  lsp-modeline-workspace-status-mode: t
  lsp-modeline-code-actions-mode: t
  dap-tooltip-mode: t
  dap-ui-many-windows-mode: t
  dap-ui-controls-mode: t
  dap-ui-mode: t
  dap-auto-configure-mode: t
  dap-mode: t
  windmove-mode: t
  lsp-ui-mode: t
  lsp-ui-sideline-mode: t
  lsp-completion-mode: t
  lsp-treemacs-sync-mode: t
  treemacs-git-commit-diff-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: always
  lsp-managed-mode: t
  lsp-mode: t
  subword-mode: t
  whitespace-cleanup-mode: t
  copilot-mode: t
  corfu-indexed-mode: t
  corfu-history-mode: t
  corfu-doc-mode: t
  corfu-mode: t
  rainbow-delimiters-mode: t
  eldoc-box-hover-mode: t
  yas-minor-mode: t
  pixel-scroll-precision-mode: t
  save-place-mode: t
  minibuffer-depth-indicate-mode: t
  global-auto-revert-mode: t
  display-battery-mode: t
  nasy-beacon-cursor-mode: t
  nasy-keybinding-mode: t
  global-anzu-mode: t
  anzu-mode: t
  beginend-global-mode: t
  beginend-prog-mode: t
  flycheck-mode: t
  gcmh-mode: t
  keyfreq-autosave-mode: t
  keyfreq-mode: t
  all-the-icons-completion-mode: t
  marginalia-mode: t
  savehist-mode: t
  vertico-mouse-mode: t
  vertico-mode: t
  which-function-mode: t
  default-text-scale-mode: t
  global-diff-hl-show-hunk-mouse-mode: t
  diff-hl-show-hunk-mouse-mode: t
  diff-hl-margin-local-mode: t
  diff-hl-margin-mode: t
  global-diff-hl-mode: t
  diff-hl-mode: t
  delete-selection-mode: t
  dirvish-override-dired-mode: t
  global-hl-line-mode: t
  rainbow-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  which-key-mode: t
  nyan-mode: t
  minions-mode: t
  global-wakatime-mode: t
  wakatime-mode: t
  doom-modeline-mode: t
  global-dash-fontify-mode: t
  server-mode: t
  display-time-mode: t
  recentf-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  prettify-symbols-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

Load-path shadows:
/Users/Nasy/.emacs.d/straight/repos/auctex/preview-latex hides /Users/Nasy/.emacs.d/straight/build/tex-site/preview-latex
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-site hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-site
/Users/Nasy/.emacs.d/straight/repos/auctex/plain-tex hides /Users/Nasy/.emacs.d/straight/build/tex-site/plain-tex
/Users/Nasy/.emacs.d/straight/repos/auctex/auctex hides /Users/Nasy/.emacs.d/straight/build/tex-site/auctex
/Users/Nasy/.emacs.d/straight/repos/auctex/latex hides /Users/Nasy/.emacs.d/straight/build/tex-site/latex
/Users/Nasy/.emacs.d/straight/repos/auctex/lpath hides /Users/Nasy/.emacs.d/straight/build/tex-site/lpath
/Users/Nasy/.emacs.d/straight/repos/auctex/texmathp hides /Users/Nasy/.emacs.d/straight/build/tex-site/texmathp
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-bar hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-bar
/Users/Nasy/.emacs.d/straight/repos/auctex/toolbar-x hides /Users/Nasy/.emacs.d/straight/build/tex-site/toolbar-x
/Users/Nasy/.emacs.d/straight/repos/auctex/context hides /Users/Nasy/.emacs.d/straight/build/tex-site/context
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-info hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-info
/Users/Nasy/.emacs.d/straight/repos/auctex/latex-flymake hides /Users/Nasy/.emacs.d/straight/build/tex-site/latex-flymake
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-jp hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-jp
/Users/Nasy/.emacs.d/straight/repos/auctex/bib-cite hides /Users/Nasy/.emacs.d/straight/build/tex-site/bib-cite
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-style hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-style
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-fold hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-fold
/Users/Nasy/.emacs.d/straight/repos/auctex/font-latex hides /Users/Nasy/.emacs.d/straight/build/tex-site/font-latex
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-wizard hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-wizard
/Users/Nasy/.emacs.d/straight/repos/auctex/multi-prompt hides /Users/Nasy/.emacs.d/straight/build/tex-site/multi-prompt
/Users/Nasy/.emacs.d/straight/repos/auctex/tex hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex
/Users/Nasy/.emacs.d/straight/repos/auctex/preview hides /Users/Nasy/.emacs.d/straight/build/tex-site/preview
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-mik hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-mik
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-ispell hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-ispell
/Users/Nasy/.emacs.d/straight/repos/auctex/context-en hides /Users/Nasy/.emacs.d/straight/build/tex-site/context-en
/Users/Nasy/.emacs.d/straight/repos/auctex/tex-font hides /Users/Nasy/.emacs.d/straight/build/tex-site/tex-font
/Users/Nasy/.emacs.d/straight/repos/auctex/context-nl hides /Users/Nasy/.emacs.d/straight/build/tex-site/context-nl
/Users/Nasy/.emacs.d/straight/repos/auctex/auto-loads hides /Users/Nasy/.emacs.d/straight/build/tex-site/auto-loads
/Users/Nasy/.emacs.d/straight/build/dired-narrow/dired-narrow hides /Users/Nasy/.emacs.d/straight/build/dired-hacks/dired-narrow
/Users/Nasy/.emacs.d/straight/build/dired-rainbow/dired-rainbow hides /Users/Nasy/.emacs.d/straight/build/dired-hacks/dired-rainbow
/Users/Nasy/.emacs.d/straight/build/dired-hacks/dired-filter hides /Users/Nasy/.emacs.d/straight/build/dired-filter/dired-filter
/Users/Nasy/.emacs.d/straight/build/dired-hacks/dired-hacks-utils hides /Users/Nasy/.emacs.d/straight/build/dired-hacks-utils/dired-hacks-utils
/Users/Nasy/.emacs.d/straight/build/dired-hacks/dired-collapse hides /Users/Nasy/.emacs.d/straight/build/dired-collapse/dired-collapse
/Users/Nasy/.emacs.d/straight/build/nasy-theme/彩 hides /Users/Nasy/.emacs.d/straight/build/彩/彩
/Users/Nasy/.emacs.d/straight/build/transient/transient hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/transient
/Users/Nasy/.emacs.d/straight/build/jsonrpc/jsonrpc hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/jsonrpc
~/.emacs.d/芄蘭/custom hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/custom
/Users/Nasy/.emacs.d/straight/build/xref/xref hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/progmodes/xref
/Users/Nasy/.emacs.d/straight/build/project/project hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/progmodes/project
/Users/Nasy/.emacs.d/straight/build/org/ob-comint hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-comint
/Users/Nasy/.emacs.d/straight/build/org/ob-exp hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-exp
/Users/Nasy/.emacs.d/straight/build/org/org-ctags hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-ctags
/Users/Nasy/.emacs.d/straight/build/org/ob-emacs-lisp hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-emacs-lisp
/Users/Nasy/.emacs.d/straight/build/org/oc hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/oc
/Users/Nasy/.emacs.d/straight/build/org/ox-texinfo hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-texinfo
/Users/Nasy/.emacs.d/straight/build/org/ol-irc hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-irc
/Users/Nasy/.emacs.d/straight/build/org/ol-doi hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-doi
/Users/Nasy/.emacs.d/straight/build/org/ob hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob
/Users/Nasy/.emacs.d/straight/build/org/org-refile hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-refile
/Users/Nasy/.emacs.d/straight/build/org/org-version hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-version
/Users/Nasy/.emacs.d/straight/build/org/org-num hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-num
/Users/Nasy/.emacs.d/straight/build/org/ol-mhe hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-mhe
/Users/Nasy/.emacs.d/straight/build/org/ob-shell hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-shell
/Users/Nasy/.emacs.d/straight/build/org/org-attach hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-attach
/Users/Nasy/.emacs.d/straight/build/org/ob-C hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-C
/Users/Nasy/.emacs.d/straight/build/org/org-macs hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-macs
/Users/Nasy/.emacs.d/straight/build/org/org-entities hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-entities
/Users/Nasy/.emacs.d/straight/build/org/ob-dot hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-dot
/Users/Nasy/.emacs.d/straight/build/org/ob-sql hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-sql
/Users/Nasy/.emacs.d/straight/build/org/ol-eww hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-eww
/Users/Nasy/.emacs.d/straight/build/org/org-datetree hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-datetree
/Users/Nasy/.emacs.d/straight/build/org/org-macro hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-macro
/Users/Nasy/.emacs.d/straight/build/org/ob-eval hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-eval
/Users/Nasy/.emacs.d/straight/build/org/ob-haskell hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-haskell
/Users/Nasy/.emacs.d/straight/build/org/ox-org hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-org
/Users/Nasy/.emacs.d/straight/build/org/ol-rmail hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-rmail
/Users/Nasy/.emacs.d/straight/build/org/ob-awk hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-awk
/Users/Nasy/.emacs.d/straight/build/org/ob-groovy hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-groovy
/Users/Nasy/.emacs.d/straight/build/org/ox-icalendar hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-icalendar
/Users/Nasy/.emacs.d/straight/build/org/ob-octave hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-octave
/Users/Nasy/.emacs.d/straight/build/org/ob-scheme hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-scheme
/Users/Nasy/.emacs.d/straight/build/org/org-mobile hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-mobile
/Users/Nasy/.emacs.d/straight/build/org/ob-processing hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-processing
/Users/Nasy/.emacs.d/straight/build/org/oc-biblatex hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/oc-biblatex
/Users/Nasy/.emacs.d/straight/build/org/oc-csl hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/oc-csl
/Users/Nasy/.emacs.d/straight/build/org/org-colview hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-colview
/Users/Nasy/.emacs.d/straight/build/org/ob-R hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-R
/Users/Nasy/.emacs.d/straight/build/org/org-table hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-table
/Users/Nasy/.emacs.d/straight/build/org/ox-html hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-html
/Users/Nasy/.emacs.d/straight/build/org/ob-fortran hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-fortran
/Users/Nasy/.emacs.d/straight/build/org/ol hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol
/Users/Nasy/.emacs.d/straight/build/org/ob-plantuml hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-plantuml
/Users/Nasy/.emacs.d/straight/build/org/ol-docview hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-docview
/Users/Nasy/.emacs.d/straight/build/org/ob-perl hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-perl
/Users/Nasy/.emacs.d/straight/build/org/ob-sqlite hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-sqlite
/Users/Nasy/.emacs.d/straight/build/org/oc-basic hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/oc-basic
/Users/Nasy/.emacs.d/straight/build/org/ob-sed hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-sed
/Users/Nasy/.emacs.d/straight/build/org/ob-ditaa hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-ditaa
/Users/Nasy/.emacs.d/straight/build/org/ob-ruby hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-ruby
/Users/Nasy/.emacs.d/straight/build/org/org-habit hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-habit
/Users/Nasy/.emacs.d/straight/build/org/org-loaddefs hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-loaddefs
/Users/Nasy/.emacs.d/straight/build/org/ol-gnus hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-gnus
/Users/Nasy/.emacs.d/straight/build/org/ob-screen hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-screen
/Users/Nasy/.emacs.d/straight/build/org/org-mouse hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-mouse
/Users/Nasy/.emacs.d/straight/build/org/ob-css hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-css
/Users/Nasy/.emacs.d/straight/build/org/org-inlinetask hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-inlinetask
/Users/Nasy/.emacs.d/straight/build/org/ob-lisp hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-lisp
/Users/Nasy/.emacs.d/straight/build/org/ol-eshell hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-eshell
/Users/Nasy/.emacs.d/straight/build/org/org-pcomplete hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-pcomplete
/Users/Nasy/.emacs.d/straight/build/org/org-lint hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-lint
/Users/Nasy/.emacs.d/straight/build/org/org-id hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-id
/Users/Nasy/.emacs.d/straight/build/org/org-capture hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-capture
/Users/Nasy/.emacs.d/straight/build/org/ob-sass hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-sass
/Users/Nasy/.emacs.d/straight/build/org/ob-tangle hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-tangle
/Users/Nasy/.emacs.d/straight/build/org/ob-calc hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-calc
/Users/Nasy/.emacs.d/straight/build/org/ob-java hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-java
/Users/Nasy/.emacs.d/straight/build/org/org-compat hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-compat
/Users/Nasy/.emacs.d/straight/build/org/org-attach-git hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-attach-git
/Users/Nasy/.emacs.d/straight/build/org/ox-beamer hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-beamer
/Users/Nasy/.emacs.d/straight/build/org/org-protocol hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-protocol
/Users/Nasy/.emacs.d/straight/build/org/org-element hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-element
/Users/Nasy/.emacs.d/straight/build/org/ob-lob hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-lob
/Users/Nasy/.emacs.d/straight/build/org/org-tempo hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-tempo
/Users/Nasy/.emacs.d/straight/build/org/ob-python hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-python
/Users/Nasy/.emacs.d/straight/build/org/ob-latex hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-latex
/Users/Nasy/.emacs.d/straight/build/org/ol-w3m hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-w3m
/Users/Nasy/.emacs.d/straight/build/org/org-agenda hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-agenda
/Users/Nasy/.emacs.d/straight/build/org/ob-ocaml hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-ocaml
/Users/Nasy/.emacs.d/straight/build/org/ob-ref hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-ref
/Users/Nasy/.emacs.d/straight/build/org/ob-julia hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-julia
/Users/Nasy/.emacs.d/straight/build/org/ob-lilypond hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-lilypond
/Users/Nasy/.emacs.d/straight/build/org/ob-table hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-table
/Users/Nasy/.emacs.d/straight/build/org/ob-clojure hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-clojure
/Users/Nasy/.emacs.d/straight/build/org/org-indent hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-indent
/Users/Nasy/.emacs.d/straight/build/org/org-plot hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-plot
/Users/Nasy/.emacs.d/straight/build/org/ox-latex hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-latex
/Users/Nasy/.emacs.d/straight/build/org/org-src hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-src
/Users/Nasy/.emacs.d/straight/build/org/org-duration hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-duration
/Users/Nasy/.emacs.d/straight/build/org/ob-makefile hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-makefile
/Users/Nasy/.emacs.d/straight/build/org/ol-info hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-info
/Users/Nasy/.emacs.d/straight/build/org/org-clock hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-clock
/Users/Nasy/.emacs.d/straight/build/org/ob-forth hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-forth
/Users/Nasy/.emacs.d/straight/build/org/ox-odt hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-odt
/Users/Nasy/.emacs.d/straight/build/org/ol-man hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-man
/Users/Nasy/.emacs.d/straight/build/org/ox-publish hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-publish
/Users/Nasy/.emacs.d/straight/build/org/org-archive hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-archive
/Users/Nasy/.emacs.d/straight/build/org/ob-org hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-org
/Users/Nasy/.emacs.d/straight/build/org/ob-lua hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-lua
/Users/Nasy/.emacs.d/straight/build/org/org-keys hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-keys
/Users/Nasy/.emacs.d/straight/build/org/ob-eshell hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-eshell
/Users/Nasy/.emacs.d/straight/build/org/org-faces hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-faces
/Users/Nasy/.emacs.d/straight/build/org/ox-man hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-man
/Users/Nasy/.emacs.d/straight/build/org/org-list hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-list
/Users/Nasy/.emacs.d/straight/build/org/ox-md hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-md
/Users/Nasy/.emacs.d/straight/build/org/org-goto hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-goto
/Users/Nasy/.emacs.d/straight/build/org/ol-bbdb hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-bbdb
/Users/Nasy/.emacs.d/straight/build/org/org hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org
/Users/Nasy/.emacs.d/straight/build/org/ol-bibtex hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ol-bibtex
/Users/Nasy/.emacs.d/straight/build/org/ox-koma-letter hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-koma-letter
/Users/Nasy/.emacs.d/straight/build/org/ox-ascii hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox-ascii
/Users/Nasy/.emacs.d/straight/build/org/ob-matlab hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-matlab
/Users/Nasy/.emacs.d/straight/build/org/ox hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ox
/Users/Nasy/.emacs.d/straight/build/org/org-timer hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-timer
/Users/Nasy/.emacs.d/straight/build/org/oc-natbib hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/oc-natbib
/Users/Nasy/.emacs.d/straight/build/org/ob-core hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-core
/Users/Nasy/.emacs.d/straight/build/org/org-feed hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-feed
/Users/Nasy/.emacs.d/straight/build/org/ob-gnuplot hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-gnuplot
/Users/Nasy/.emacs.d/straight/build/org/ob-js hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-js
/Users/Nasy/.emacs.d/straight/build/org/org-footnote hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-footnote
/Users/Nasy/.emacs.d/straight/build/org/ob-maxima hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/ob-maxima
/Users/Nasy/.emacs.d/straight/build/org/org-crypt hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/org/org-crypt
/Users/Nasy/.emacs.d/straight/build/let-alist/let-alist hides /Users/Nasy/.nasy/share/emacs/29.0.50/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr emacsbug message yank-media rfc822 mml mml-sec
epa derived gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils switch-window switch-window-mvborder
switch-window-asciiart quail session company-yasnippet company elisp-def
highlight-quoted parinfer-rust-mode parinfer-rust-changes parinfer-rust
parinfer-rust-helper org-appear cdlatex reftex reftex-loaddefs
reftex-vars org-fragtog org-latex-impatient org-modern org-rainbow-tags
mixed-pitch oc-basic bibtex iso8601 disp-table easy-kill helpful
cc-langs cc-vars cc-defs trace info-look help-fns radix-tree elisp-refs
add-log lsp-diagnostics lsp-headerline lsp-icons lsp-modeline dap-mouse
dap-ui gdb-mi bindat gud bui bui-list bui-info bui-entry bui-core
bui-history bui-button bui-utils lsp-lens dap-mode dap-tasks dap-launch
dap-overlays find-file-in-project ido windmove find-lisp find-file
color-identifiers-mode python-black lsp-ui lsp-ui-flycheck lsp-ui-doc
xwidget url-handlers image-mode exif browse-url goto-addr lsp-ui-imenu
lsp-ui-peek lsp-ui-sideline lsp-ui-util face-remap view lsp-zig
lsp-steep lsp-svelte lsp-sqls lsp-ruby-syntax-tree lsp-yaml lsp-xml
lsp-vimscript lsp-vhdl lsp-volar lsp-vetur lsp-html lsp-verilog lsp-vala
lsp-v lsp-typeprof lsp-ttcn3 lsp-toml lsp-terraform lsp-tex lsp-sorbet
lsp-solargraph lsp-rust lsp-rf lsp-remark lsp-racket lsp-r
lsp-purescript lsp-pylsp lsp-pyls lsp-pwsh lsp-php lsp-pls
lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml lsp-magik lsp-nix
lsp-nim lsp-nginx lsp-mint lsp-marksman lsp-markdown lsp-lua lsp-kotlin
lsp-json url url-proxy url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf mailcap lsp-javascript
lsp-idris lsp-haxe lsp-haskell lsp-groovy lsp-hack lsp-graphql lsp-gleam
lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint
lsp-erlang lsp-emmet lsp-elixir lsp-elm lsp-dockerfile lsp-docker yaml
lsp-dhall lsp-d lsp-css lsp-csharp gnutls lsp-crystal lsp-cmake
lsp-clojure lsp-treemacs lsp-treemacs-generic lsp-treemacs-themes
treemacs-treelib doom-themes-ext-treemacs treemacs-git-commit-diff-mode
treemacs treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence
treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering
treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom
treemacs-visuals treemacs-fringe-indicator treemacs-scope pulse
treemacs-faces treemacs-icons treemacs-themes treemacs-core-utils
pfuture treemacs-logging treemacs-customization treemacs-macros
lsp-semantic-tokens lsp-clangd lsp-beancount lsp-bash lsp-astro
lsp-ansible lsp-angular lsp-ada lsp-actionscript lsp-pyright lsp-mode
lsp-protocol spinner network-stream puny nsm markdown-mode lv inline ht
epg rfc6068 epg-config vc-hg vc-git vc-bzr vc-src vc-sccs vc-svn vc-cvs
vc-rcs python-isort cap-words superword subword whitespace-cleanup-mode
whitespace copilot editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch cape corfu-indexed
corfu-history corfu-doc kind-icon svg-lib svg dom corfu
rainbow-delimiters license-snippets haskell-snippets yasnippet-snippets
yasnippet eldoc-box eglot array flymake-proc flymake url-util jsonrpc
ert python pcase treesit vertico-repeat pixel-scroll cua-base saveplace
mb-depth autorevert filenotify battery dbus xml kinsoku 風雨時用 anzu
beginend consult-flycheck flycheck consult-dir embark-consult embark
consult-xref xref project consult-vertico consult compat-28 bookmark
gcmh keyfreq all-the-icons-completion marginalia orderless savehist
vertico-mouse vertico which-func imenu edebug debug backtrace beacon
default-text-scale diff-hl-show-hunk diff-hl-inline-popup diff-hl-margin
diff-hl-dired diff-hl log-view pcvs-util vc-dir ewoc vc vc-dispatcher
diff-mode easy-mmode dired-rainbow dired-narrow delsel dired-collapse
dired-hacks-utils dirvish transient edmacro kmacro dired dired-loaddefs
hl-line mmm-mode mmm-univ mmm-class mmm-region mmm-auto mmm-vars
mmm-utils mmm-compat rainbow-mode xterm-color smartparens advice
which-key cal-china-x cal-china lunar solar cal-dst holidays
holiday-loaddefs doom-themes-ext-org doom-themes doom-themes-base
nyan-mode minions rime rime-predicates posframe popup wakatime-mode
org-eldoc org-tempo org-element org-persist xdg org-id org-refile
avl-tree generator org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src ob-comint org-pcomplete pcomplete org-list
org-footnote org-faces org-entities time-date noutline outline
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar
cal-loaddefs org-version org-compat org-macs format-spec 模 tempo
reformatter wgrep grep compile comint ansi-osc ansi-color ring
doom-modeline doom-modeline-segments doom-modeline-env
doom-modeline-core comp comp-cstr warnings cus-start all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons shrink-path rx f f-shortdoc
shortdoc text-property-search s dash compat compat-macs server time
dashboard dashboard-widgets recentf tree-widget ffap thingatpt url-parse
auth-source eieio eieio-core password-cache json map byte-opt url-vars
nasy-theme color 彩 init 小曐 麐之趾 preview-latex tex-site 日月 庭燎 月
出 補 緑衣 風雨 擊鼓 haskell-snippets-autoloads thingopt-autoloads
nixpkgs-fmt-autoloads nix-update-autoloads nix-buffer-autoloads
all-the-icons-ibuffer-autoloads ibuffer-vc-autoloads
flycheck-package-autoloads package-lint-autoloads company-math-autoloads
math-symbol-lists-autoloads company-dict-autoloads parent-mode-autoloads
rg-autoloads git-timemachine-autoloads git-modes-autoloads
git-messenger-autoloads git-blamed-autoloads toml-mode-autoloads
elvish-mode-autoloads ob-elvish-autoloads yaml-mode-autoloads
ob-restclient-autoloads company-restclient-autoloads
know-your-http-well-autoloads restclient-autoloads
python-isort-autoloads lsp-pyright-autoloads python-black-autoloads
elpy-autoloads pyvenv-autoloads highlight-indentation-autoloads
org-roam-autoloads org-rainbow-tags-autoloads org-modern-autoloads
org-latex-impatient-autoloads org-fragtog-autoloads org-appear-autoloads
citeproc-autoloads parsebib-autoloads string-inflection-autoloads
queue-autoloads nix-mode-autoloads tex-site-autoloads
parinfer-rust-mode-autoloads macrostep-autoloads ipretty-autoloads
highlight-quoted-autoloads elisp-def-autoloads dap-mode-autoloads
lsp-docker-autoloads bui-autoloads lsp-haskell-autoloads
haskell-mode-autoloads flex-mode-autoloads lsp-treemacs-autoloads
lsp-ui-autoloads lsp-mode-autoloads spinner-autoloads
bibtex-tidy-autoloads reformatter-autoloads cdlatex-autoloads
wakatime-mode-autoloads vterm-toggle-autoloads vterm-autoloads
prettier-autoloads nvm-autoloads iter2-autoloads pdf-tools-autoloads
tablist-autoloads magit-todos-autoloads hl-todo-autoloads
magit-org-todos-autoloads magit-delta-autoloads xterm-color-autoloads
forge-autoloads yaml-autoloads markdown-mode-autoloads ghub-autoloads
treepy-autoloads emacsql-sqlite-autoloads emacsql-autoloads
closql-autoloads list-unicode-display-autoloads indent-tools-autoloads
yafolding-autoloads htmlize-autoloads grab-mac-link-autoloads
explain-pause-mode-autoloads esup-autoloads rime-autoloads
popup-autoloads cheat-sh-autoloads carbon-now-sh-autoloads
nasy-theme-autoloads minions-autoloads nyan-mode-autoloads
pretty-mode-autoloads doom-themes-autoloads centaur-tabs-autoloads
powerline-autoloads cal-china-x-autoloads yasnippet-snippets-autoloads
writeroom-mode-autoloads winum-autoloads vundo-autoloads
visual-fill-column-autoloads undo-propose-autoloads
treemacs-projectile-autoloads treemacs-magit-autoloads magit-autoloads
magit-section-autoloads git-commit-autoloads with-editor-autoloads
symbol-overlay-autoloads shellcop-autoloads rainbow-mode-autoloads
rainbow-delimiters-autoloads point-history-autoloads popwin-autoloads
persistent-scratch-autoloads pcre2el-autoloads
multiple-cursors-autoloads mmm-mode-autoloads mixed-pitch-autoloads
license-snippets-autoloads yasnippet-autoloads kind-icon-autoloads
svg-lib-autoloads imenu-list-autoloads highlight-tail-autoloads
highlight-indent-guides-autoloads git-gutter-autoloads ftable-autoloads
find-file-in-project-autoloads eldoc-overlay-autoloads
quick-peek-autoloads inline-docs-autoloads eldoc-box-autoloads
dirvish-autoloads dired-rainbow-autoloads dired-narrow-autoloads
dired-hacks-autoloads dired-filter-autoloads dired-collapse-autoloads
dired-hacks-utils-autoloads diff-hl-autoloads
default-text-scale-autoloads color-identifiers-mode-autoloads
async-autoloads abridge-diff-autoloads whitespace-cleanup-mode-autoloads
which-key-autoloads wgrep-autoloads vlf-autoloads vertico-autoloads
valign-autoloads unfill-autoloads transient-autoloads
switch-window-autoloads sudo-edit-autoloads spatial-navigate-autoloads
emacs-session-autoloads page-break-lines-autoloads orderless-autoloads
marginalia-autoloads keyfreq-autoloads helpful-autoloads
elisp-refs-autoloads embark-consult-autoloads embark-autoloads
elisp-demos-autoloads easy-kill-autoloads corfu-doc-autoloads
corfu-extensions-autoloads corfu-autoloads copilot-autoloads
jsonrpc-autoloads editorconfig-autoloads consult-flycheck-autoloads
consult-dir-autoloads project-autoloads xref-autoloads consult-autoloads
company-autoloads cape-autoloads beginend-autoloads anzu-autoloads
all-the-icons-completion-autoloads all-the-icons-autoloads
alert-autoloads log4e-autoloads gntp-autoloads 彩-autoloads
smartparens-autoloads projectile-autoloads doom-modeline-autoloads
shrink-path-autoloads f-autoloads compat-autoloads dashboard-autoloads
treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
avy-autoloads s-autoloads flycheck-autoloads let-alist-autoloads
pkg-info-autoloads epl-autoloads finder-inf dash-autoloads
expand-region-autoloads beacon-autoloads 芄蘭 芄蘭之例 gcmh-autoloads
org-contrib-autoloads info setup setup-autoloads straight-autoloads
cl-seq cl-extra help-mode straight subr-x cl-macs gv bytecomp
byte-compile cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib
early-init 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 810126 480415)
(symbols 48 57100 178)
(strings 32 224770 106062)
(string-bytes 1 9621013)
(vectors 16 122587)
(vector-slots 8 3195240 1110847)
(floats 8 2853 20281)
(intervals 56 5315 3027)
(buffers 992 41))







Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59534; Package emacs. (Thu, 24 Nov 2022 18:30:02 GMT) Full text and rfc822 format available.

Message #8 received at 59534 <at> debbugs.gnu.org (full text, mbox):

From: Yuan Fu <casouri <at> gmail.com>
To: nasyxx <at> gmail.com
Cc: 59534 <at> debbugs.gnu.org
Subject: Re: bug#59534: 29.0.50; Improvement for treesit in python.
Date: Thu, 24 Nov 2022 10:29:47 -0800
Nasy <nasyxx <at> gmail.com> writes:

> Hi,
>
> 1. Operators
>
> Python added "@" and "@=" as operators in version 3.5 and ":=" in
> version 3.8. So I guess these three should be in the
> =python--treesit-operators=.

Thanks! I added them.

> 2. Doc strings
>
> Treesit does not consider the content inside the triple quotes at the
> beginning of the Python file to be the documents.
>
> For example, lines 2-4 of this file
> https://github.com/python/cpython/blob/main/Lib/csv.py#L2-L4
>
> """
> csv.py - read/write/investigate CSV files
> """
>
> It be fontify as string instead of doc.
>
> I changed this function to recognize the outermost single string as the
> doc string.
>
>   (defun python--treesit-fontify-string (node override start end &rest _)
>     "Fontify string.
>   NODE is the string node.  Do not fontify the initial f for
>   f-strings.  OVERRIDE is the override flag described in
>   `treesit-font-lock-rules'.  START and END mark the region to be
>   fontified."
>     (let* ((string-beg (treesit-node-start node))
>            (string-end (treesit-node-end node))
>            (maybe-expression (treesit-node-parent node))
>            (maybe-defun (treesit-node-parent
>                          (treesit-node-parent
>                           maybe-expression)))
>            (face (if (and (member (treesit-node-type maybe-defun)
>                                   '("function_definition"
> -                                   "class_definition"))
> +                                   "class_definition"
> +                                   nil))
>                           ;; This check filters out this case:
>                           ;; def function():
>                           ;;     return "some string"
>                           (equal (treesit-node-type maybe-expression)
>                                  "expression_statement"))
>                      'font-lock-doc-face
>                    'font-lock-string-face)))
>       (when (eq (char-after string-beg) ?f)
>         (cl-incf string-beg))
>       (treesit-fontify-with-override
>        (max start string-beg) (min end string-end) face override)))
>
> I'm not familiar with treesit, this solution could not be the best, but
> I don't know if there is any other simple way to improve it.  Maybe we
> could use something like =python-info-docstring-p= to check if it is doc
> or net.

I added something similar to the function. Now it will highlight the
string in doc-face if there is nothing or only comments before it.

Yuan




bug Marked as fixed in versions 29.1. Request was from Stefan Kangas <stefankangas <at> gmail.com> to control <at> debbugs.gnu.org. (Thu, 24 Nov 2022 23:28:03 GMT) Full text and rfc822 format available.

bug marked as fixed in version 29.1, send any further explanations to 59534 <at> debbugs.gnu.org and Nasy <nasyxx <at> gmail.com> Request was from Yuan Fu <casouri <at> gmail.com> to control <at> debbugs.gnu.org. (Mon, 28 Nov 2022 22:03:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 27 Dec 2022 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 194 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.