From unknown Sat Aug 16 18:43:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#59534: 29.0.50; Improvement for treesit in python. Resent-From: Nasy Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Nov 2022 08:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 59534 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 59534@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.16692801896679 (code B ref -1); Thu, 24 Nov 2022 08:57:02 +0000 Received: (at submit) by debbugs.gnu.org; 24 Nov 2022 08:56:29 +0000 Received: from localhost ([127.0.0.1]:57184 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oy81z-0001jY-Eu for submit@debbugs.gnu.org; Thu, 24 Nov 2022 03:56:29 -0500 Received: from lists.gnu.org ([209.51.188.17]:47282) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxvoU-0006CK-AZ for submit@debbugs.gnu.org; Wed, 23 Nov 2022 14:53:44 -0500 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 1oxvoR-0004U5-9p for bug-gnu-emacs@gnu.org; Wed, 23 Nov 2022 14:53:42 -0500 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oxvoM-0004A0-UR for bug-gnu-emacs@gnu.org; Wed, 23 Nov 2022 14:53:38 -0500 Received: by mail-oi1-x234.google.com with SMTP id t62so20130977oib.12 for ; Wed, 23 Nov 2022 11:53:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:date:message-id:subject:mime-version:content-transfer-encoding :from:from:to:cc:subject:date:message-id:reply-to; bh=4WfFgGIHDaA3Zweb0FgpT01KG0SJrGMQpVSpGNIaDCs=; b=WCYLFhMMXM2vPoEJFGu8sWn8ijYkxR+U/5lC1DUAASkJpJihuAl2dQNRpsmap7Ufp4 jIAC66V9aLxnoDSQr5J4knbQXDFAUzz1rO21tXeVpmOXtatcIC7OypEdFaY3TDV99CL7 IwtHSj0CBXbwf5AWBQRaqBeTv0Pfc4n7NEI8BdKbvKYEPD3iyU/FeP2lFN9063c1ZjhE Tm4CikKODKKReMnWI8NvjvZD0r5SbKv1JchiXY/FcvHoA1152Bos4zjRvMYkkDNIsHXd zwiqYWGzvvOcIjdgL2p9/wV6f9rwn943SlTeF5cPKCb0ofchH0X2uU0JBsvtv7NLVT2q oqcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:date:message-id:subject:mime-version:content-transfer-encoding :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4WfFgGIHDaA3Zweb0FgpT01KG0SJrGMQpVSpGNIaDCs=; b=F62OL/dzyIJFad9xMnN4ArXZK4MJ/o9FlQGWdhkRXmQ4NvEERROSuZ86opNO2q6O8K vAM41ZNdQyqGMvngU0ZNfhQjND7K5ZJ+pG4UR0dZz/ppIOccfn77je981xHJ3PV+PvAU AEH43KKLsc8GUEYeWGIE1uMjOlRxYuKEWIJKnLn2MZ4B+fMCnb40fG2y+Ko2HpvajICl wcjhtjO/EwVNirC5dSERIHfi0AuQrVQsFukB3lY+Cmzx8+5QwS4MsW5qCXo4kjahRGoJ EOPxMkjRLBwgjQe4S7QuABAzdE1GEsbgP3MIog/hlFm9AefGG98hSVaKRvAyMyy/xsRs h0Qg== X-Gm-Message-State: ANoB5pkZraCb1EUIA5J5AO/xlVr0f3I9S2JVJXw6uQMLsUy4uxW5woTl ieAcA2sizN4WfjuWRmqw2f8Q0FDqtyct1w== X-Google-Smtp-Source: AA0mqf6hiPzsiYlQLwk7uC/kJBJa5dCIwBEAcLa7R//o9otTvAr7T9XZQLetHREy/+A0Ycjtzxme+g== X-Received: by 2002:a05:6808:8f9:b0:35a:1078:5f90 with SMTP id d25-20020a05680808f900b0035a10785f90mr17439659oic.117.1669233210641; Wed, 23 Nov 2022 11:53:30 -0800 (PST) Received: from smtpclient.apple ([2605:ad80:30:2700:f5e0:91e9:4434:ab8a]) by smtp.gmail.com with ESMTPSA id s9-20020a056808208900b003509cc4ad4esm6895166oiw.39.2022.11.23.11.53.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Nov 2022 11:53:30 -0800 (PST) From: Nasy Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.200.110.1.12\)) Message-Id: <51760046-6AB8-4161-A95E-F090AC680116@gmail.com> Date: Wed, 23 Nov 2022 13:53:19 -0600 X-Mailer: Apple Mail (2.3731.200.110.1.12) Received-SPF: pass client-ip=2607:f8b0:4864:20::234; envelope-from=nasyxx@gmail.com; helo=mail-oi1-x234.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, 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: -1.3 (-) X-Mailman-Approved-At: Thu, 24 Nov 2022 03:56:19 -0500 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: -2.3 (--) Hi, 1. Operators Python added "@" and "@=3D" as operators in version 3.5 and ":=3D" in version 3.8. So I guess these three should be in the =3Dpython--treesit-operators=3D. 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 =3Dpython-info-docstring-p=3D 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=3D/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=3Dyes --with-xwidgets --without-compress-install --with-libgmp --with-included-regex 'CFLAGS=3D-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=3D-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=3D-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/=E8=90=9A=E5=85=AE/=E6= =97=B9/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/=E5=BD=A9 hides = /Users/Nasy/.emacs.d/straight/build/=E5=BD=A9/=E5=BD=A9 /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/=E8=8A=84=E8=98=AD/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 =E9=A2=A8=E9=9B=A8= =E6=99=82=E7=94=A8 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 =E6=A8=A1 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 =E5=BD=A9 init =E5=B0=8F=E6=9B=90 =E9=BA=90=E4=B9=8B=E8=B6= =BE preview-latex tex-site =E6=97=A5=E6=9C=88 =E5=BA=AD=E7=87=8E =E6=9C=88= =E5=87=BA =E8=A3=9C =E7=B7=91=E8=A1=A3 =E9=A2=A8=E9=9B=A8 =E6=93=8A=E9=BC=93= 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 =E5=BD=A9-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 =E8=8A=84=E8=98=AD =E8=8A=84=E8=98= =AD=E4=B9=8B=E4=BE=8B 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)) From unknown Sat Aug 16 18:43:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#59534: 29.0.50; Improvement for treesit in python. References: <51760046-6AB8-4161-A95E-F090AC680116@gmail.com> In-Reply-To: <51760046-6AB8-4161-A95E-F090AC680116@gmail.com> Resent-From: Yuan Fu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Nov 2022 18:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59534 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: nasyxx@gmail.com Cc: 59534@debbugs.gnu.org Received: via spool by 59534-submit@debbugs.gnu.org id=B59534.166931459626801 (code B ref 59534); Thu, 24 Nov 2022 18:30:02 +0000 Received: (at 59534) by debbugs.gnu.org; 24 Nov 2022 18:29:56 +0000 Received: from localhost ([127.0.0.1]:60092 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oyGyx-0006yB-UQ for submit@debbugs.gnu.org; Thu, 24 Nov 2022 13:29:56 -0500 Received: from mail-pj1-f53.google.com ([209.85.216.53]:50709) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oyGyw-0006y0-VU for 59534@debbugs.gnu.org; Thu, 24 Nov 2022 13:29:55 -0500 Received: by mail-pj1-f53.google.com with SMTP id mv18so1961292pjb.0 for <59534@debbugs.gnu.org>; Thu, 24 Nov 2022 10:29:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=rmHV4ZEZGUuudT6c8FVFGy3ResvuEAowJ6s8jEA3cRA=; b=qCrRUPoTmp0S4Yn8Ffhq7Nxd/AuxtlbMecR6CnsXzCGqe/y9Sy3t5mWcoq0VefE+Au RZdol/AxN6VUobJnwb712Yy2da3+IYilcx0rZYLo9yvuHgfA9lcKA+Vb1Lq2ogiWfZED 73sE1LjtjfpKucPZvpuX29BMu0Dn1tjWojfGScbUSEs6+DEXBJJF+UFSgT+LAtV+t8kz oAezULRMxi6zU++b8bYHybFt2lntFV5EBI2iri1bdbQTbQsaBAyM17VoxsexhCoUbL5N 16aVqVSnzzxRy+4nkY8KSueUIW3qnfdpwCZm9O7ctqDfItNOQoG+xQ6qfWsRH7vJ/Pvm Q4zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=rmHV4ZEZGUuudT6c8FVFGy3ResvuEAowJ6s8jEA3cRA=; b=P1usgNA2DmZnwxm1TQnS9/JM49wUku+ouvGa/X6Va1SV2bnPcH4ytEZvhJMkQFdpWg 65fDS0ye2GwZqNXJG2n8CspjZih6RGlepj2OaZl59ipPjqLr8S1R9iu+bvet2EdT2C2M b7Q0V8I52HIpFIAQ7l/MY5dlBMO3XF+by5NLCRS9c74H6ZqbtY60AABuou+1WW2aUB/r t6xepCuG6sz+hYMETzCoeBoqfERMkFAF5ewJHiOscCywtj3qMDV7A2vWa9KdcXvLcUX2 hJQ+Rb1BaDToYgiorZ2eSDlSL6WiLzcyjD7iQiS28AUxOOVfCgMj4YTy4yu/5i5YsozL CavA== X-Gm-Message-State: ANoB5pnLLXAdpOxHcQBvjte/ZIjXtUz6ql6XlKxbCG4yCDOXqEZRLZnX xtImMqu8sNaiop1BtFdi0pc= X-Google-Smtp-Source: AA0mqf5G7hDFRRGtBnbb9ggbDhJUl9IykHCG//4gsY6M8UBbdzyUo+vrL6b9aETgy81VhXnwP97MWg== X-Received: by 2002:a17:903:2616:b0:189:57f1:b8ec with SMTP id jd22-20020a170903261600b0018957f1b8ecmr5043577plb.4.1669314589010; Thu, 24 Nov 2022 10:29:49 -0800 (PST) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id u11-20020a17090341cb00b00186b55e3cd6sm1668149ple.133.2022.11.24.10.29.48 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Nov 2022 10:29:48 -0800 (PST) From: Yuan Fu Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Message-Id: Date: Thu, 24 Nov 2022 10:29:47 -0800 X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: -0.0 (/) 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 (-) Nasy 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 From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 24 18:28:00 2022 Received: (at control) by debbugs.gnu.org; 24 Nov 2022 23:28:00 +0000 Received: from localhost ([127.0.0.1]:60491 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oyLdP-0002iw-Tm for submit@debbugs.gnu.org; Thu, 24 Nov 2022 18:28:00 -0500 Received: from mail-oi1-f176.google.com ([209.85.167.176]:45898) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oyLdO-0002iU-2I for control@debbugs.gnu.org; Thu, 24 Nov 2022 18:27:58 -0500 Received: by mail-oi1-f176.google.com with SMTP id t62so2827276oib.12 for ; Thu, 24 Nov 2022 15:27:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=1aqKK3TX4OYi9swttE/Pm864r2Am3UlFIzWG7GWpXrk=; b=e8/+s/HOXgYwvyp5sknDPCl1GdvmO7LZu9oFSwxYu7/Lgv35QnANEFH/6VARIauUwT ntbdckbmrm83SP4LvZ0FuVRfCgYiQiYa5DgNDFxwboXv/pBH9MQRxY9m0MfxmP5UqD09 NXCq64MbC4j9xOhFDeF4Jf9n2H3io4EbLSk+U2kDNsU0uAbGJuNoC3UkgiswiY3MPjLd FkuQlcVsDSydaqozVl3tzJGQlN7EwyC4wJKgZ8yDgL3eeXCb2h3ZNpUbRu6alfhfAfGq bnrjYNaS3nz9/gW7IyJ1UqWLBE1fH/3hmhyrJlCd3vThETyrPBpG1JAYIobusb5qUNDz lmXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=1aqKK3TX4OYi9swttE/Pm864r2Am3UlFIzWG7GWpXrk=; b=oiXFXk0IOyUq0jwgCjBo8AMJ3T8GKH1Q50Fx5GGtxITr3h+qm3X99VIwNk2P6S60oO 3DhZRr89wmT0CWafZGANP7NQst/cOgYIlHYYbU48ptt6iqnqa4Xu8SdNnXVYO29wO4Kc IQf+fJz6kfHE0KRN4ePMGU8e30lHR3PEQyz+Wv937VIPC1ZpC65F60+or1QfVqid3UpS /EsTArzn5G2EzYk6MNfBmJlw8fhU/eAEYJt8XQ3CLCj5Y3yB0LcagVcK123vPMoGNW2U NjFazn2S4ofnkERdQQAanxlr06jNpyc+vuOduIP31QKhtF8mp/4x6ODPeiBp/9OhKkpC utkQ== X-Gm-Message-State: ANoB5plHEmBH5XHWsJ9FlNEOi3c35fBZ93ZB5RY5/B+zK6sNak9YB4VV j6TeLLALN+htb24VEHUQk/yayxa86GiGYlIsPXMsc0kzbKE= X-Google-Smtp-Source: AA0mqf7I3ZpoZPt69R0l9xrOSeGboCTvbFKmCfXA+0assMyNPIO7YjLad7Bc0/G796jk/uOoLUT+774Eg/ztFA0/g3M= X-Received: by 2002:a05:6808:2229:b0:35b:2b17:af81 with SMTP id bd41-20020a056808222900b0035b2b17af81mr7861717oib.199.1669332472669; Thu, 24 Nov 2022 15:27:52 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Thu, 24 Nov 2022 15:27:52 -0800 From: Stefan Kangas X-Hashcash: 1:20:221124:control@debbugs.gnu.org::56pwy/3DpA7ZJa9s:3C85 MIME-Version: 1.0 Date: Thu, 24 Nov 2022 15:27:52 -0800 Message-ID: Subject: control message for bug #59534 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control 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 (-) fixed 59534 29.1 quit From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 28 17:02:40 2022 Received: (at control) by debbugs.gnu.org; 28 Nov 2022 22:02:40 +0000 Received: from localhost ([127.0.0.1]:51164 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ozmD2-0002zU-3K for submit@debbugs.gnu.org; Mon, 28 Nov 2022 17:02:40 -0500 Received: from mail-pg1-f178.google.com ([209.85.215.178]:39692) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ozmD0-0002zN-1I for control@debbugs.gnu.org; Mon, 28 Nov 2022 17:02:38 -0500 Received: by mail-pg1-f178.google.com with SMTP id 6so11185994pgm.6 for ; Mon, 28 Nov 2022 14:02:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:date:message-id:subject:mime-version:content-transfer-encoding :from:from:to:cc:subject:date:message-id:reply-to; bh=XT5TQZXfGhszAATbtvJSetb312WNe7m4zyy+z5P6Vmc=; b=Hd0iHAc0dexH98woZfhG4v4HZTizmcIrRmAGyrQci/80ACM9Ky5ZTYCp2VMaWiu1aW 6oe/3cPiRekC9/lw/a69U+OBucCJRT+AzhKb1I4A4VFUuFOoHjv+WRsMOT5kX0WTFiRv 0NQGshUkG6+7fRt5NQyD1ezB7ECSB/WX4Bhgtvsfd6UfMVCrQzqWfDnstFhoFXe65deI WfnYq50A6fH3jM6B/wfaH+XGmOxHkNSC5Gb1tMa43O8NIPdve79dSAm356kZTUypFiiJ W+APA8tVnNPAz7Nnr7eT+CQQtUtXHdSC4W0Agb9TsD3vTTRiLDruyRPtoj97XV3BlpnA h6hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:date:message-id:subject:mime-version:content-transfer-encoding :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XT5TQZXfGhszAATbtvJSetb312WNe7m4zyy+z5P6Vmc=; b=m7kWveBWufTPeFO7Lt8H2deVvFYuJl07usGd8mwElClwGFBrAZigvA/e1D35MEbmlL qCrvFqikTg/XZHFwOzoeuR887PT9xmIYndIWw3t98LHHE3AcgORRsurpmESNL8T/yKkQ zv6iqUEDBfL4bYkP+CvJVZ74pLYpzRtj9gLEctY/lcOPq55qxKBTFb/NHug79wqNxqYf Sntn6mEbyL9tQjG4+6ttAGP4WJKhHY1s+FVbsk8CTSa4akm9uNO2WhibrOv8Nc8tvJjb U2Q50u63ylvXsPYLOZQUvOR/2cSRgkEVjoWkPgZhZuEjrJLbaJV55TUCk1yS5fzrnIzB 6+6Q== X-Gm-Message-State: ANoB5pnBg4VG9iEIEqQWQsZcWAwK8TehIsyuokxhj5YniiCvTcvO/H1W AkbQ6sBsJA0SxW+MkMhlNJeP+3KVMEI= X-Google-Smtp-Source: AA0mqf5N38i1TVScj4Benr7LWY43iXOo3GVewtCQ30rULc5wmpGW5bTw/kBIbrmsh3JnBw01slI7Gg== X-Received: by 2002:aa7:8542:0:b0:575:3c6a:f05c with SMTP id y2-20020aa78542000000b005753c6af05cmr6023392pfn.25.1669672951709; Mon, 28 Nov 2022 14:02:31 -0800 (PST) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id 199-20020a6216d0000000b0056d7cc80ea4sm8498838pfw.110.2022.11.28.14.02.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Nov 2022 14:02:31 -0800 (PST) From: Yuan Fu Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: control message for bug #59534 Message-Id: <9F6C2A3B-4785-45D1-8572-B63AFBFC5197@gmail.com> Date: Mon, 28 Nov 2022 14:02:29 -0800 To: control@debbugs.gnu.org X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: control 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 (-) close 59534 29.1 quit