Package: emacs;
Reported by: Rudolf Adamkovič <salutis <at> me.com>
Date: Mon, 4 Apr 2022 05:34:01 UTC
Severity: normal
Found in version 29.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 54704 in the body.
You can then email your comments to 54704 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#54704
; Package emacs
.
(Mon, 04 Apr 2022 05:34:02 GMT) Full text and rfc822 format available.Rudolf Adamkovič <salutis <at> me.com>
:bug-gnu-emacs <at> gnu.org
.
(Mon, 04 Apr 2022 05:34:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Rudolf Adamkovič <salutis <at> me.com> To: bug-gnu-emacs <at> gnu.org Subject: 29.0.50; Broken code assistance for Scheme libraries Date: Mon, 04 Apr 2022 07:33:19 +0200
Hello there! Emacs indents Scheme libraries as follows: (define-library (foo bar) (export foo bar baz) (begin (define (foo) 'unimplemented) (define (bar) 'unimplemented) (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/elpa/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/elpa/geiser-20220327.2323/geiser-mode /Users/salutis/src/geiser/elisp/geiser-base hides /Users/salutis/.emacs.d/elpa/geiser-20220327.2323/geiser-base /Users/salutis/src/geiser/elisp/geiser hides /Users/salutis/.emacs.d/elpa/geiser-20220327.2323/geiser /Users/salutis/src/geiser/elisp/geiser-impl hides /Users/salutis/.emacs.d/elpa/geiser-20220327.2323/geiser-impl /Users/salutis/src/geiser/elisp/geiser-connection hides /Users/salutis/.emacs.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/elpa/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/elpa/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/elpa/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/elpa/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/.emacs.d/elpa/geiser-20220327.2323/geiser-completion /Users/salutis/src/geiser/elisp/geiser-edit hides /Users/salutis/.emacs.d/elpa/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/elpa/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.app/Contents/Resources/lisp/org/ob-exp ~/src/org-mode/lisp/ob-emacs-lisp hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp ~/src/org-mode/lisp/oc hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/oc ~/src/org-mode/lisp/ob-css hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-css ~/src/org-mode/lisp/ob-lob hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lob ~/src/org-mode/lisp/ol-irc hides /Users/salutis/src/emacs/nextstep/Emacs.app/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/Contents/Resources/lisp/org/ob ~/src/org-mode/lisp/org-version hides /Users/salutis/src/emacs/nextstep/Emacs.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/Contents/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/Emacs.app/Contents/Resources/lisp/org/org-capture ~/src/org-mode/lisp/ob-ref hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ref ~/src/org-mode/lisp/ob-clojure hides /Users/salutis/src/emacs/nextstep/Emacs.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/Emacs.app/Contents/Resources/lisp/org/org-entities ~/src/org-mode/lisp/org-archive hides /Users/salutis/src/emacs/nextstep/Emacs.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/Emacs.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.app/Contents/Resources/lisp/org/ol-eww ~/src/org-mode/lisp/ol-man hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-man ~/src/org-mode/lisp/ox-org hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-org ~/src/org-mode/lisp/org-num hides /Users/salutis/src/emacs/nextstep/Emacs.app/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.app/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/Emacs.app/Contents/Resources/lisp/org/oc-biblatex ~/src/org-mode/lisp/org-colview hides /Users/salutis/src/emacs/nextstep/Emacs.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/Emacs.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/Emacs.app/Contents/Resources/lisp/org/org-mobile ~/src/org-mode/lisp/ob-fortran hides /Users/salutis/src/emacs/nextstep/Emacs.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.app/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.app/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.app/Contents/Resources/lisp/org/ob-ruby ~/src/org-mode/lisp/ob-eval hides /Users/salutis/src/emacs/nextstep/Emacs.app/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.app/Contents/Resources/lisp/org/ox-html ~/src/org-mode/lisp/org-src hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-src ~/src/org-mode/lisp/ob-lisp hides /Users/salutis/src/emacs/nextstep/Emacs.app/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/Emacs.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.app/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.app/Contents/Resources/lisp/org/ob-calc ~/src/org-mode/lisp/ob-java hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-java ~/src/org-mode/lisp/ox-icalendar hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-icalendar ~/src/org-mode/lisp/ol-mhe hides /Users/salutis/src/emacs/nextstep/Emacs.app/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/Emacs.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/Emacs.app/Contents/Resources/lisp/org/org-protocol ~/src/org-mode/lisp/ob-gnuplot hides /Users/salutis/src/emacs/nextstep/Emacs.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.app/Contents/Resources/lisp/org/ol-w3m ~/src/org-mode/lisp/org-id hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-id ~/src/org-mode/lisp/ox-man hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-man ~/src/org-mode/lisp/ol-doi hides /Users/salutis/src/emacs/nextstep/Emacs.app/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.app/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.app/Contents/Resources/lisp/org/oc-csl ~/src/org-mode/lisp/ol-gnus hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-gnus ~/src/org-mode/lisp/org-indent hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-indent ~/src/org-mode/lisp/ob-lilypond hides /Users/salutis/src/emacs/nextstep/Emacs.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/Emacs.app/Contents/Resources/lisp/org/org-datetree ~/src/org-mode/lisp/ol-docview hides /Users/salutis/src/emacs/nextstep/Emacs.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/Emacs.app/Contents/Resources/lisp/org/ob-makefile ~/src/org-mode/lisp/org-duration hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-duration ~/src/org-mode/lisp/org-agenda hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-agenda ~/src/org-mode/lisp/ob-dot hides /Users/salutis/src/emacs/nextstep/Emacs.app/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/Emacs.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.app/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.app/Contents/Resources/lisp/org/ob-core ~/src/org-mode/lisp/org-compat hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-compat ~/src/org-mode/lisp/ol hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol ~/src/org-mode/lisp/ox-odt hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-odt ~/src/org-mode/lisp/ol-info hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-info ~/src/org-mode/lisp/ob-plantuml hides /Users/salutis/src/emacs/nextstep/Emacs.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/Emacs.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/Contents/Resources/lisp/org/org ~/src/org-mode/lisp/ol-bbdb hides /Users/salutis/src/emacs/nextstep/Emacs.app/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.app/Contents/Resources/lisp/org/ob-sql ~/src/org-mode/lisp/org-attach hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-attach ~/src/org-mode/lisp/ob-processing hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-processing ~/src/org-mode/lisp/ox-texinfo hides /Users/salutis/src/emacs/nextstep/Emacs.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/Emacs.app/Contents/Resources/lisp/org/org-footnote ~/src/org-mode/lisp/org-install hides /Users/salutis/src/emacs/nextstep/Emacs.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)) -- "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č <salutis <at> me.com> [he/him] Studenohorská 25 84103 Bratislava Slovakia
bug-gnu-emacs <at> gnu.org
:bug#54704
; Package emacs
.
(Sat, 24 Dec 2022 00:32:02 GMT) Full text and rfc822 format available.Message #8 received at 54704 <at> debbugs.gnu.org (full text, mbox):
From: Rudolf Adamkovič <salutis <at> me.com> To: 54704 <at> debbugs.gnu.org Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries Date: Sat, 24 Dec 2022 01:31:24 +0100
[Message part 1 (text/plain, inline)]
Rudolf Adamkovič via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> 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
[0001-Improve-support-for-Scheme-R6RS-and-R7RS-libraries-b.patch (text/x-patch, inline)]
From 858a6d376f94616b0ec347ed36487befb0871482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= <salutis <at> me.com> 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
[Message part 3 (text/plain, inline)]
-- "Programming reliably -- must be an activity of an undeniably mathematical nature […] You see, mathematics is about thinking, and doing mathematics is always trying to think as well as possible." -- Edsger W. Dijkstra, 1981 Rudolf Adamkovič <salutis <at> me.com> [he/him] Studenohorská 25 84103 Bratislava Slovakia
bug-gnu-emacs <at> gnu.org
:bug#54704
; Package emacs
.
(Sat, 24 Dec 2022 12:16:02 GMT) Full text and rfc822 format available.Message #11 received at 54704 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Rudolf Adamkovič <salutis <at> me.com> Cc: 54704 <at> debbugs.gnu.org Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries Date: Sat, 24 Dec 2022 14:15:46 +0200
> 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" <bug-gnu-emacs <at> gnu.org> > > 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.
bug-gnu-emacs <at> gnu.org
:bug#54704
; Package emacs
.
(Sat, 24 Dec 2022 22:33:01 GMT) Full text and rfc822 format available.Message #14 received at 54704 <at> debbugs.gnu.org (full text, mbox):
From: Rudolf Adamkovič <salutis <at> me.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 54704 <at> debbugs.gnu.org Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries Date: Sat, 24 Dec 2022 23:32:21 +0100
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> 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
[0001-Improve-support-for-Scheme-R6RS-and-R7RS-libraries-b.patch (text/x-patch, inline)]
From 0cd5b236981fa1dda92fd63da0017ff288fd50b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= <salutis <at> me.com> 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
[Message part 3 (text/plain, inline)]
-- "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č <salutis <at> me.com> [he/him] Studenohorská 25 84103 Bratislava Slovakia
bug-gnu-emacs <at> gnu.org
:bug#54704
; Package emacs
.
(Mon, 26 Dec 2022 12:50:01 GMT) Full text and rfc822 format available.Message #17 received at 54704 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Rudolf Adamkovič <salutis <at> me.com> Cc: 54704 <at> debbugs.gnu.org Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries Date: Mon, 26 Dec 2022 14:49:33 +0200
> From: Rudolf Adamkovič <salutis <at> me.com> > Cc: 54704 <at> debbugs.gnu.org > Date: Sat, 24 Dec 2022 23:32:21 +0100 > > Eli Zaretskii <eliz <at> gnu.org> 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?
bug-gnu-emacs <at> gnu.org
:bug#54704
; Package emacs
.
(Tue, 27 Dec 2022 00:49:01 GMT) Full text and rfc822 format available.Message #20 received at 54704 <at> debbugs.gnu.org (full text, mbox):
From: Rudolf Adamkovič <salutis <at> me.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 54704 <at> debbugs.gnu.org Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries Date: Tue, 27 Dec 2022 01:48:34 +0100
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> 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
[0001-Improve-support-for-Scheme-R6RS-and-R7RS-libraries-b.patch (text/x-patch, inline)]
From 8d3a6f2c384af04a4ae03e9d08bb183da14bf364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= <salutis <at> me.com> 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
[Message part 3 (text/plain, inline)]
-- "'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č <salutis <at> me.com> [he/him] Studenohorská 25 84103 Bratislava Slovakia
Eli Zaretskii <eliz <at> gnu.org>
:Rudolf Adamkovič <salutis <at> me.com>
:Message #25 received at 54704-done <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Rudolf Adamkovič <salutis <at> me.com> Cc: 54704-done <at> debbugs.gnu.org Subject: Re: bug#54704: [PATCH] 29.0.50; Broken code assistance for Scheme libraries Date: Tue, 27 Dec 2022 16:00:11 +0200
> From: Rudolf Adamkovič <salutis <at> me.com> > Cc: 54704 <at> 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.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Wed, 25 Jan 2023 12:24:04 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.