* bug#60110: 29.0.60; ruby-mode method parameter alignment @ 2022-12-16 5:04 Aaron Jensen 2022-12-18 22:32 ` Dmitry Gutov 0 siblings, 1 reply; 13+ messages in thread From: Aaron Jensen @ 2022-12-16 5:04 UTC (permalink / raw) To: 60110 Currently, ruby-mode smie indents method parameters like this: def some_method( some_arg, some_other_arg ) end def self.some_method( some_arg, some_other_arg ) end I would prefer to be able to indent them like this: def some_method( some_arg, some_other_arg ) end def self.some_method( some_arg, some_other_arg ) end Rubocop has two rules that govern this behavior: Layout/FirstParameterIndentation: consistent https://docs.rubocop.org/rubocop/1.40/cops_layout.html#layoutfirstparameterindentation Layout/ParameterAlignment: with_first_parameter and with_fixed_indentation would both work. I don't have a strong opinion on this, because I usually break after a ( if I am going to put parameters on their own line. Leaving the first one on the same line as the method name is not as scannable. https://docs.rubocop.org/rubocop/1.40/cops_layout.html#layoutparameteralignment In GNU Emacs 29.0.60 (build 1, aarch64-apple-darwin22.1.0, NS appkit-2299.00 Version 13.0.1 (Build 22A400)) of 2022-12-10 built on Aarons-Laptop.local Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.1 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp --infodir=/opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/info/emacs --prefix=/opt/homebrew/Cellar/emacs-plus@29/29.0.60 --with-xml2 --with-gnutls --with-native-compilation --without-compress-install --without-dbus --without-imagemagick --with-modules --with-rsvg --with-ns --disable-ns-self-contained 'CFLAGS=-Os -w -pipe -mmacosx-version-min=13 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT' 'CPPFLAGS=-I/opt/homebrew/opt/zlib/include -I/opt/homebrew/opt/jpeg/include -I/opt/homebrew/opt/icu4c/include -I/opt/homebrew/opt/openssl@1.1/include -I/opt/homebrew/opt/readline/include -isystem/opt/homebrew/include -F/opt/homebrew/Frameworks -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk' 'LDFLAGS=-L/opt/homebrew/opt/zlib/lib -L/opt/homebrew/opt/jpeg/lib -L/opt/homebrew/opt/icu4c/lib -L/opt/homebrew/opt/openssl@1.1/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/lib -F/opt/homebrew/Frameworks -Wl,-headerpad_max_install_names -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk'' Configured features: ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Ruby Minor modes in effect: treemacs-filewatch-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t eval-sexp-fu-flash-mode: t eros-mode: t speed-of-thought-mode: t global-anzu-mode: t anzu-mode: t global-evil-mc-mode: t evil-mc-mode: t global-git-commit-mode: t transient-posframe-mode: t corfu-history-mode: t envrc-mode: t global-evil-surround-mode: t evil-surround-mode: t evil-matchit-mode: t evil-vimish-fold-mode: t vimish-fold-mode: t dtrt-indent-mode: t electric-pair-mode: t inf-ruby-minor-mode: t org-roam-db-autosync-mode: t global-undo-fu-session-mode: t undo-fu-session-mode: t ws-butler-global-mode: t ws-butler-mode: t global-flycheck-mode: t flycheck-mode: t global-auto-revert-mode: t savehist-mode: t yas-global-mode: t yas-minor-mode: t mini-frame-mode: t which-key-posframe-mode: t which-key-mode: t gcmh-mode: t save-place-mode: t tabspaces-mode: t winner-mode: t recentf-mode: t better-jumper-mode: t better-jumper-local-mode: t repeat-mode: t server-mode: t vertico-mouse-mode: t vertico-mode: t +popup-mode: t shell-dirtrack-mode: t evil-mode: t evil-local-mode: t windmove-mode: t ns-auto-titlebar-mode: t nano-modeline-mode: t leader-key-leader-override-mode: t global-leader-key-leader-override-mode: t delete-selection-mode: t pixel-scroll-precision-mode: t xterm-mouse-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t window-divider-mode: t line-number-mode: t auto-fill-function: yas--auto-fill transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /Users/aaronjensen/.emacs.d/straight/build/ivy/elpa hides /Users/aaronjensen/.emacs.d/straight/build/lispy/elpa /Users/aaronjensen/.emacs.d/straight/build/transient/transient hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/transient /Users/aaronjensen/.emacs.d/straight/build/use-package/use-package-jump hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/use-package-jump /Users/aaronjensen/.emacs.d/straight/build/use-package/use-package-diminish hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/use-package-diminish /Users/aaronjensen/.emacs.d/straight/build/use-package/use-package hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/use-package /Users/aaronjensen/.emacs.d/straight/build/use-package/use-package-delight hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/use-package-delight /Users/aaronjensen/.emacs.d/straight/build/use-package/use-package-lint hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/use-package-lint /Users/aaronjensen/.emacs.d/straight/build/bind-key/bind-key hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/bind-key /Users/aaronjensen/.emacs.d/straight/build/use-package/use-package-core hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/use-package-core /Users/aaronjensen/.emacs.d/straight/build/use-package/use-package-ensure hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/use-package-ensure /Users/aaronjensen/.emacs.d/straight/build/use-package/use-package-bind-key hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/use-package/use-package-bind-key /Users/aaronjensen/.emacs.d/straight/build/org/ob-comint hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-comint /Users/aaronjensen/.emacs.d/straight/build/org/ob-exp hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-exp /Users/aaronjensen/.emacs.d/straight/build/org/org-ctags hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-ctags /Users/aaronjensen/.emacs.d/straight/build/org/ob-emacs-lisp hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-emacs-lisp /Users/aaronjensen/.emacs.d/straight/build/org/oc hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/oc /Users/aaronjensen/.emacs.d/straight/build/org/ox-texinfo hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-texinfo /Users/aaronjensen/.emacs.d/straight/build/org/ol-irc hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-irc /Users/aaronjensen/.emacs.d/straight/build/org/ol-doi hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-doi /Users/aaronjensen/.emacs.d/straight/build/org/ob hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob /Users/aaronjensen/.emacs.d/straight/build/org/org-refile hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-refile /Users/aaronjensen/.emacs.d/straight/build/org/org-version hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-version /Users/aaronjensen/.emacs.d/straight/build/org/org-num hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-num /Users/aaronjensen/.emacs.d/straight/build/org/ol-mhe hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-mhe /Users/aaronjensen/.emacs.d/straight/build/org/ob-shell hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-shell /Users/aaronjensen/.emacs.d/straight/build/org/org-attach hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-attach /Users/aaronjensen/.emacs.d/straight/build/org/ob-C hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-C /Users/aaronjensen/.emacs.d/straight/build/org/org-macs hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-macs /Users/aaronjensen/.emacs.d/straight/build/org/org-entities hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-entities /Users/aaronjensen/.emacs.d/straight/build/org/ob-dot hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-dot /Users/aaronjensen/.emacs.d/straight/build/org/ob-sql hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-sql /Users/aaronjensen/.emacs.d/straight/build/org/ol-eww hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-eww /Users/aaronjensen/.emacs.d/straight/build/org/org-datetree hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-datetree /Users/aaronjensen/.emacs.d/straight/build/org/org-macro hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-macro /Users/aaronjensen/.emacs.d/straight/build/org/ob-eval hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-eval /Users/aaronjensen/.emacs.d/straight/build/org/ob-haskell hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-haskell /Users/aaronjensen/.emacs.d/straight/build/org/ox-org hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-org /Users/aaronjensen/.emacs.d/straight/build/org/ol-rmail hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-rmail /Users/aaronjensen/.emacs.d/straight/build/org/ob-awk hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-awk /Users/aaronjensen/.emacs.d/straight/build/org/ob-groovy hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-groovy /Users/aaronjensen/.emacs.d/straight/build/org/ox-icalendar hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-icalendar /Users/aaronjensen/.emacs.d/straight/build/org/ob-octave hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-octave /Users/aaronjensen/.emacs.d/straight/build/org/ob-scheme hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-scheme /Users/aaronjensen/.emacs.d/straight/build/org/org-mobile hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-mobile /Users/aaronjensen/.emacs.d/straight/build/org/ob-processing hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-processing /Users/aaronjensen/.emacs.d/straight/build/org/oc-biblatex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/oc-biblatex /Users/aaronjensen/.emacs.d/straight/build/org/oc-csl hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/oc-csl /Users/aaronjensen/.emacs.d/straight/build/org/org-colview hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-colview /Users/aaronjensen/.emacs.d/straight/build/org/ob-R hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-R /Users/aaronjensen/.emacs.d/straight/build/org/org-table hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-table /Users/aaronjensen/.emacs.d/straight/build/org/ox-html hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-html /Users/aaronjensen/.emacs.d/straight/build/org/ob-fortran hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-fortran /Users/aaronjensen/.emacs.d/straight/build/org/ol hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol /Users/aaronjensen/.emacs.d/straight/build/org/ob-plantuml hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-plantuml /Users/aaronjensen/.emacs.d/straight/build/org/ol-docview hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-docview /Users/aaronjensen/.emacs.d/straight/build/org/ob-perl hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-perl /Users/aaronjensen/.emacs.d/straight/build/org/ob-sqlite hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-sqlite /Users/aaronjensen/.emacs.d/straight/build/org/oc-basic hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/oc-basic /Users/aaronjensen/.emacs.d/straight/build/org/ob-sed hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-sed /Users/aaronjensen/.emacs.d/straight/build/org/org-fold-core hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-fold-core /Users/aaronjensen/.emacs.d/straight/build/org/ob-ditaa hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-ditaa /Users/aaronjensen/.emacs.d/straight/build/org/ob-ruby hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-ruby /Users/aaronjensen/.emacs.d/straight/build/org/oc-bibtex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/oc-bibtex /Users/aaronjensen/.emacs.d/straight/build/org/org-habit hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-habit /Users/aaronjensen/.emacs.d/straight/build/org/org-loaddefs hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-loaddefs /Users/aaronjensen/.emacs.d/straight/build/org/ol-gnus hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-gnus /Users/aaronjensen/.emacs.d/straight/build/org/ob-screen hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-screen /Users/aaronjensen/.emacs.d/straight/build/org/org-mouse hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-mouse /Users/aaronjensen/.emacs.d/straight/build/org/ob-css hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-css /Users/aaronjensen/.emacs.d/straight/build/org/org-inlinetask hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-inlinetask /Users/aaronjensen/.emacs.d/straight/build/org/ob-lisp hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-lisp /Users/aaronjensen/.emacs.d/straight/build/org/ol-eshell hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-eshell /Users/aaronjensen/.emacs.d/straight/build/org/org-pcomplete hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-pcomplete /Users/aaronjensen/.emacs.d/straight/build/org/org-lint hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-lint /Users/aaronjensen/.emacs.d/straight/build/org/org-id hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-id /Users/aaronjensen/.emacs.d/straight/build/org/org-capture hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-capture /Users/aaronjensen/.emacs.d/straight/build/org/ob-sass hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-sass /Users/aaronjensen/.emacs.d/straight/build/org/ob-tangle hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-tangle /Users/aaronjensen/.emacs.d/straight/build/org/ob-calc hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-calc /Users/aaronjensen/.emacs.d/straight/build/org/ob-java hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-java /Users/aaronjensen/.emacs.d/straight/build/org/org-compat hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-compat /Users/aaronjensen/.emacs.d/straight/build/org/org-attach-git hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-attach-git /Users/aaronjensen/.emacs.d/straight/build/org/ox-beamer hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-beamer /Users/aaronjensen/.emacs.d/straight/build/org/org-protocol hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-protocol /Users/aaronjensen/.emacs.d/straight/build/org/org-element hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-element /Users/aaronjensen/.emacs.d/straight/build/org/ob-lob hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-lob /Users/aaronjensen/.emacs.d/straight/build/org/org-tempo hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-tempo /Users/aaronjensen/.emacs.d/straight/build/org/ob-python hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-python /Users/aaronjensen/.emacs.d/straight/build/org/ob-latex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-latex /Users/aaronjensen/.emacs.d/straight/build/org/ol-w3m hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-w3m /Users/aaronjensen/.emacs.d/straight/build/org/org-agenda hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-agenda /Users/aaronjensen/.emacs.d/straight/build/org/org-persist hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-persist /Users/aaronjensen/.emacs.d/straight/build/org/ob-ocaml hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-ocaml /Users/aaronjensen/.emacs.d/straight/build/org/ob-ref hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-ref /Users/aaronjensen/.emacs.d/straight/build/org/org-fold hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-fold /Users/aaronjensen/.emacs.d/straight/build/org/ob-julia hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-julia /Users/aaronjensen/.emacs.d/straight/build/org/ob-lilypond hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-lilypond /Users/aaronjensen/.emacs.d/straight/build/org/ob-table hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-table /Users/aaronjensen/.emacs.d/straight/build/org/ob-clojure hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-clojure /Users/aaronjensen/.emacs.d/straight/build/org/org-indent hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-indent /Users/aaronjensen/.emacs.d/straight/build/org/org-plot hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-plot /Users/aaronjensen/.emacs.d/straight/build/org/ox-latex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-latex /Users/aaronjensen/.emacs.d/straight/build/org/org-src hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-src /Users/aaronjensen/.emacs.d/straight/build/org/org-duration hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-duration /Users/aaronjensen/.emacs.d/straight/build/org/ob-makefile hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-makefile /Users/aaronjensen/.emacs.d/straight/build/org/ol-info hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-info /Users/aaronjensen/.emacs.d/straight/build/org/org-clock hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-clock /Users/aaronjensen/.emacs.d/straight/build/org/ob-forth hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-forth /Users/aaronjensen/.emacs.d/straight/build/org/ox-odt hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-odt /Users/aaronjensen/.emacs.d/straight/build/org/ol-man hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-man /Users/aaronjensen/.emacs.d/straight/build/org/ox-publish hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-publish /Users/aaronjensen/.emacs.d/straight/build/org/org-archive hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-archive /Users/aaronjensen/.emacs.d/straight/build/org/ob-org hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-org /Users/aaronjensen/.emacs.d/straight/build/org/ob-lua hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-lua /Users/aaronjensen/.emacs.d/straight/build/org/org-keys hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-keys /Users/aaronjensen/.emacs.d/straight/build/org/ob-eshell hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-eshell /Users/aaronjensen/.emacs.d/straight/build/org/org-faces hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-faces /Users/aaronjensen/.emacs.d/straight/build/org/ox-man hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-man /Users/aaronjensen/.emacs.d/straight/build/org/org-list hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-list /Users/aaronjensen/.emacs.d/straight/build/org/ox-md hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-md /Users/aaronjensen/.emacs.d/straight/build/org/org-goto hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-goto /Users/aaronjensen/.emacs.d/straight/build/org/ol-bbdb hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-bbdb /Users/aaronjensen/.emacs.d/straight/build/org/org hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org /Users/aaronjensen/.emacs.d/straight/build/org/ol-bibtex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ol-bibtex /Users/aaronjensen/.emacs.d/straight/build/org/ox-koma-letter hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-koma-letter /Users/aaronjensen/.emacs.d/straight/build/org/ox-ascii hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox-ascii /Users/aaronjensen/.emacs.d/straight/build/org/ob-matlab hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-matlab /Users/aaronjensen/.emacs.d/straight/build/org/ox hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ox /Users/aaronjensen/.emacs.d/straight/build/org/org-timer hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-timer /Users/aaronjensen/.emacs.d/straight/build/org/oc-natbib hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/oc-natbib /Users/aaronjensen/.emacs.d/straight/build/org/ob-core hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-core /Users/aaronjensen/.emacs.d/straight/build/org/org-feed hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-feed /Users/aaronjensen/.emacs.d/straight/build/org/ob-gnuplot hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-gnuplot /Users/aaronjensen/.emacs.d/straight/build/org/ob-js hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-js /Users/aaronjensen/.emacs.d/straight/build/org/org-footnote hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-footnote /Users/aaronjensen/.emacs.d/straight/build/org/ob-maxima hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/ob-maxima /Users/aaronjensen/.emacs.d/straight/build/org/org-cycle hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-cycle /Users/aaronjensen/.emacs.d/straight/build/org/org-crypt hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/org/org-crypt /Users/aaronjensen/.emacs.d/straight/build/let-alist/let-alist hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/emacs-lisp/let-alist /Users/aaronjensen/.emacs.d/straight/build/eldoc/eldoc hides /opt/homebrew/Cellar/emacs-plus@29/29.0.60/share/emacs/29.0.60/lisp/emacs-lisp/eldoc Features: (shadow magit-gitignore evil-collection-dired evil-collection-profiler profiler ace-window evil-collection-ibuffer ibuffer ibuffer-loaddefs consult-git-commit evil-nerd-commenter evil-nerd-commenter-operator evil-nerd-commenter-sdk mail-extr tramp-cmds lispyville magit-extras multi-vterm evil-collection-vterm vterm tramp tramp-integration tramp-compat term hippie-exp novice time-stamp editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch nvm iter2 consult-xref dumb-jump popup semantic/ia semantic/analyze/refs semantic/db-find semantic/db-ref semantic/senator semantic/decorate semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn semantic/db eieio-base semantic/ctxt semantic/format ezimage semantic/tag-ls semantic/find semantic/util-modes semantic/util semantic semantic/tag cedet find-dired evil-collection-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util ztree-diff ztree-diff-model ztree-view ztree-protocol ztree-util terraform-mode hcl-mode evil-matchit-ruby evil-matchit-simple evil-matchit-prog evil-matchit evil-matchit-sdk semantic/lex semantic/fw wdired cfrs descr-text emmet-mode cl web-mode typescript-mode rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid nxml-mode nxml-outln nxml-rap org-drill persist timezone cal-move speeddating proced haml-mode css-mode sgml-mode facemenu copy-as-format tabify evil-collection-helpful helpful cc-langs trace info-look elisp-refs lua-mode sql conf-mode json-mode json-snatcher js cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs sort dabbrev company-rg company emacsbug org-clock diary-lib diary-loaddefs lsp-diagnostics lsp-modeline lsp-lens lsp-ui lsp-ui-flycheck lsp-ui-doc goto-addr lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-ui-util lsp-zig lsp-steep lsp-svelte lsp-sqls lsp-ruby-syntax-tree lsp-yaml lsp-xml lsp-vimscript lsp-vhdl image-file image-converter lsp-volar lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v lsp-typeprof lsp-ttcn3 lsp-toml lsp-terraform lsp-tex lsp-sorbet lsp-solargraph lsp-rust lsp-rf lsp-remark lsp-racket lsp-r lsp-purescript lsp-pylsp lsp-pyls lsp-pwsh lsp-php lsp-pls lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml lsp-magik lsp-nix lsp-nim lsp-nginx lsp-mint lsp-marksman lsp-markdown lsp-lua lsp-kotlin lsp-json lsp-javascript lsp-idris lsp-haxe lsp-groovy lsp-hack lsp-graphql lsp-gleam lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint lsp-erlang lsp-emmet lsp-elixir lsp-elm lsp-dockerfile lsp-dhall lsp-d lsp-css lsp-csharp lsp-crystal lsp-cmake lsp-clojure lsp-semantic-tokens lsp-clangd lsp-beancount lsp-bash lsp-astro lsp-ansible lsp-angular lsp-ada lsp-actionscript lsp-mode lsp-protocol spinner network-stream yaml-mode epa-file tramp-loaddefs trampver cus-start ls-lisp ehelp vterm-module term/xterm xterm vc-hg vc-bzr vc-src vc-sccs vc-cvs vc-rcs log-view bug-reference wgrep grep embark-consult embark python ffap treemacs-magit treemacs-evil doom-themes-ext-treemacs doom-themes doom-themes-base treemacs-tab-bar treemacs-all-the-icons all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons treemacs treemacs-header-line treemacs-compatibility treemacs-mode treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals treemacs-fringe-indicator treemacs-scope pulse treemacs-faces treemacs-icons treemacs-themes treemacs-core-utils pfuture inline hl-line ht treemacs-logging treemacs-customization treemacs-macros markdown-mode eval-sexp-fu eros lispy lispy-inline avy etags fileloop evil-collection-edebug edebug lispy-tags mode-local zoutline elisp-def ert ewoc evil-collection-debug debug backtrace evil-collection-xref xref sotlisp skeleton consult-vertico consult compat-28 magit-bookmark bookmark sh-script view org-appear orgonomic org-indent org-superstar form-feed org-journal org-crypt cal-iso evil-terminal-cursor-changer evil-anzu anzu oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime evil-mc evil-mc-command-execute evil-mc-command-record evil-mc-cursor-make evil-mc-region evil-mc-cursor-state evil-mc-undo evil-mc-vars evil-mc-known-commands evil-mc-common magit-delta xterm-color evil-collection-magit 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 package url-handlers magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient-posframe transient magit-git magit-base crm tree-sitter-langs tree-sitter-langs-build tar-mode evil-collection-arc-mode arc-mode archive-mode tree-sitter-hl tree-sitter tree-sitter-load tree-sitter-cli tsc tsc-dyn tsc-dyn-get dired-aux tsc-obsolete cape corfu-history corfu evil-ruby-text-objects ruby-refactor envrc inheritenv evil-surround evil-matchit-evil-setup evil-vimish-fold vimish-fold f f-shortdoc shortdoc dtrt-indent elec-pair help-fns radix-tree bundler inf-ruby ruby-mode compile enh-ruby-mode color gnutls vc-git diff-mode dig gnus-sum shr pixel-fill kinsoku url-file svg dom browse-url gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util text-property-search mail-utils range ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi imenu 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-ascii ox-gfm ox-md ox-html table ox-publish ox org-download url-http url url-proxy url-privacy url-expand url-methods url-history mailcap url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-cookie generate-lisp-file url-domsuf url-util url-gw nsm puny url-parse auth-source password-cache url-vars async vulpea vulpea-meta vulpea-select vulpea-buffer vulpea-db s vulpea-utils vulpea-note org-roam-migrate org-roam-log org-roam-mode org-roam-capture org-roam-id org-roam-node org-roam-db org-roam-utils org-roam-compat org-roam org-mac-link org-goto org-capture org-attach org-tempo tempo evil-org-agenda evil-org org-element org-persist xdg org-id org-refile avl-tree generator ob-shell org time-date ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-version org-compat org-macs emacsql-sqlite emacsql emacsql-compiler magit-section format-spec eieio eieio-core compat-27 compat-26 smie treesit executable undo-fu-session ws-butler vertico-directory cursor-sensor flycheck json map find-func dash autorevert filenotify savehist yasnippet mini-frame popup-mode-hacks which-key-posframe posframe evil-collection-which-key which-key gcmh saveplace tabspaces dired-x dired dired-loaddefs vc vc-dispatcher winner hide-mode-line popup-mode-core recentf tree-widget better-jumper repeat vc-svn project server gcmh-autoloads copy-as-format-autoloads pcase pdf-tools-autoloads tablist-autoloads restclient-autoloads multi-vterm-autoloads vterm-autoloads dumb-jump-autoloads popup-autoloads haml-mode-autoloads emmet-mode-autoloads terraform-mode-autoloads hcl-mode-autoloads dockerfile-mode-autoloads yaml-mode-autoloads json-snatcher-autoloads lua-mode-autoloads bundler-autoloads inf-ruby-autoloads ruby-refactor-autoloads evil-ruby-text-objects-autoloads enh-ruby-mode-autoloads sotlisp-autoloads elisp-def-autoloads lispyville-autoloads lispy-autoloads zoutline-autoloads swiper-autoloads ivy-autoloads iedit-autoloads eros-autoloads eval-sexp-fu-autoloads eslintd-fix-autoloads web-mode-autoloads typescript-mode-autoloads company-rg-autoloads company-autoloads git-link-autoloads consult-git-commit-autoloads git-timemachine-autoloads magit-delta-autoloads xterm-color-autoloads prettier-autoloads editorconfig-autoloads nvm-autoloads iter2-autoloads flycheck-autoloads let-alist-autoloads pkg-info-autoloads epl-autoloads tree-sitter-langs-autoloads tree-sitter-autoloads tsc-autoloads lsp-ui-autoloads lsp-mode-autoloads eldoc-autoloads markdown-mode-autoloads spinner-autoloads imenu-list-autoloads org-superstar-autoloads ox-gfm-autoloads org-pandoc-import-autoloads gnuplot-autoloads org-download-autoloads async-autoloads org-journal-autoloads deft-autoloads vulpea-autoloads org-roam-autoloads emacsql-sqlite-autoloads emacsql-autoloads orgonomic-autoloads org-drill-autoloads persist-autoloads org-appear-autoloads org-mac-link-autoloads evil-org-autoloads evil-terminal-cursor-changer-autoloads transient-posframe-autoloads better-jumper-autoloads hydra lv buffer-move-autoloads rotate-autoloads mini-frame-autoloads embark-consult-autoloads embark-autoloads consult-autoloads orderless orderless-autoloads cape-autoloads corfu-autoloads vertico-mouse vertico vertico-autoloads tabspaces-autoloads which-key-posframe-autoloads which-key-autoloads popup-mode popup-mode-settings popup-mode-autoloads hide-mode-line-autoloads evil-anzu-autoloads anzu-autoloads titlecase-autoloads wgrep-autoloads yasnippet-autoloads form-feed-autoloads drag-stuff-autoloads dtrt-indent-autoloads ws-butler-autoloads evil-vimish-fold-autoloads vimish-fold-autoloads evil-collection annalist evil-collection-autoloads annalist-autoloads evil-mc-autoloads evil-numbers-autoloads speeddating-autoloads evil-matchit-autoloads evil-nerd-commenter-autoloads evil-visualstar-autoloads evil-surround-autoloads cus-edit cus-load wid-edit evil evil-integration evil-maps evil-commands reveal flyspell ispell evil-jumps evil-command-window evil-search evil-ex shell pcomplete comint ansi-osc ansi-color evil-types evil-macros evil-repeat evil-states evil-core byte-opt advice evil-common windmove calc calc-loaddefs calc-macs thingatpt rect evil-digraphs evil-vars pp vundo-autoloads undo-fu-session-autoloads ztree-autoloads dwim-shell-command-autoloads doom-themes-autoloads treemacs-tab-bar-autoloads treemacs-magit-autoloads magit-autoloads magit-section-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads treemacs-all-the-icons-autoloads all-the-icons-autoloads treemacs-evil-autoloads evil-autoloads goto-chg-autoloads treemacs-autoloads cfrs-autoloads ht-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads rainbow-mode-autoloads posframe-autoloads ns-auto-titlebar ns-auto-titlebar-autoloads nano-modeline memoize nano-modeline-autoloads memoize-autoloads nano-light-theme face-remap nano-theme disp-table nano-theme-autoloads envrc-autoloads inheritenv-autoloads compdef derived compdef-autoloads helpful-autoloads elisp-refs-autoloads f-autoloads s-autoloads edmacro kmacro dired-subtree-autoloads dired-hacks-utils-autoloads dash-autoloads use-package-bind-key hydra-autoloads lv-autoloads finder-inf leader-key bind-map leader-key-autoloads bind-map-autoloads delsel pixel-scroll cua-base ring xt-mouse no-littering compat compat-macs no-littering-autoloads compat-autoloads bind-key easy-mmode use-package-core use-package-autoloads bind-key-autoloads info files-x straight-autoloads straight comp comp-cstr warnings subr-x rx cl-seq cl-macs gv bytecomp byte-compile cl-extra help-mode icons cl-loaddefs cl-lib display-line-numbers rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 2427821 1029366) (symbols 48 81704 971) (strings 32 357613 133923) (string-bytes 1 12498992) (vectors 16 226384) (vector-slots 8 5343488 1440221) (floats 8 3695 6895) (intervals 56 141490 6601) (buffers 992 212)) ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-16 5:04 bug#60110: 29.0.60; ruby-mode method parameter alignment Aaron Jensen @ 2022-12-18 22:32 ` Dmitry Gutov 2022-12-18 22:53 ` Aaron Jensen 2022-12-19 0:48 ` Dmitry Gutov 0 siblings, 2 replies; 13+ messages in thread From: Dmitry Gutov @ 2022-12-18 22:32 UTC (permalink / raw) To: Aaron Jensen, 60110 [-- Attachment #1: Type: text/plain, Size: 1548 bytes --] Hi Aaron, Thanks for the report. On 16/12/2022 07:04, Aaron Jensen wrote: > > Currently, ruby-mode smie indents method parameters like this: > > def some_method( > some_arg, > some_other_arg > ) > end > > def self.some_method( > some_arg, > some_other_arg > ) > end I'm assuming the difference in indentation between these posted cases is just an email/bug tracker bug. If they are sometimes different, please let me know. That would be another bug. > I would prefer to be able to indent them like this: > > def some_method( > some_arg, > some_other_arg > ) > end > > def self.some_method( > some_arg, > some_other_arg > ) > end See the attached patch. (setq ruby-method-params-indent 0) should do it. > Rubocop has two rules that govern this behavior: > > Layout/FirstParameterIndentation: consistent > https://docs.rubocop.org/rubocop/1.40/cops_layout.html#layoutfirstparameterindentation > > Layout/ParameterAlignment: with_first_parameter and > with_fixed_indentation would both work. I don't have a strong opinion on > this, because I usually break after a ( if I am going to put parameters > on their own line. Leaving the first one on the same line as the method > name is not as scannable. > https://docs.rubocop.org/rubocop/1.40/cops_layout.html#layoutparameteralignment All right. It doesn't seem to support many styles, only indenting the first param against the opening paren, and against the beginning of "def". But it confirmed my idea for the option name (a generic one). [-- Attachment #2: ruby-method-params-indent.diff --] [-- Type: text/x-patch, Size: 4114 bytes --] diff --git a/etc/NEWS b/etc/NEWS index cded60cca63..fdf01592e10 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2761,6 +2761,9 @@ project-dedicated or global) is specified by the new --- *** Support for endless methods. +--- +*** New user option 'ruby-method-params-indent'. + ** Eshell +++ diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index ed6044280ea..d4e6a25e5b3 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -267,6 +267,24 @@ ruby-align-chained-calls :safe 'booleanp :version "24.4") +(defcustom ruby-method-params-indent t + "Indentation style of multiline method parameters. + +When t, the whole list with parentheses is indented against the +method name. + +When a number, indent the parameters this many columns against +the beginning of the method (the \"def\" keyword). + +The value nil means the same as 0. + +Only has effect when `ruby-use-smie' is t." + :type '(choice (const :tag "Indent against method name" t) + (number :tag "Indent specified number of columns against def") + (const :tag "Indent to def" nil)) + :safe (lambda (val) (or (memq val '(t nil)) (numberp val))) + :version 29.1) + (defcustom ruby-deep-arglist t "Deep indent lists in parenthesis when non-nil. Also ignores spaces after parenthesis when `space'. @@ -659,9 +677,12 @@ ruby-smie-rules (unless (or (eolp) (forward-comment 1)) (cons 'column (current-column))))) ('(:before . " @ ") - (save-excursion - (skip-chars-forward " \t") - (cons 'column (current-column)))) + (if (or (eq ruby-method-params-indent t) + (not (smie-rule-parent-p "def" "def="))) + (save-excursion + (skip-chars-forward " \t") + (cons 'column (current-column))) + (smie-rule-parent (or ruby-method-params-indent 0)))) ('(:before . "do") (ruby-smie--indent-to-stmt)) ('(:before . ".") (if (smie-rule-sibling-p) diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby-method-params-indent.rb b/test/lisp/progmodes/ruby-mode-resources/ruby-method-params-indent.rb new file mode 100644 index 00000000000..2b665797397 --- /dev/null +++ b/test/lisp/progmodes/ruby-mode-resources/ruby-method-params-indent.rb @@ -0,0 +1,18 @@ +class C + def self.foo( + baz, + bar + ) = + what + + def foo=( + baz, + bar + ) + hello + end +end + +# Local Variables: +# ruby-method-params-indent: 0 +# End: diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby.rb b/test/lisp/progmodes/ruby-mode-resources/ruby.rb index 5636a4fc0e2..61b75c0c7f2 100644 --- a/test/lisp/progmodes/ruby-mode-resources/ruby.rb +++ b/test/lisp/progmodes/ruby-mode-resources/ruby.rb @@ -536,3 +536,7 @@ def foo=( hello end end + +# Local Variables: +# ruby-method-params-indent: t +# End: diff --git a/test/lisp/progmodes/ruby-mode-tests.el b/test/lisp/progmodes/ruby-mode-tests.el index 9be01dc78f9..ad9fc3dad4d 100644 --- a/test/lisp/progmodes/ruby-mode-tests.el +++ b/test/lisp/progmodes/ruby-mode-tests.el @@ -943,7 +943,7 @@ ruby-imenu-with-private-modifier "Blub#bye" "Blub#hiding"))))) -(ert-deftest ruby--indent/converted-from-manual-test () +(ert-deftest ruby--indent/run-manual-test () :tags '(:expensive-test) ;; Converted from manual test. (let ((buf (find-file-noselect (ert-resource-file "ruby.rb")))) @@ -954,6 +954,17 @@ ruby--indent/converted-from-manual-test (should (equal (buffer-string) orig)))) (kill-buffer buf)))) +(ert-deftest ruby--indent/run-manual-test-method-params-indent () + :tags '(:expensive-test) + ;; Converted from manual test. + (let ((buf (find-file-noselect (ert-resource-file "ruby-method-params-indent.rb")))) + (unwind-protect + (with-current-buffer buf + (let ((orig (buffer-string))) + (indent-region (point-min) (point-max)) + (should (equal (buffer-string) orig)))) + (kill-buffer buf)))) + (ert-deftest ruby--test-chained-indentation () (with-temp-buffer (ruby-mode) ^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-18 22:32 ` Dmitry Gutov @ 2022-12-18 22:53 ` Aaron Jensen 2022-12-19 1:00 ` Dmitry Gutov 2022-12-19 0:48 ` Dmitry Gutov 1 sibling, 1 reply; 13+ messages in thread From: Aaron Jensen @ 2022-12-18 22:53 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 60110 On Sun, Dec 18, 2022 at 5:32 PM Dmitry Gutov <dgutov@yandex.ru> wrote: > > I'm assuming the difference in indentation between these posted cases is > just an email/bug tracker bug. If they are sometimes different, please > let me know. That would be another bug. I think so, yeah. > > > I would prefer to be able to indent them like this: > > > > def some_method( > > some_arg, > > some_other_arg > > ) > > end > > > > def self.some_method( > > some_arg, > > some_other_arg > > ) > > end > > See the attached patch. (setq ruby-method-params-indent 0) should do it. Works for me. Next question is... is there an existing setting to change the indentation of expressions like: x = [3,4]. map { |x| x * 2 } Like everything else, I just want a 2 space indent, no alignment, nothing clever: x = [3,4]. map { |x| x * 2 } I can open another issue for this if there's no existing option and you'd like me to. Thanks, Aaron ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-18 22:53 ` Aaron Jensen @ 2022-12-19 1:00 ` Dmitry Gutov 2022-12-19 2:58 ` Aaron Jensen 0 siblings, 1 reply; 13+ messages in thread From: Dmitry Gutov @ 2022-12-19 1:00 UTC (permalink / raw) To: Aaron Jensen; +Cc: 60110 On 19/12/2022 00:53, Aaron Jensen wrote: > Next question is... is there an existing setting to change the > indentation of expressions like: > > x = [3,4]. > map { |x| x * 2 } > > Like everything else, I just want a 2 space indent, no alignment, > nothing clever: > > x = [3,4]. > map { |x| x * 2 } > > I can open another issue for this if there's no existing option and > you'd like me to. Yes, please. That's going to be more difficult, though, since this part stems from the default SMIE indentation behavior. It will help to be specific: whether you are concerned about this behavior for assignments only (and probably for operators like +=, /=, &=, etc), or whether there are other tokens/keywords like that. Or whether adding an option for = and friends will get us 99% there, maybe. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-19 1:00 ` Dmitry Gutov @ 2022-12-19 2:58 ` Aaron Jensen 2022-12-19 19:09 ` Dmitry Gutov 0 siblings, 1 reply; 13+ messages in thread From: Aaron Jensen @ 2022-12-19 2:58 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 60110 On Sun, Dec 18, 2022 at 8:00 PM Dmitry Gutov <dgutov@yandex.ru> wrote: > Yes, please. > > That's going to be more difficult, though, since this part stems from > the default SMIE indentation behavior. > > It will help to be specific: whether you are concerned about this > behavior for assignments only (and probably for operators like +=, /=, > &=, etc), or whether there are other tokens/keywords like that. > > Or whether adding an option for = and friends will get us 99% there, maybe. Done: bug#60186 Not sure what it'll take, it sounds like I just want all the SMIE behavior disabled :) Thanks, Aaron ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-19 2:58 ` Aaron Jensen @ 2022-12-19 19:09 ` Dmitry Gutov 0 siblings, 0 replies; 13+ messages in thread From: Dmitry Gutov @ 2022-12-19 19:09 UTC (permalink / raw) To: Aaron Jensen; +Cc: 60110 On 19/12/2022 04:58, Aaron Jensen wrote: > Not sure what it'll take, it sounds like I just want all the SMIE > behavior disabled 😄 That could be a problem: indentation code has historically been black magic, and SMIE makes it a little easier. :) ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-18 22:32 ` Dmitry Gutov 2022-12-18 22:53 ` Aaron Jensen @ 2022-12-19 0:48 ` Dmitry Gutov 2022-12-19 12:12 ` Eli Zaretskii 1 sibling, 1 reply; 13+ messages in thread From: Dmitry Gutov @ 2022-12-19 0:48 UTC (permalink / raw) To: 60110, Eli Zaretskii; +Cc: Aaron Jensen On 19/12/2022 00:32, Dmitry Gutov wrote: > See the attached patch. Eli, I'd like to push that one to Emacs 29 as well. It should be very safe: the default value of the new option makes sure that aside from the (eq ruby-method-params-indent t) check all the code runs exactly as before. (No, I'm not going to ask that for every next feature request.) ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-19 0:48 ` Dmitry Gutov @ 2022-12-19 12:12 ` Eli Zaretskii 2022-12-19 19:14 ` Dmitry Gutov 0 siblings, 1 reply; 13+ messages in thread From: Eli Zaretskii @ 2022-12-19 12:12 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 60110, aaronjensen > Date: Mon, 19 Dec 2022 02:48:57 +0200 > From: Dmitry Gutov <dgutov@yandex.ru> > Cc: Aaron Jensen <aaronjensen@gmail.com> > > On 19/12/2022 00:32, Dmitry Gutov wrote: > > See the attached patch. > > Eli, I'd like to push that one to Emacs 29 as well. > > It should be very safe: the default value of the new option makes sure > that aside from the (eq ruby-method-params-indent t) check all the code > runs exactly as before. OK. > (No, I'm not going to ask that for every next feature request.) Thanks in advance ;-) ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-19 12:12 ` Eli Zaretskii @ 2022-12-19 19:14 ` Dmitry Gutov 2022-12-19 19:30 ` Eli Zaretskii 0 siblings, 1 reply; 13+ messages in thread From: Dmitry Gutov @ 2022-12-19 19:14 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 60110-done, aaronjensen Version: 29.1 On 19/12/2022 14:12, Eli Zaretskii wrote: >> Date: Mon, 19 Dec 2022 02:48:57 +0200 >> From: Dmitry Gutov<dgutov@yandex.ru> >> Cc: Aaron Jensen<aaronjensen@gmail.com> >> >> On 19/12/2022 00:32, Dmitry Gutov wrote: >>> See the attached patch. >> Eli, I'd like to push that one to Emacs 29 as well. >> >> It should be very safe: the default value of the new option makes sure >> that aside from the (eq ruby-method-params-indent t) check all the code >> runs exactly as before. > OK. Excellent! Now pushed to emacs-29, and closing. BTW, suggestions to improveme to ruby-method-params-indent's docstring are welcome, if any. Not sure if it is clear enough, but it's the best I could come up with. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-19 19:14 ` Dmitry Gutov @ 2022-12-19 19:30 ` Eli Zaretskii 2022-12-19 20:08 ` Dmitry Gutov 0 siblings, 1 reply; 13+ messages in thread From: Eli Zaretskii @ 2022-12-19 19:30 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 60110, aaronjensen > Date: Mon, 19 Dec 2022 21:14:13 +0200 > Cc: 60110-done@debbugs.gnu.org, aaronjensen@gmail.com > From: Dmitry Gutov <dgutov@yandex.ru> > > BTW, suggestions to improveme to ruby-method-params-indent's docstring > are welcome, if any. Not sure if it is clear enough, but it's the best I > could come up with. You can rest assured I've read it. I didn't have any significant issues with it. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-19 19:30 ` Eli Zaretskii @ 2022-12-19 20:08 ` Dmitry Gutov 2022-12-20 0:17 ` Andy Moreton 0 siblings, 1 reply; 13+ messages in thread From: Dmitry Gutov @ 2022-12-19 20:08 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 60110, aaronjensen On 19/12/2022 21:30, Eli Zaretskii wrote: >> Date: Mon, 19 Dec 2022 21:14:13 +0200 >> Cc:60110-done@debbugs.gnu.org,aaronjensen@gmail.com >> From: Dmitry Gutov<dgutov@yandex.ru> >> >> BTW, suggestions to improveme to ruby-method-params-indent's docstring >> are welcome, if any. Not sure if it is clear enough, but it's the best I >> could come up with. > You can rest assured I've read it. I didn't have any significant > issues with it. Thank you. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-19 20:08 ` Dmitry Gutov @ 2022-12-20 0:17 ` Andy Moreton 2022-12-20 1:13 ` Dmitry Gutov 0 siblings, 1 reply; 13+ messages in thread From: Andy Moreton @ 2022-12-20 0:17 UTC (permalink / raw) To: 60110 On Mon 19 Dec 2022, Dmitry Gutov wrote: > On 19/12/2022 21:30, Eli Zaretskii wrote: >>> Date: Mon, 19 Dec 2022 21:14:13 +0200 >>> Cc:60110-done@debbugs.gnu.org,aaronjensen@gmail.com >>> From: Dmitry Gutov<dgutov@yandex.ru> >>> >>> BTW, suggestions to improveme to ruby-method-params-indent's docstring >>> are welcome, if any. Not sure if it is clear enough, but it's the best I >>> could come up with. >> You can rest assured I've read it. I didn't have any significant >> issues with it. > > Thank you. The commit 2b1fdbffcb ("ruby-method-params-indent: New user option") has a bug on emacs-29, namely that the :version tag for the defcustom is not a string (missing quotes), which breaks the build. AndyM ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#60110: 29.0.60; ruby-mode method parameter alignment 2022-12-20 0:17 ` Andy Moreton @ 2022-12-20 1:13 ` Dmitry Gutov 0 siblings, 0 replies; 13+ messages in thread From: Dmitry Gutov @ 2022-12-20 1:13 UTC (permalink / raw) To: Andy Moreton, 60110 On 20/12/2022 02:17, Andy Moreton wrote: > The commit 2b1fdbffcb ("ruby-method-params-indent: New user option") has > a bug on emacs-29, namely that the :version tag for the defcustom is not > a string (missing quotes), which breaks the build. Sorry about that, now fixed. ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2022-12-20 1:13 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-12-16 5:04 bug#60110: 29.0.60; ruby-mode method parameter alignment Aaron Jensen 2022-12-18 22:32 ` Dmitry Gutov 2022-12-18 22:53 ` Aaron Jensen 2022-12-19 1:00 ` Dmitry Gutov 2022-12-19 2:58 ` Aaron Jensen 2022-12-19 19:09 ` Dmitry Gutov 2022-12-19 0:48 ` Dmitry Gutov 2022-12-19 12:12 ` Eli Zaretskii 2022-12-19 19:14 ` Dmitry Gutov 2022-12-19 19:30 ` Eli Zaretskii 2022-12-19 20:08 ` Dmitry Gutov 2022-12-20 0:17 ` Andy Moreton 2022-12-20 1:13 ` Dmitry Gutov
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).