From unknown Fri Jun 20 07:24:01 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#54704 <54704@debbugs.gnu.org> To: bug#54704 <54704@debbugs.gnu.org> Subject: Status: 29.0.50; Broken code assistance for Scheme libraries Reply-To: bug#54704 <54704@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:24:01 +0000 retitle 54704 29.0.50; Broken code assistance for Scheme libraries reassign 54704 emacs submitter 54704 Rudolf Adamkovi=C4=8D severity 54704 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 04 01:33:32 2022 Received: (at submit) by debbugs.gnu.org; 4 Apr 2022 05:33:32 +0000 Received: from localhost ([127.0.0.1]:50243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbFLH-0001kp-8y for submit@debbugs.gnu.org; Mon, 04 Apr 2022 01:33:32 -0400 Received: from lists.gnu.org ([209.51.188.17]:46036) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbFLE-0001kh-VB for submit@debbugs.gnu.org; Mon, 04 Apr 2022 01:33:30 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbFLE-0001VG-MV for bug-gnu-emacs@gnu.org; Mon, 04 Apr 2022 01:33:28 -0400 Received: from mr85p00im-hyfv06021401.me.com ([17.58.23.190]:45276) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbFLB-0006JK-B0 for bug-gnu-emacs@gnu.org; Mon, 04 Apr 2022 01:33:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1649050404; bh=Oc0HnES4/ib+8HpEXijdy7K6+7U4qhBnruogYYYTIQA=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=rmUGgaZJTK5KM0Edj8B4DEaiMm8oLjd1pkjxx0e2+o7c90coqWamqg9Y5QOTurndR Gt699U3HR4SUeDKm6C26KKXintrtscMv4izHesOPfRFUDyHTB4sdpmGc0NdVSGTQbu GHyzT8nc9G4FtagvcP7XhRPqLV5GFtYf8JjzIVRC+GbfDyTZ2djyvtQuv2F9jJdtvs NL/zFETwS5RukmB3tfSbncqjwxcNpO6VnhnPuzvu0QVcIjRMkUKZ2DruxAuuSdyujS v0XI8zAfNHpOG7wwkG1RPpWJ+4RESoo27veTcR9TdKnvkDdWmhLA71PV9bPWghfTWM 3qgzsZrMDeKzQ== Received: from Workstation.local (mr38p00im-dlb-asmtp-mailmevip.me.com [17.57.152.18]) by mr85p00im-hyfv06021401.me.com (Postfix) with ESMTPSA id E25B0303896F for ; Mon, 4 Apr 2022 05:33:22 +0000 (UTC) From: =?utf-8?Q?Rudolf_Adamkovi=C4=8D?= To: bug-gnu-emacs@gnu.org Subject: 29.0.50; Broken code assistance for Scheme libraries Date: Mon, 04 Apr 2022 07:33:19 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: =?UTF-8?Q?vendor=3Dfsecure_engine=3D1.1.170-22c6f66c430a71ce266a39bfe25bc?= =?UTF-8?Q?2903e8d5c8f:6.0.425,18.0.816,17.11.62.513.0000000_definitions?= =?UTF-8?Q?=3D2022-01-18=5F01:2022-01-14=5F01,2022-01-18=5F01,2021-12-02?= =?UTF-8?Q?=5F01_signatures=3D0?= X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxlogscore=999 clxscore=1015 suspectscore=0 mlxscore=0 adultscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2204040034 Received-SPF: pass client-ip=17.58.23.190; envelope-from=salutis@me.com; helo=mr85p00im-hyfv06021401.me.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: submit 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 (--) Hello there! Emacs indents Scheme libraries as follows: (define-library (foo bar) (export foo bar baz) (begin (define (foo) 'unimplemented) =20=20=20=20=20=20 (define (bar) 'unimplemented) =20=20=20=20=20=20 (define (baz) 'unimplemented)) With this (default) indentation, - the Outline minor mode does not show the library procedures, - the Imenu mode does not show the library procedures, and - the entire library file has indent. When I re-indent manually to ... (define-library (foo bar) (export foo bar baz) (begin (define (foo) 'unimplemented) (define (bar) 'unimplemented) (define (baz) 'unimplemented)) ... everything starts working (!). The bug applies to both - R6RS libraries ("library") and - R7RS libraries ("define-library"). A possible fix: 1. Make the Outline mode find *indented* definitions. 2. Make the Imenu mode find *indented* definitions. 3. Make Emacs indent libraries as shown above (optional). Rudy In GNU Emacs 29.0.50 (build 3, x86_64-apple-darwin21.2.0, NS appkit-2113.20= Version 12.1 (Build 21C52)) of 2022-03-29 built on Workstation.local Repository revision: 55932a65ed719d4277e0e781ca5e323b189d7f63 Repository branch: master Windowing system distributor 'Apple', version 10.3.2113 System Description: macOS 12.3.1 Configured using: 'configure --with-json --with-native-compilation' Configured features: ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP XIM ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Fundamental Minor modes in effect: global-hl-todo-mode: t global-diff-hl-mode: t global-git-commit-mode: t magit-auto-revert-mode: t marginalia-mode: t vertico-mouse-mode: t vertico-mode: t global-company-mode: t global-subword-mode: t save-place-mode: t global-auto-revert-mode: t pulsar-global-mode: t delete-selection-mode: t global-goto-address-mode: t shell-dirtrack-mode: t savehist-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t context-menu-mode: t global-font-lock-mode: t buffer-read-only: t size-indication-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/salutis/src/geiser-guile/geiser-guile hides /Users/salutis/.emacs.d/= elpa/geiser-guile-20220323.2352/geiser-guile /Users/salutis/src/geiser/elisp/geiser-eval hides /Users/salutis/.emacs.d/e= lpa/geiser-20220327.2323/geiser-eval /Users/salutis/src/geiser/elisp/geiser-popup hides /Users/salutis/.emacs.d/= elpa/geiser-20220327.2323/geiser-popup /Users/salutis/src/geiser/elisp/geiser-company hides /Users/salutis/.emacs.= d/elpa/geiser-20220327.2323/geiser-company /Users/salutis/src/geiser/elisp/geiser-mode hides /Users/salutis/.emacs.d/e= lpa/geiser-20220327.2323/geiser-mode /Users/salutis/src/geiser/elisp/geiser-base hides /Users/salutis/.emacs.d/e= lpa/geiser-20220327.2323/geiser-base /Users/salutis/src/geiser/elisp/geiser hides /Users/salutis/.emacs.d/elpa/g= eiser-20220327.2323/geiser /Users/salutis/src/geiser/elisp/geiser-impl hides /Users/salutis/.emacs.d/e= lpa/geiser-20220327.2323/geiser-impl /Users/salutis/src/geiser/elisp/geiser-connection hides /Users/salutis/.ema= cs.d/elpa/geiser-20220327.2323/geiser-connection /Users/salutis/src/geiser/elisp/geiser-custom hides /Users/salutis/.emacs.d= /elpa/geiser-20220327.2323/geiser-custom /Users/salutis/src/geiser/elisp/geiser-table hides /Users/salutis/.emacs.d/= elpa/geiser-20220327.2323/geiser-table /Users/salutis/src/geiser/elisp/geiser-doc hides /Users/salutis/.emacs.d/el= pa/geiser-20220327.2323/geiser-doc /Users/salutis/src/geiser/elisp/geiser-image hides /Users/salutis/.emacs.d/= elpa/geiser-20220327.2323/geiser-image /Users/salutis/src/geiser/elisp/geiser-log hides /Users/salutis/.emacs.d/el= pa/geiser-20220327.2323/geiser-log /Users/salutis/src/geiser/elisp/geiser-syntax hides /Users/salutis/.emacs.d= /elpa/geiser-20220327.2323/geiser-syntax /Users/salutis/src/geiser/elisp/geiser-menu hides /Users/salutis/.emacs.d/e= lpa/geiser-20220327.2323/geiser-menu /Users/salutis/src/geiser/elisp/geiser-reload hides /Users/salutis/.emacs.d= /elpa/geiser-20220327.2323/geiser-reload /Users/salutis/src/geiser/elisp/geiser-xref hides /Users/salutis/.emacs.d/e= lpa/geiser-20220327.2323/geiser-xref /Users/salutis/src/geiser/elisp/geiser-compile hides /Users/salutis/.emacs.= d/elpa/geiser-20220327.2323/geiser-compile /Users/salutis/src/geiser/elisp/geiser-completion hides /Users/salutis/.ema= cs.d/elpa/geiser-20220327.2323/geiser-completion /Users/salutis/src/geiser/elisp/geiser-edit hides /Users/salutis/.emacs.d/e= lpa/geiser-20220327.2323/geiser-edit /Users/salutis/src/geiser/elisp/geiser-autodoc hides /Users/salutis/.emacs.= d/elpa/geiser-20220327.2323/geiser-autodoc /Users/salutis/src/geiser/elisp/geiser-repl hides /Users/salutis/.emacs.d/e= lpa/geiser-20220327.2323/geiser-repl /Users/salutis/src/geiser/elisp/geiser-debug hides /Users/salutis/.emacs.d/= elpa/geiser-20220327.2323/geiser-debug /Users/salutis/.emacs.d/elpa/transient-20220331.2312/transient hides /Users= /salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/transient ~/src/org-mode/lisp/ob-exp hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-exp ~/src/org-mode/lisp/ob-emacs-lisp hides /Users/salutis/src/emacs/nextstep/E= macs.app/Contents/Resources/lisp/org/ob-emacs-lisp ~/src/org-mode/lisp/oc hides /Users/salutis/src/emacs/nextstep/Emacs.app/Co= ntents/Resources/lisp/org/oc ~/src/org-mode/lisp/ob-css hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-css ~/src/org-mode/lisp/ob-lob hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-lob ~/src/org-mode/lisp/ol-irc hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ol-irc ~/src/org-mode/lisp/ob-forth hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ob-forth ~/src/org-mode/lisp/org-macs hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/org-macs ~/src/org-mode/lisp/ob hides /Users/salutis/src/emacs/nextstep/Emacs.app/Co= ntents/Resources/lisp/org/ob ~/src/org-mode/lisp/org-version hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/org-version ~/src/org-mode/lisp/ob-scheme hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-scheme ~/src/org-mode/lisp/ox hides /Users/salutis/src/emacs/nextstep/Emacs.app/Co= ntents/Resources/lisp/org/ox ~/src/org-mode/lisp/ob-C hides /Users/salutis/src/emacs/nextstep/Emacs.app/= Contents/Resources/lisp/org/ob-C ~/src/org-mode/lisp/org-capture hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/org-capture ~/src/org-mode/lisp/ob-ref hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-ref ~/src/org-mode/lisp/ob-clojure hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/ob-clojure ~/src/org-mode/lisp/org-mouse hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-mouse ~/src/org-mode/lisp/org-ctags hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-ctags ~/src/org-mode/lisp/org-entities hides /Users/salutis/src/emacs/nextstep/Em= acs.app/Contents/Resources/lisp/org/org-entities ~/src/org-mode/lisp/org-archive hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/org-archive ~/src/org-mode/lisp/ob-screen hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-screen ~/src/org-mode/lisp/ol-bibtex hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ol-bibtex ~/src/org-mode/lisp/ob-haskell hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/ob-haskell ~/src/org-mode/lisp/org-table hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-table ~/src/org-mode/lisp/ol-eww hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ol-eww ~/src/org-mode/lisp/ol-man hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ol-man ~/src/org-mode/lisp/ox-org hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ox-org ~/src/org-mode/lisp/org-num hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/org-num ~/src/org-mode/lisp/org-plot hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/org-plot ~/src/org-mode/lisp/ol-rmail hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ol-rmail ~/src/org-mode/lisp/ob-awk hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-awk ~/src/org-mode/lisp/ob-groovy hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-groovy ~/src/org-mode/lisp/ob-octave hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-octave ~/src/org-mode/lisp/org-faces hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-faces ~/src/org-mode/lisp/oc-biblatex hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/oc-biblatex ~/src/org-mode/lisp/org-colview hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/org-colview ~/src/org-mode/lisp/ob-R hides /Users/salutis/src/emacs/nextstep/Emacs.app/= Contents/Resources/lisp/org/ob-R ~/src/org-mode/lisp/org-refile hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/org-refile ~/src/org-mode/lisp/org-timer hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-timer ~/src/org-mode/lisp/org-mobile hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/org-mobile ~/src/org-mode/lisp/ob-fortran hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/ob-fortran ~/src/org-mode/lisp/ob-shell hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ob-shell ~/src/org-mode/lisp/ob-perl hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ob-perl ~/src/org-mode/lisp/ob-sqlite hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-sqlite ~/src/org-mode/lisp/oc-basic hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/oc-basic ~/src/org-mode/lisp/ob-sed hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-sed ~/src/org-mode/lisp/org-list hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/org-list ~/src/org-mode/lisp/ob-ruby hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ob-ruby ~/src/org-mode/lisp/ob-eval hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ob-eval ~/src/org-mode/lisp/org-habit hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-habit ~/src/org-mode/lisp/org-clock hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-clock ~/src/org-mode/lisp/org-goto hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/org-goto ~/src/org-mode/lisp/ox-html hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ox-html ~/src/org-mode/lisp/org-src hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/org-src ~/src/org-mode/lisp/ob-lisp hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ob-lisp ~/src/org-mode/lisp/ol-eshell hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ol-eshell ~/src/org-mode/lisp/ob-ditaa hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ob-ditaa ~/src/org-mode/lisp/org-pcomplete hides /Users/salutis/src/emacs/nextstep/E= macs.app/Contents/Resources/lisp/org/org-pcomplete ~/src/org-mode/lisp/org-lint hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/org-lint ~/src/org-mode/lisp/ox-latex hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ox-latex ~/src/org-mode/lisp/ob-sass hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ob-sass ~/src/org-mode/lisp/ob-tangle hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-tangle ~/src/org-mode/lisp/ob-calc hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ob-calc ~/src/org-mode/lisp/ob-java hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ob-java ~/src/org-mode/lisp/ox-icalendar hides /Users/salutis/src/emacs/nextstep/Em= acs.app/Contents/Resources/lisp/org/ox-icalendar ~/src/org-mode/lisp/ol-mhe hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ol-mhe ~/src/org-mode/lisp/org-attach-git hides /Users/salutis/src/emacs/nextstep/= Emacs.app/Contents/Resources/lisp/org/org-attach-git ~/src/org-mode/lisp/ox-md hides /Users/salutis/src/emacs/nextstep/Emacs.app= /Contents/Resources/lisp/org/ox-md ~/src/org-mode/lisp/ox-beamer hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ox-beamer ~/src/org-mode/lisp/org-element hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/org-element ~/src/org-mode/lisp/oc-natbib hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/oc-natbib ~/src/org-mode/lisp/org-protocol hides /Users/salutis/src/emacs/nextstep/Em= acs.app/Contents/Resources/lisp/org/org-protocol ~/src/org-mode/lisp/ob-gnuplot hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/ob-gnuplot ~/src/org-mode/lisp/org-tempo hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-tempo ~/src/org-mode/lisp/ob-latex hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ob-latex ~/src/org-mode/lisp/ol-w3m hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ol-w3m ~/src/org-mode/lisp/org-id hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/org-id ~/src/org-mode/lisp/ox-man hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ox-man ~/src/org-mode/lisp/ol-doi hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ol-doi ~/src/org-mode/lisp/org-feed hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/org-feed ~/src/org-mode/lisp/ob-julia hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ob-julia ~/src/org-mode/lisp/ob-lua hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-lua ~/src/org-mode/lisp/ob-table hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ob-table ~/src/org-mode/lisp/ob-ocaml hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ob-ocaml ~/src/org-mode/lisp/oc-csl hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/oc-csl ~/src/org-mode/lisp/ol-gnus hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ol-gnus ~/src/org-mode/lisp/org-indent hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/org-indent ~/src/org-mode/lisp/ob-lilypond hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/ob-lilypond ~/src/org-mode/lisp/ob-matlab hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-matlab ~/src/org-mode/lisp/org-datetree hides /Users/salutis/src/emacs/nextstep/Em= acs.app/Contents/Resources/lisp/org/org-datetree ~/src/org-mode/lisp/ol-docview hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/ol-docview ~/src/org-mode/lisp/ob-python hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-python ~/src/org-mode/lisp/ob-makefile hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/ob-makefile ~/src/org-mode/lisp/org-duration hides /Users/salutis/src/emacs/nextstep/Em= acs.app/Contents/Resources/lisp/org/org-duration ~/src/org-mode/lisp/org-agenda hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/org-agenda ~/src/org-mode/lisp/ob-dot hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-dot ~/src/org-mode/lisp/ob-js hides /Users/salutis/src/emacs/nextstep/Emacs.app= /Contents/Resources/lisp/org/ob-js ~/src/org-mode/lisp/ox-publish hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/ox-publish ~/src/org-mode/lisp/org-inlinetask hides /Users/salutis/src/emacs/nextstep/= Emacs.app/Contents/Resources/lisp/org/org-inlinetask ~/src/org-mode/lisp/ob-org hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-org ~/src/org-mode/lisp/org-keys hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/org-keys ~/src/org-mode/lisp/ob-core hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ob-core ~/src/org-mode/lisp/org-compat hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/org-compat ~/src/org-mode/lisp/ol hides /Users/salutis/src/emacs/nextstep/Emacs.app/Co= ntents/Resources/lisp/org/ol ~/src/org-mode/lisp/ox-odt hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ox-odt ~/src/org-mode/lisp/ol-info hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ol-info ~/src/org-mode/lisp/ob-plantuml hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/ob-plantuml ~/src/org-mode/lisp/ob-eshell hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-eshell ~/src/org-mode/lisp/ox-ascii hides /Users/salutis/src/emacs/nextstep/Emacs.= app/Contents/Resources/lisp/org/ox-ascii ~/src/org-mode/lisp/org-loaddefs hides /Users/salutis/src/emacs/nextstep/Em= acs.app/Contents/Resources/lisp/org/org-loaddefs ~/src/org-mode/lisp/ox-koma-letter hides /Users/salutis/src/emacs/nextstep/= Emacs.app/Contents/Resources/lisp/org/ox-koma-letter ~/src/org-mode/lisp/ob-maxima hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-maxima ~/src/org-mode/lisp/org hides /Users/salutis/src/emacs/nextstep/Emacs.app/C= ontents/Resources/lisp/org/org ~/src/org-mode/lisp/ol-bbdb hides /Users/salutis/src/emacs/nextstep/Emacs.a= pp/Contents/Resources/lisp/org/ol-bbdb ~/src/org-mode/lisp/org-macro hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-macro ~/src/org-mode/lisp/ob-sql hides /Users/salutis/src/emacs/nextstep/Emacs.ap= p/Contents/Resources/lisp/org/ob-sql ~/src/org-mode/lisp/org-attach hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/org-attach ~/src/org-mode/lisp/ob-processing hides /Users/salutis/src/emacs/nextstep/E= macs.app/Contents/Resources/lisp/org/ob-processing ~/src/org-mode/lisp/ox-texinfo hides /Users/salutis/src/emacs/nextstep/Emac= s.app/Contents/Resources/lisp/org/ox-texinfo ~/src/org-mode/lisp/org-crypt hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/org-crypt ~/src/org-mode/lisp/org-footnote hides /Users/salutis/src/emacs/nextstep/Em= acs.app/Contents/Resources/lisp/org/org-footnote ~/src/org-mode/lisp/org-install hides /Users/salutis/src/emacs/nextstep/Ema= cs.app/Contents/Resources/lisp/org/org-install ~/src/org-mode/lisp/ob-comint hides /Users/salutis/src/emacs/nextstep/Emacs= .app/Contents/Resources/lisp/org/ob-comint Features: (shadow bbdb-message mail-extr emacsbug tramp-cmds cursor-sensor display-fill-column-indicator org-pomodoro alert log4e notifications dbus xml gntp org-timer network-stream nsm emms-player-mpd emms-url emms-player-simple emms-browser sort emms-playlist-sort emms-last-played emms-volume emms-volume-sndioctl emms-volume-mixerctl emms-volume-pulse emms-volume-amixer emms-playlist-mode emms-source-playlist emms-source-file locate emms-cache emms-info emms-later-do emms emms-compat hl-todo diff-hl log-view vc-dir ewoc magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit message sendmail yank-media rmc puny rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process magit-mode magit-git magit-base magit-section display-line-numbers fortune pdf-outline pdf-links pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch pdf-misc pdf-tools pdf-view pdf-cache pdf-info pdf-util pdf-macs image-mode exif pdf-loader lingua-franca flyspell-correct flyspell ispell citar-org oc-basic citar crm citar-file oc-csl citeproc citeproc-itemgetters citeproc-biblatex citeproc-bibtex parsebib ol-bibtex citeproc-cite citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters citeproc-number rst citeproc-proc citeproc-disamb citeproc-itemdata citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date citeproc-context citeproc-prange citeproc-style citeproc-locale citeproc-term citeproc-rt citeproc-lib citeproc-s let-alist queue bibtex org-clock ob-sqlite ob-sql ob-java ob-shell ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-R ob-scheme org-habit ox-texinfo ox-md ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda ox-html table ox-ascii ox-publish ox org-element org-persist xdg org-id org-refile avl-tree vterm face-remap term disp-table ehelp vterm-module term/xterm xterm consult-vertico consult recentf tree-widget bookmark marginalia vertico-mouse vertico orderless company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company pcase corfu dired dired-loaddefs cap-words superword subword saveplace bug-reference autorevert filenotify flymake-proc flymake pass f dash s imenu password-store auth-source-pass with-editor server vc-mtn vc-hg vc-git diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher modus-operandi-theme modus-themes pulsar pulse color delsel goto-addr thingatpt diminish bbdb bbdb-site timezone paredit geiser-guile tramp tramp-loaddefs trampver tramp-integration cus-edit pp cus-load wid-edit files-x tramp-compat shell parse-time iso8601 ls-lisp info-look geiser-repl geiser-compile geiser-debug compile text-property-search transient comp comp-cstr warnings edmacro kmacro geiser-image geiser-company geiser-doc geiser-menu geiser-edit etags fileloop generator xref project geiser-completion geiser-autodoc geiser-eval geiser-connection tq geiser-syntax scheme jka-compr geiser-log derived geiser-popup view geiser savehist exec-path-from-shell cl-extra org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color org-list org-faces org-entities time-date noutline outline easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-table ol rx org-keys oc org-compat advice org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs tex-site geiser-impl help-fns radix-tree help-mode geiser-custom geiser-base ring info package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars seq gv subr-x byte-opt bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip 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 simple cl-generic 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 cl-preloaded button 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 dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 759355 200532) (symbols 48 45103 5) (strings 32 199247 48877) (string-bytes 1 7317913) (vectors 16 79698) (vector-slots 8 1393245 34592) (floats 8 522 59) (intervals 56 10415 634) (buffers 992 13)) --=20 "Logic is a science of the necessary laws of thought, without which no employment of the understanding and the reason takes place." -- Immanuel Kant, 1785 Rudolf Adamkovi=C4=8D [he/him] Studenohorsk=C3=A1 25 84103 Bratislava Slovakia From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 23 19:31:39 2022 Received: (at 54704) by debbugs.gnu.org; 24 Dec 2022 00:31:39 +0000 Received: from localhost ([127.0.0.1]:39697 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p8sRu-0004Ce-On for submit@debbugs.gnu.org; Fri, 23 Dec 2022 19:31:39 -0500 Received: from mr85p00im-zteg06011601.me.com ([17.58.23.186]:38946) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p8sRs-0004CY-TB for 54704@debbugs.gnu.org; Fri, 23 Dec 2022 19:31:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1671841889; bh=tUCUzSe1+IUOiaAznTYchRZ8gPXskFWGpeUydYqllCM=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=1BdbIa589Ux7i06iFzuJCbROnuC/Y9xNSvTXl2zDM78baBW3LHadVTE0OfLvXXIrB GPBrbmNpxDNq70oKKtvdI9GxHpTYIq/lvae27vtsuqlznNuuopCgxr3KParG02bXRG W2JURzL8uqqglmkpIADZbHXffshYQMsLhnFf1BgpZ1HHthiRCXMEBNxs9bV7ZxCbed s6nN5T/UNk1X9hJ/vI6I/IJF5ebRWQvCLcEfKfGtdf8t2wdwtKt4aOXf+x0TAKI0AI xLGtw16Yl2M9dBWeRC8aeqewi0XJapuLCw9WOLovXdJa96DSr2kbXzQYxloesCJPrZ kMYpLbSaA87Sg== Received: from Rudolfs-MacBook-Air.local (mr38p00im-dlb-asmtp-mailmevip.me.com [17.57.152.18]) by mr85p00im-zteg06011601.me.com (Postfix) with ESMTPSA id E8A281813F3 for <54704@debbugs.gnu.org>; Sat, 24 Dec 2022 00:31:28 +0000 (UTC) From: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= To: 54704@debbugs.gnu.org Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries In-Reply-To: References: Date: Sat, 24 Dec 2022 01:31:24 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Proofpoint-ORIG-GUID: oaiXrY9wS3GnBqIW2C2ejGK3LI_XiVav X-Proofpoint-GUID: oaiXrY9wS3GnBqIW2C2ejGK3LI_XiVav X-Proofpoint-Virus-Version: =?UTF-8?Q?vendor=3Dfsecure_engine=3D1.1.170-22c6f66c430a71ce266a39bfe25bc?= =?UTF-8?Q?2903e8d5c8f:6.0.425,18.0.572,17.0.605.474.0000000_definitions?= =?UTF-8?Q?=3D2022-01-14=5F01:2022-01-14=5F01,2020-02-14=5F11,2020-01-23?= =?UTF-8?Q?=5F02_signatures=3D0?= X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=964 suspectscore=0 adultscore=0 clxscore=1011 mlxscore=0 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2212240001 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54704 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Rudolf Adamkovi=C4=8D via "Bug reports for GNU Emacs, the Swiss army knife = of text editors" writes: > Hello there! Hello to myself from the future! :-) > The bug applies to both > > - R6RS libraries ("library") and > - R7RS libraries ("define-library"). > > A possible fix: > > [...] Please see the attached patch that makes Emacs recognize R6RS/R7RS library files, as well as, makes Emacs recognize their members. To the Emacs maintainers: Please see the attached patch. Thank you! Rudy --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Improve-support-for-Scheme-R6RS-and-R7RS-libraries-b.patch >From 858a6d376f94616b0ec347ed36487befb0871482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= Date: Sat, 24 Dec 2022 01:00:32 +0100 Subject: [PATCH] Improve support for Scheme R6RS and R7RS libraries (bug#54704) * etc/NEWS (Scheme mode): Document improved file-type auto-detection and Imenu support for R6RS and R7RS Scheme libraries. * lisp/files.el (auto-mode-alist): Associate the '.sls' (R6RS Scheme Library Source) and '.sld' (R7RS Scheme Library Definition) file name extensions with the Scheme mode. * lisp/progmodes/scheme.el (scheme-imenu-generic-expression): Make Imenu recognize the members nested (and so indented) inside of 'library' (R6RS) or 'define-library' (R7RS) forms. --- etc/NEWS | 14 ++++++++++++++ lisp/files.el | 2 +- lisp/progmodes/scheme.el | 20 +++++++++++++------- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index af7f1050b7..ae12847ea9 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -93,6 +93,20 @@ This command either fills a single paragraph in a defun, such as a doc-string, or a comment, or (re)indents the surrounding defun if point is not in a comment or a string. It is by default bound to 'M-q' in 'prog-mode' and all its descendants. + +** Scheme mode + ++++ +*** Auto-detection of Scheme library files +Emacs now automatically enables the Scheme mode for R6RS library +sources ('.sls') and R7RS library definitions ('.sld'). + ++++ +*** Imenu members for R6RS and R7RS library members +Imenu now lists the library members, such as methods and record types, +nested inside R6RS library sources ('library') and R7RS library +definitions ('define-library'). + * New Modes and Packages in Emacs 30.1 diff --git a/lisp/files.el b/lisp/files.el index f352d3a9a7..522e4fbf93 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2850,7 +2850,7 @@ auto-mode-alist ("\\.emacs-places\\'" . lisp-data-mode) ("\\.el\\'" . emacs-lisp-mode) ("Project\\.ede\\'" . emacs-lisp-mode) - ("\\.\\(scm\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) + ("\\.\\(scm\\|sls\\|sld\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) ("\\.l\\'" . lisp-mode) ("\\.li?sp\\'" . lisp-mode) ("\\.[fF]\\'" . fortran-mode) diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index 8454f24356..f45d799252 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -115,7 +115,8 @@ 'scheme-mode-abbrev-table (defvar scheme-imenu-generic-expression `((nil - ,(rx bol "(define" + ,(rx bol (zero-or-more space) + "(define" (zero-or-one "*") (zero-or-one "-public") (one-or-more space) @@ -123,36 +124,41 @@ scheme-imenu-generic-expression (group (one-or-more (or word (syntax symbol))))) 1) ("Methods" - ,(rx bol "(define-" + ,(rx bol (zero-or-more space) + "(define-" (or "generic" "method" "accessor") (one-or-more space) (zero-or-one "(") (group (one-or-more (or word (syntax symbol))))) 1) ("Classes" - ,(rx bol "(define-class" + ,(rx bol (zero-or-more space) + "(define-class" (one-or-more space) (zero-or-one "(") (group (one-or-more (or word (syntax symbol))))) 1) ("Records" - ,(rx bol "(define-record-type" + ,(rx bol (zero-or-more space) + "(define-record-type" (zero-or-one "*") (one-or-more space) (group (one-or-more (or word (syntax symbol))))) 1) ("Conditions" - ,(rx bol "(define-condition-type" + ,(rx bol (zero-or-more space) + "(define-condition-type" (one-or-more space) (group (one-or-more (or word (syntax symbol))))) 1) ("Modules" - ,(rx bol "(define-module" + ,(rx bol (zero-or-more space) + "(define-module" (one-or-more space) (group "(" (one-or-more any) ")")) 1) ("Macros" - ,(rx bol "(" + ,(rx bol (zero-or-more space) "(" (or (and "defmacro" (zero-or-one "*") (zero-or-one "-public")) -- 2.39.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 "Programming reliably -- must be an activity of an undeniably mathematical nature [=E2=80=A6] You see, mathematics is about thinking, and doing mathematics is always trying to think as well as possible." -- Edsger W. Dijkstra, 1981 Rudolf Adamkovi=C4=8D [he/him] Studenohorsk=C3=A1 25 84103 Bratislava Slovakia --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 24 07:15:57 2022 Received: (at 54704) by debbugs.gnu.org; 24 Dec 2022 12:15:57 +0000 Received: from localhost ([127.0.0.1]:42689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p93RU-00069l-VP for submit@debbugs.gnu.org; Sat, 24 Dec 2022 07:15:57 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46114) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p93RT-00069c-ID for 54704@debbugs.gnu.org; Sat, 24 Dec 2022 07:15:56 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p93RO-00052w-8H; Sat, 24 Dec 2022 07:15:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=ICruTGm1o1oT/n33wQHiOe9Y7ZC/CjwMFS6spQ/x5l0=; b=eRQ/JcapPJqcO75kfScI qhg9uP/AitKeVuqjGHXkfRFTtGvhLhLzZyo50jY0nWZafFPmbcjV7pVi+6jNqJRKWFjurA6+8+FU5 cVvbhpn6oLWsszjWz2eVP1CfCktfP4PJqz/xRPLF7A5q2xuKAtjkwaLPd10PyHY0GKVz/TTcwpc9L siCPsZRiL4QHJlJg6yQjQJ1qm4SlwsvJNCrt/EZbammYgXfm27uIJtsKsdrQt0QUf8bbQZdvGKRh2 FCFTnINGC4a55ogPiXdb/YL6K6w3wxiNcKCjvbx+BlQx1GrlTL/GddRG/KyPmA2HIBPmPvxajN3KS M6sCS98rT07KNw==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p93RN-0005rL-LS; Sat, 24 Dec 2022 07:15:49 -0500 Date: Sat, 24 Dec 2022 14:15:46 +0200 Message-Id: <83a63d5765.fsf@gnu.org> From: Eli Zaretskii To: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= In-Reply-To: (bug-gnu-emacs@gnu.org) Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries References: MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 54704 Cc: 54704@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Sat, 24 Dec 2022 01:31:24 +0100 > From: Rudolf Adamkovič via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > Please see the attached patch that makes Emacs recognize R6RS/R7RS > library files, as well as, makes Emacs recognize their members. Thanks. > ++++ The "+++" mark means that the manuals have been updated with this information. I don't think this is the case, and we don't have any manuals for the Scheme mode, right? So this should be "---" instead. > +*** Auto-detection of Scheme library files Heading lines in NEWS should end with a period. > +Emacs now automatically enables the Scheme mode for R6RS library > +sources ('.sls') and R7RS library definitions ('.sld'). "source files" and "library definition files", right? > ++++ > +*** Imenu members for R6RS and R7RS library members Same comments here. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 24 17:32:34 2022 Received: (at 54704) by debbugs.gnu.org; 24 Dec 2022 22:32:34 +0000 Received: from localhost ([127.0.0.1]:47266 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9D4D-0007fk-Ru for submit@debbugs.gnu.org; Sat, 24 Dec 2022 17:32:34 -0500 Received: from mr85p00im-hyfv06021301.me.com ([17.58.23.188]:43932) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9D4B-0007f7-Bi for 54704@debbugs.gnu.org; Sat, 24 Dec 2022 17:32:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1671921144; bh=9mfw9i4xiT4tsOUZhzoc2k5revwmHQpOLKIyhskwtRY=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=T7OMiMu33bFZ/4A/0+GwZyJf5wLgfk7CwYZ8Tf5vZIPhJa4a9PlRpotkMMXSj5Iy0 oYiZwosrt3AudMRFWpJ2rg1YEtNeQ2rGkvmZtvWaauoqAcSAjIHYagJayFrqBZ2HxX ePZ7F4Irzo8pB2Ysh2D57aTLa4ZY9DyjPMu9EIWe98BFCMJzMkIZRbonrdOT3zl/fH BeFkenDdQOWMqAmzjlxNOQn/SNfeFK/JgVSJix+llUhcfLcX7UX7NczOldZw7rtpOp S/e7kd35WpV1Qdn+/2rYjuzrASNw5yt1tsJfuh27Egg6Ue2AlAmMkqc9po5bmCWXgS LFij0+Xx74fSw== Received: from Rudolfs-MacBook-Air.local (mr38p00im-dlb-asmtp-mailmevip.me.com [17.57.152.18]) by mr85p00im-hyfv06021301.me.com (Postfix) with ESMTPSA id 0C5AD2151944; Sat, 24 Dec 2022 22:32:23 +0000 (UTC) From: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= To: Eli Zaretskii Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries In-Reply-To: <83a63d5765.fsf@gnu.org> References: <83a63d5765.fsf@gnu.org> Date: Sat, 24 Dec 2022 23:32:21 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Proofpoint-GUID: 0vL35Qf4OfH1ht7qzQbwdyCANwCuFyK1 X-Proofpoint-ORIG-GUID: 0vL35Qf4OfH1ht7qzQbwdyCANwCuFyK1 X-Proofpoint-Virus-Version: =?UTF-8?Q?vendor=3Dfsecure_engine=3D1.1.170-22c6f66c430a71ce266a39bfe25bc?= =?UTF-8?Q?2903e8d5c8f:6.0.138,18.0.572,17.11.62.513.0000000_definitions?= =?UTF-8?Q?=3D2020-02-14=5F11:2020-02-14=5F02,2020-02-14=5F11,2021-12-02?= =?UTF-8?Q?=5F01_signatures=3D0?= X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=964 suspectscore=0 malwarescore=0 mlxscore=0 bulkscore=0 adultscore=0 clxscore=1015 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2212240198 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54704 Cc: 54704@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> Please see the attached patch that makes Emacs recognize R6RS/R7RS >> library files, as well as, makes Emacs recognize their members. > > Thanks. Thank you for your review! > The "+++" mark means that the manuals have been updated with this > information. I don't think this is the case, and we don't have any > manuals for the Scheme mode, right? So this should be "---" instead. Fixed. >> +*** Auto-detection of Scheme library files > > Heading lines in NEWS should end with a period. Fixed. >> +Emacs now automatically enables the Scheme mode for R6RS library >> +sources ('.sls') and R7RS library definitions ('.sld'). > > "source files" and "library definition files", right? Nope. Historically, Scheme has two *standard* library definitions, incompatible with each other, due to a bit "screwed up" transition from R5RS to R6RS and then R7RS. While not mandated by the standards R6RS and R7RS standards, in the wild, these come as: - Scheme Library Source ('.sls') for R6RS - Scheme Library Definition ('.sld) for R7RS However! I see how this can confuse the user, so I reworded both items in the NEWS file. Importantly, I capitalized the names and put them right next to their extensions, to tie it all together. Better? >> ++++ >> +*** Imenu members for R6RS and R7RS library members > > Same comments here. Fixed. Rudy --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Improve-support-for-Scheme-R6RS-and-R7RS-libraries-b.patch >From 0cd5b236981fa1dda92fd63da0017ff288fd50b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= Date: Sat, 24 Dec 2022 01:00:32 +0100 Subject: [PATCH] Improve support for Scheme R6RS and R7RS libraries (bug#54704) * etc/NEWS (Scheme mode): Document improved file-type auto-detection and Imenu support for R6RS and R7RS Scheme libraries. * lisp/files.el (auto-mode-alist): Associate the '.sls' (R6RS Scheme Library Source) and '.sld' (R7RS Scheme Library Definition) file name extensions with the Scheme mode. * lisp/progmodes/scheme.el (scheme-imenu-generic-expression): Make Imenu recognize the members nested (and so indented) inside of 'library' (R6RS) or 'define-library' (R7RS) forms. --- etc/NEWS | 14 ++++++++++++++ lisp/files.el | 2 +- lisp/progmodes/scheme.el | 20 +++++++++++++------- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index af7f1050b7..c121a0dd24 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -93,6 +93,20 @@ This command either fills a single paragraph in a defun, such as a doc-string, or a comment, or (re)indents the surrounding defun if point is not in a comment or a string. It is by default bound to 'M-q' in 'prog-mode' and all its descendants. + +** Scheme mode + +--- +*** Auto-detection of Scheme library files. +Emacs now automatically enables the Scheme mode when opening R6RS +Scheme Library Source ('.sls') files and R7RS Scheme Library +Definition ('.sld') files. + +--- +*** Imenu members for R6RS and R7RS library members. +Imenu now lists the members directly nested in R6RS Scheme libraries +('library') and R7RS libraries ('define-library'). + * New Modes and Packages in Emacs 30.1 diff --git a/lisp/files.el b/lisp/files.el index f352d3a9a7..522e4fbf93 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2850,7 +2850,7 @@ auto-mode-alist ("\\.emacs-places\\'" . lisp-data-mode) ("\\.el\\'" . emacs-lisp-mode) ("Project\\.ede\\'" . emacs-lisp-mode) - ("\\.\\(scm\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) + ("\\.\\(scm\\|sls\\|sld\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) ("\\.l\\'" . lisp-mode) ("\\.li?sp\\'" . lisp-mode) ("\\.[fF]\\'" . fortran-mode) diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index 8454f24356..f45d799252 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -115,7 +115,8 @@ 'scheme-mode-abbrev-table (defvar scheme-imenu-generic-expression `((nil - ,(rx bol "(define" + ,(rx bol (zero-or-more space) + "(define" (zero-or-one "*") (zero-or-one "-public") (one-or-more space) @@ -123,36 +124,41 @@ scheme-imenu-generic-expression (group (one-or-more (or word (syntax symbol))))) 1) ("Methods" - ,(rx bol "(define-" + ,(rx bol (zero-or-more space) + "(define-" (or "generic" "method" "accessor") (one-or-more space) (zero-or-one "(") (group (one-or-more (or word (syntax symbol))))) 1) ("Classes" - ,(rx bol "(define-class" + ,(rx bol (zero-or-more space) + "(define-class" (one-or-more space) (zero-or-one "(") (group (one-or-more (or word (syntax symbol))))) 1) ("Records" - ,(rx bol "(define-record-type" + ,(rx bol (zero-or-more space) + "(define-record-type" (zero-or-one "*") (one-or-more space) (group (one-or-more (or word (syntax symbol))))) 1) ("Conditions" - ,(rx bol "(define-condition-type" + ,(rx bol (zero-or-more space) + "(define-condition-type" (one-or-more space) (group (one-or-more (or word (syntax symbol))))) 1) ("Modules" - ,(rx bol "(define-module" + ,(rx bol (zero-or-more space) + "(define-module" (one-or-more space) (group "(" (one-or-more any) ")")) 1) ("Macros" - ,(rx bol "(" + ,(rx bol (zero-or-more space) "(" (or (and "defmacro" (zero-or-one "*") (zero-or-one "-public")) -- 2.39.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 "Logic is a science of the necessary laws of thought, without which no employment of the understanding and the reason takes place." -- Immanuel Kant, 1785 Rudolf Adamkovi=C4=8D [he/him] Studenohorsk=C3=A1 25 84103 Bratislava Slovakia --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 26 07:49:39 2022 Received: (at 54704) by debbugs.gnu.org; 26 Dec 2022 12:49:39 +0000 Received: from localhost ([127.0.0.1]:50911 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9mvC-0001Hu-Ov for submit@debbugs.gnu.org; Mon, 26 Dec 2022 07:49:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38064) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9mv9-0001Hf-SE for 54704@debbugs.gnu.org; Mon, 26 Dec 2022 07:49:37 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p9mv4-0007US-B3; Mon, 26 Dec 2022 07:49:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=b3AtYSiZV3hePj1QVBwKSDYCk0q7ELUAzpxFKMWq1/c=; b=Np3UmWU4mx+LqFpwaDLb 7csohXOykcEFlTLe4SIw4cK5fqLaZdbM2TOSl8fvYxlDijS5HwpY2nm5Sr+wgYGmCEP/LcPDW1ltB 3Y9lggB1J5gAd++gVL3chMIwac3iksPQF0/1Db2y0vEDdCGZRT8QTTNd0Y829EAb7WjoBztXabX41 ERr+YCveuun4PgPfQEdsqFmFmPy4kGGRDPlK0StxP+sDLfUXbf1OvOthehy/ljZXHTteFu//f62Bg cve1NGY790D73aj9Rt4y2bXATU+4f3hgKodSGhH8QDRSdmbuhCnwYtJSwHBPRiweZaaOvsx6A1XXP ++wgyfxYCdhP5Q==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p9mv3-0004Ji-Hx; Mon, 26 Dec 2022 07:49:29 -0500 Date: Mon, 26 Dec 2022 14:49:33 +0200 Message-Id: <83a63a2uua.fsf@gnu.org> From: Eli Zaretskii To: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= In-Reply-To: (message from Rudolf =?utf-8?Q?Adamko?= =?utf-8?Q?vi=C4=8D?= on Sat, 24 Dec 2022 23:32:21 +0100) Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries References: <83a63d5765.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 54704 Cc: 54704@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Rudolf Adamkovič > Cc: 54704@debbugs.gnu.org > Date: Sat, 24 Dec 2022 23:32:21 +0100 > > Eli Zaretskii writes: > > >> Please see the attached patch that makes Emacs recognize R6RS/R7RS > >> library files, as well as, makes Emacs recognize their members. > > > > Thanks. > > Thank you for your review! > > > The "+++" mark means that the manuals have been updated with this > > information. I don't think this is the case, and we don't have any > > manuals for the Scheme mode, right? So this should be "---" instead. > > Fixed. > > >> +*** Auto-detection of Scheme library files > > > > Heading lines in NEWS should end with a period. > > Fixed. > > >> +Emacs now automatically enables the Scheme mode for R6RS library > >> +sources ('.sls') and R7RS library definitions ('.sld'). > > > > "source files" and "library definition files", right? > > Nope. Historically, Scheme has two *standard* library definitions, > incompatible with each other, due to a bit "screwed up" transition from > R5RS to R6RS and then R7RS. While not mandated by the standards R6RS > and R7RS standards, in the wild, these come as: > > - Scheme Library Source ('.sls') for R6RS > - Scheme Library Definition ('.sld) for R7RS > > However! I see how this can confuse the user, so I reworded both items > in the NEWS file. Importantly, I capitalized the names and put them > right next to their extensions, to tie it all together. Better? > > >> ++++ > >> +*** Imenu members for R6RS and R7RS library members > > > > Same comments here. > > Fixed. Thanks. I'd like to install this on the emacs-29 branch, so could you please rebase the patch on top of emacs-29 and resubmit? From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 26 19:48:48 2022 Received: (at 54704) by debbugs.gnu.org; 27 Dec 2022 00:48:48 +0000 Received: from localhost ([127.0.0.1]:54377 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9y9A-0007qi-1I for submit@debbugs.gnu.org; Mon, 26 Dec 2022 19:48:48 -0500 Received: from pv50p00im-ztdg10012101.me.com ([17.58.6.49]:41238) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9y97-0007qT-Qo for 54704@debbugs.gnu.org; Mon, 26 Dec 2022 19:48:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1672102119; bh=/5Jf7crQ8lypc3wN2Xj2A98yDBsjQY0IU26R2YTt0gE=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=w+NbZhiB4d4Zz8+xUIL8TAocdB05zzjMMoQvlUPuC0uulfu4o+88X3+Xoe+SCf8uZ jYCeYtDb03ClEMeVlAyiSNGK6g3KvN+MW/NmvE8dKUj+51GB0snZgZuZ1kTBMzI5Fq 0+an8CuXUJYZiwgyhuO0a+5yaA0bXjGE/3KqBHRVZjJO5FEhxx38N2UbNhNCksmgh5 /IQDeAXD/EfU765nXI5q2Ftq2INWSRrGtDvSYbZoZBtWEWmPXorayHeJAWWr9JK8iB joiRl1kunqhQ/BOIi3XevtmyoFh71KPb6Sfyd4LH/ARymbnZtsoOvQfCX87zy8HWnN VOBlmapiALY6A== Received: from Rudolfs-MacBook-Air.local (pv50p00im-dlb-asmtp-mailmevip.me.com [17.56.9.10]) by pv50p00im-ztdg10012101.me.com (Postfix) with ESMTPSA id C032774097E; Tue, 27 Dec 2022 00:48:37 +0000 (UTC) From: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= To: Eli Zaretskii Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries In-Reply-To: <83a63a2uua.fsf@gnu.org> References: <83a63d5765.fsf@gnu.org> <83a63a2uua.fsf@gnu.org> Date: Tue, 27 Dec 2022 01:48:34 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Proofpoint-GUID: B3EckAq70rNJx5Hd7ND0ArOQXjIVDzuy X-Proofpoint-ORIG-GUID: B3EckAq70rNJx5Hd7ND0ArOQXjIVDzuy X-Proofpoint-Virus-Version: =?UTF-8?Q?vendor=3Dfsecure_engine=3D1.1.170-22c6f66c430a71ce266a39bfe25bc?= =?UTF-8?Q?2903e8d5c8f:6.0.517,18.0.883,17.11.64.514.0000000_definitions?= =?UTF-8?Q?=3D2022-06-21=5F08:2022-06-21=5F01,2022-06-21=5F08,2022-02-23?= =?UTF-8?Q?=5F01_signatures=3D0?= X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 clxscore=1015 adultscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2212270004 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54704 Cc: 54704@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Eli Zaretskii writes: > Thanks. Thank you! > I'd like to install this on the emacs-29 branch, so could you please > rebase the patch on top of emacs-29 and resubmit? Please see the attached file. Rudy --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Improve-support-for-Scheme-R6RS-and-R7RS-libraries-b.patch >From 8d3a6f2c384af04a4ae03e9d08bb183da14bf364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= Date: Sat, 24 Dec 2022 01:00:32 +0100 Subject: [PATCH] Improve support for Scheme R6RS and R7RS libraries (bug#54704) * etc/NEWS (Scheme mode): Document improved file-type auto-detection and Imenu support for R6RS and R7RS Scheme libraries. * lisp/files.el (auto-mode-alist): Associate the '.sls' (R6RS Scheme Library Source) and '.sld' (R7RS Scheme Library Definition) file name extensions with the Scheme mode. * lisp/progmodes/scheme.el (scheme-imenu-generic-expression): Make Imenu recognize the members nested (and so indented) inside of 'library' (R6RS) or 'define-library' (R7RS) forms. --- etc/NEWS | 13 +++++++++++++ lisp/files.el | 2 +- lisp/progmodes/scheme.el | 20 +++++++++++++------- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 5b804b82b7..c64db9973d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -3055,6 +3055,19 @@ name. This key is now bound to 'Buffer-menu-view-other-window', which will view this line's buffer in View mode in another window. +** Scheme mode + +--- +*** Auto-detection of Scheme library files. +Emacs now automatically enables the Scheme mode when opening R6RS +Scheme Library Source ('.sls') files and R7RS Scheme Library +Definition ('.sld') files. + +--- +*** Imenu members for R6RS and R7RS library members. +Imenu now lists the members directly nested in R6RS Scheme libraries +('library') and R7RS libraries ('define-library'). + * New Modes and Packages in Emacs 29.1 diff --git a/lisp/files.el b/lisp/files.el index f352d3a9a7..522e4fbf93 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2850,7 +2850,7 @@ auto-mode-alist ("\\.emacs-places\\'" . lisp-data-mode) ("\\.el\\'" . emacs-lisp-mode) ("Project\\.ede\\'" . emacs-lisp-mode) - ("\\.\\(scm\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) + ("\\.\\(scm\\|sls\\|sld\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) ("\\.l\\'" . lisp-mode) ("\\.li?sp\\'" . lisp-mode) ("\\.[fF]\\'" . fortran-mode) diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index 8454f24356..f45d799252 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -115,7 +115,8 @@ 'scheme-mode-abbrev-table (defvar scheme-imenu-generic-expression `((nil - ,(rx bol "(define" + ,(rx bol (zero-or-more space) + "(define" (zero-or-one "*") (zero-or-one "-public") (one-or-more space) @@ -123,36 +124,41 @@ scheme-imenu-generic-expression (group (one-or-more (or word (syntax symbol))))) 1) ("Methods" - ,(rx bol "(define-" + ,(rx bol (zero-or-more space) + "(define-" (or "generic" "method" "accessor") (one-or-more space) (zero-or-one "(") (group (one-or-more (or word (syntax symbol))))) 1) ("Classes" - ,(rx bol "(define-class" + ,(rx bol (zero-or-more space) + "(define-class" (one-or-more space) (zero-or-one "(") (group (one-or-more (or word (syntax symbol))))) 1) ("Records" - ,(rx bol "(define-record-type" + ,(rx bol (zero-or-more space) + "(define-record-type" (zero-or-one "*") (one-or-more space) (group (one-or-more (or word (syntax symbol))))) 1) ("Conditions" - ,(rx bol "(define-condition-type" + ,(rx bol (zero-or-more space) + "(define-condition-type" (one-or-more space) (group (one-or-more (or word (syntax symbol))))) 1) ("Modules" - ,(rx bol "(define-module" + ,(rx bol (zero-or-more space) + "(define-module" (one-or-more space) (group "(" (one-or-more any) ")")) 1) ("Macros" - ,(rx bol "(" + ,(rx bol (zero-or-more space) "(" (or (and "defmacro" (zero-or-one "*") (zero-or-one "-public")) -- 2.39.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 "'Contrariwise,' continued Tweedledee, 'if it was so, it might be; and if it were so, it would be; but as it isn't, it ain't. That's logic.'" -- Lewis Carroll, Through the Looking Glass, 1871/1872 Rudolf Adamkovi=C4=8D [he/him] Studenohorsk=C3=A1 25 84103 Bratislava Slovakia --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 27 09:00:16 2022 Received: (at 54704-done) by debbugs.gnu.org; 27 Dec 2022 14:00:16 +0000 Received: from localhost ([127.0.0.1]:54909 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pAAV6-00083x-7v for submit@debbugs.gnu.org; Tue, 27 Dec 2022 09:00:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40254) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pAAV5-00083g-Au for 54704-done@debbugs.gnu.org; Tue, 27 Dec 2022 09:00:15 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pAAUy-00017h-TE; Tue, 27 Dec 2022 09:00:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=A9+HgiGFrnVQ/xTLIRpnCO8qKmf26xvp0sJunHbQdA0=; b=H2ksjzoSKMmtw5BIPe9M UVBrZ1K9/wqVVj6/DPotGbiPNh3gvqEyLTgz9eFhDgqA1QrOHBTrIScZwbd1qu+PogP3Bq92+n+z0 W0ngxRDOf8HRWzJNLhp+JftZYPBt2wiu+XmgKX+5c0iV+stnDw5G/b81nPzpDG3bQxMm5cX1P138X 1lIWbYmF5GuTm2KwAe7mFV6sMWz8Q1xbETVPLGx5NEUwf7TlpGRlPk1ntjxVr63lPtjRQkYKx7H9Q WZ9JPOYnz3n3H3rOqzoy3KqmnDTGD0+0Ilv/Z3In7GCGnwiAfznxxOfFR1fSM/n7IjF2Ba9F1NWQd rkPYYLSzFR2oHg==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pAAUv-00009Y-H1; Tue, 27 Dec 2022 09:00:07 -0500 Date: Tue, 27 Dec 2022 16:00:11 +0200 Message-Id: <83mt790wwk.fsf@gnu.org> From: Eli Zaretskii To: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= In-Reply-To: (message from Rudolf =?utf-8?Q?Adamko?= =?utf-8?Q?vi=C4=8D?= on Tue, 27 Dec 2022 01:48:34 +0100) Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries References: <83a63d5765.fsf@gnu.org> <83a63a2uua.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 54704-done Cc: 54704-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Rudolf Adamkovič > Cc: 54704@debbugs.gnu.org > Date: Tue, 27 Dec 2022 01:48:34 +0100 > > > I'd like to install this on the emacs-29 branch, so could you please > > rebase the patch on top of emacs-29 and resubmit? > > Please see the attached file. Thanks, installed on the emacs-29 branch, and closing the bug. From unknown Fri Jun 20 07:24:01 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 25 Jan 2023 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator