Subject: 28.0.50; outline-minor-mode-cycle should be able to only cycle at the begining of a line

From: Philip Kaludercic <[email-masked]>
Date: Sun, 19 Sep 2021 16:24:21 +0000

I like the new outline-minor-mode-cycle option, but it becomes annoying
in combination with tab-always-indent set to 'complete, because outline
takes over, even if I don't expect it.

Replacing the (outline-on-heading-p) check with 

          (looking-at outline-regexp)

or

          (and (bolp) (looking-at outline-regexp))

improves the experience for me, but I am not sure if
this is a general improvement. Could it make sense to have this as a
configurable option, or check the value of tab-always-indent and DWIM?

In GNU Emacs 28.0.50 (build 12, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0, Xaw scroll bars)
 of 2021-09-18 built on icterid
Repository revision: 2557c009bb1b7b9bc001aee5e6cd1c0054de83d6
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Debian GNU/Linux 11 (bullseye)

Configured using:
 'configure LDFLAGS=-flto 'CFLAGS=-O2 -march=native -mtune=native -pipe'
 --with-native-compilation PKG_CONFIG_PATH='

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM LUCID ZLIB

Important settings:
  value of $EMACSLOADPATH: 
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Outline

Minor modes in effect:
  shell-dirtrack-mode: t
  bug-reference-mode: t
  flyspell-mode: t
  display-time-mode: t
  winner-mode: t
  windmove-mode: t
  electric-pair-mode: t
  recentf-mode: t
  save-place-mode: t
  savehist-mode: t
  show-paren-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  buffer-read-only: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  indent-tabs-mode: t
  transient-mark-mode: t
  view-mode: t

Load-path shadows:
/home/philip/.config/emacs/elpa/transient-0.3.6/transient hides /home/philip/Code/src/emacs/lisp/transient
~/.config/emacs/site-lisp/autoload hides /home/philip/Code/src/emacs/lisp/emacs-lisp/autoload

Features:
(shadow slime-tests slime hyperspec mm-archive smiley gnus-cite
gnus-async gnus-bcklg qp gnus-ml disp-table mode-local ert-x ert ewoc
emacsbug repeat mhtml-mode css-mode smie eww url-queue mm-url js imenu
sgml-mode facemenu arc-mode archive-mode autorevert filenotify doc-view
image-mode exif mailalias bbdb-pgp sort bbdb-message mail-extr
autocrypt-message autocrypt-gnus autocrypt nndraft nnmh epa-file gnutls
network-stream nsm nnmaildir nnfolder bbdb-gnus bbdb-mua bbdb-com nnnil
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache gnus-sum shr
kinsoku svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601
gnus-spec gnus-int gnus-range message rmc puny rfc822 mml mml-sec epa
epg rfc6068 epg-config mm-decode mm-bodies mm-encode mailabbrev
gmm-utils mailheader gnus-win ffap crdt xdg completion vc-mtn vc-hg
vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs grep magit-utils crm dash
jka-compr apropos cl-print debug backtrace mule-util compat smerge-mode
add-log scroll-all follow etags fileloop generator view shell char-fold
eieio-opt speedbar ezimage dframe shortdoc org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint
org-pcomplete pcomplete org-list org-faces org-entities org-version
ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat advice
org-macs org-loaddefs format-spec allout cus-edit cus-start reposition
avy time-stamp flymake-cc pulse color vc-git diff-mode bug-reference
macrostep-c cmacexp macrostep pp cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs find-func xref
misearch multi-isearch help-at-pt vc-backup log-view pcvs-util diff
vc-fossil vc vc-dispatcher dired-aux paredit corfu checkdoc flymake-proc
flymake project thingatpt flyspell ispell noutline outline easy-mmode
comp comp-cstr warnings cl-extra gnus-dired dired-x dired dired-loaddefs
rx time bbdb derived bbdb-site timezone sendmail gnus nnheader gnus-util
rmail rmail-loaddefs time-date mail-utils hippie-exp winner windmove
elec-pair recentf tree-widget wid-edit saveplace savehist paren
modus-operandi-theme modus-themes pcase edmacro kmacro holidays
hol-loaddefs cal-menu calendar cal-loaddefs cus-load setup load compile
text-property-search comint ansi-color autoload lisp-mnt mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr tex-site
geiser-impl help-fns radix-tree help-mode geiser-custom geiser-base ring
slime-autoloads 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 subr-x map url-vars seq
byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd 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 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
x-toolkit x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 897653 621228)
 (symbols 48 42429 70)
 (strings 32 169188 70225)
 (string-bytes 1 5972522)
 (vectors 16 84010)
 (vector-slots 8 2108446 801160)
 (floats 8 648 1092)
 (intervals 56 28827 11991)
 (buffers 992 60))

-- 
	Philip K.