unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#48901: [kisara.moe] 28.0.50; Support text-based fringe contents alongside bitmaps
@ 2021-06-07 13:30 mohsin kaleem
  2021-06-07 13:42 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: mohsin kaleem @ 2021-06-07 13:30 UTC (permalink / raw)
  To: 48901


This is more a feature request than a bug-report. At the moment the
recommended way to show extra information about certain lines in a
buffer is the fringe. This is done by defining a fringe-bitmap and then
having that render onto the fringe, however this is a graphical
only solution and terminal frames don't support this. Some packages such
as flycheck let you work around this by rendering what you would've
rendered on the frame, onto the margin which supports rendering regular
strings (alongside any other string-properties such as faces) that can
be visible in both terminal and GUI frames.
However as a solution that isn't ideal, for one margins weren't designed
for this purpose and for another there doesn't seem to be a way to set
the background or other properties of a margin to make it resemble the
fringe (in my case I'd like the background of the margin to match
the fringe background but only for the left margin where I will show the
fringe indicators). There's also the issue with interference between
this representation and other packages such as olivetti that use the
margin to center text.
I'd like to recommend we support rendering both text and bitmaps onto
the fringe, rendering nothing (or perhaps a block element) if a package
tries to render a bitmap on a terminal frame.


In GNU Emacs 28.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.29, cairo version 1.17.4)
 of 2021-05-24 built on mk-desktop
Repository revision: a3de48687eb28121f3dbfc20be19bd06c4cd6e98
Repository branch: master
System Description: Arch Linux

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
 --with-sound=alsa --with-modules --without-gconf --without-gsettings
 --enable-link-time-optimization --with-native-compilation
 --with-x-toolkit=gtk3 --without-xaw3d --without-compress-install
 '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat
 -Werror=format-security -fstack-clash-protection -fcf-protection -flto
 -fuse-linker-plugin'
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

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

Important settings:
  value of $LC_MESSAGES: C
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Dashboard

Minor modes in effect:
  async-bytecomp-package-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  winner-mode: t
  global-anzu-mode: t
  anzu-mode: t
  company-prescient-mode: t
  global-company-mode: t
  company-mode: t
  electric-pair-mode: t
  xterm-mouse-mode: t
  global-hl-todo-mode: t
  show-paren-mode: t
  savehist-mode: t
  selectrum-prescient-mode: t
  marginalia-mode: t
  page-break-lines-mode: t
  projectile-mode: t
  recentf-mode: t
  selectrum-mode: t
  save-place-mode: t
  winum-mode: t
  which-key-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-evil-matchit-mode: t
  evil-matchit-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  evil-snipe-mode: t
  evil-snipe-local-mode: t
  evil-traces-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  prescient-persist-mode: t
  xclip-mode: t
  general-override-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  straight-live-modifications-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-show hides /usr/share/emacs/site-lisp/notmuch-show
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-tree hides /usr/share/emacs/site-lisp/notmuch-tree
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-wash hides /usr/share/emacs/site-lisp/notmuch-wash
/home/mohkale/.config/emacs/lisp/straight/build/cmake-mode/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-crypto hides /usr/share/emacs/site-lisp/notmuch-crypto
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch hides /usr/share/emacs/site-lisp/notmuch
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-print hides /usr/share/emacs/site-lisp/notmuch-print
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-mua hides /usr/share/emacs/site-lisp/notmuch-mua
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-parser hides /usr/share/emacs/site-lisp/notmuch-parser
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-message hides /usr/share/emacs/site-lisp/notmuch-message
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-draft hides /usr/share/emacs/site-lisp/notmuch-draft
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-tag hides /usr/share/emacs/site-lisp/notmuch-tag
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-hello hides /usr/share/emacs/site-lisp/notmuch-hello
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-company hides /usr/share/emacs/site-lisp/notmuch-company
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-address hides /usr/share/emacs/site-lisp/notmuch-address
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-compat hides /usr/share/emacs/site-lisp/notmuch-compat
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-maildir-fcc hides /usr/share/emacs/site-lisp/notmuch-maildir-fcc
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/coolj hides /usr/share/emacs/site-lisp/coolj
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-lib hides /usr/share/emacs/site-lisp/notmuch-lib
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-query hides /usr/share/emacs/site-lisp/notmuch-query
/home/mohkale/.config/emacs/lisp/straight/build/notmuch/notmuch-jump hides /usr/share/emacs/site-lisp/notmuch-jump
/home/mohkale/.config/emacs/lisp/straight/build/jsonrpc/jsonrpc hides /usr/share/emacs/28.0.50/lisp/jsonrpc
/home/mohkale/.config/emacs/lisp/straight/build/transient/transient hides /usr/share/emacs/28.0.50/lisp/transient
/home/mohkale/.config/emacs/lisp/straight/build/xref/xref hides /usr/share/emacs/28.0.50/lisp/progmodes/xref
/home/mohkale/.config/emacs/lisp/straight/build/project/project hides /usr/share/emacs/28.0.50/lisp/progmodes/project
/home/mohkale/.config/emacs/lisp/straight/build/flymake/flymake hides /usr/share/emacs/28.0.50/lisp/progmodes/flymake
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-shen hides /usr/share/emacs/28.0.50/lisp/org/ob-shen
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-ruby hides /usr/share/emacs/28.0.50/lisp/org/ob-ruby
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-eshell hides /usr/share/emacs/28.0.50/lisp/org/ol-eshell
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-picolisp hides /usr/share/emacs/28.0.50/lisp/org/ob-picolisp
/home/mohkale/.config/emacs/lisp/straight/build/org/org-element hides /usr/share/emacs/28.0.50/lisp/org/org-element
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-octave hides /usr/share/emacs/28.0.50/lisp/org/ob-octave
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-rmail hides /usr/share/emacs/28.0.50/lisp/org/ol-rmail
/home/mohkale/.config/emacs/lisp/straight/build/org/org-entities hides /usr/share/emacs/28.0.50/lisp/org/org-entities
/home/mohkale/.config/emacs/lisp/straight/build/org/org-footnote hides /usr/share/emacs/28.0.50/lisp/org/org-footnote
/home/mohkale/.config/emacs/lisp/straight/build/org/org-plot hides /usr/share/emacs/28.0.50/lisp/org/org-plot
/home/mohkale/.config/emacs/lisp/straight/build/org/org-mouse hides /usr/share/emacs/28.0.50/lisp/org/org-mouse
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-ref hides /usr/share/emacs/28.0.50/lisp/org/ob-ref
/home/mohkale/.config/emacs/lisp/straight/build/org/org-version hides /usr/share/emacs/28.0.50/lisp/org/org-version
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-publish hides /usr/share/emacs/28.0.50/lisp/org/ox-publish
/home/mohkale/.config/emacs/lisp/straight/build/org/ol hides /usr/share/emacs/28.0.50/lisp/org/ol
/home/mohkale/.config/emacs/lisp/straight/build/org/org-timer hides /usr/share/emacs/28.0.50/lisp/org/org-timer
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-comint hides /usr/share/emacs/28.0.50/lisp/org/ob-comint
/home/mohkale/.config/emacs/lisp/straight/build/org/org-table hides /usr/share/emacs/28.0.50/lisp/org/org-table
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-docview hides /usr/share/emacs/28.0.50/lisp/org/ol-docview
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-irc hides /usr/share/emacs/28.0.50/lisp/org/ol-irc
/home/mohkale/.config/emacs/lisp/straight/build/org/org-attach hides /usr/share/emacs/28.0.50/lisp/org/org-attach
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-table hides /usr/share/emacs/28.0.50/lisp/org/ob-table
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-fortran hides /usr/share/emacs/28.0.50/lisp/org/ob-fortran
/home/mohkale/.config/emacs/lisp/straight/build/org/org-pcomplete hides /usr/share/emacs/28.0.50/lisp/org/org-pcomplete
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-sed hides /usr/share/emacs/28.0.50/lisp/org/ob-sed
/home/mohkale/.config/emacs/lisp/straight/build/org/org-clock hides /usr/share/emacs/28.0.50/lisp/org/org-clock
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-coq hides /usr/share/emacs/28.0.50/lisp/org/ob-coq
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-info hides /usr/share/emacs/28.0.50/lisp/org/ol-info
/home/mohkale/.config/emacs/lisp/straight/build/org/org-duration hides /usr/share/emacs/28.0.50/lisp/org/org-duration
/home/mohkale/.config/emacs/lisp/straight/build/org/org-protocol hides /usr/share/emacs/28.0.50/lisp/org/org-protocol
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-gnus hides /usr/share/emacs/28.0.50/lisp/org/ol-gnus
/home/mohkale/.config/emacs/lisp/straight/build/org/ob hides /usr/share/emacs/28.0.50/lisp/org/ob
/home/mohkale/.config/emacs/lisp/straight/build/org/org-goto hides /usr/share/emacs/28.0.50/lisp/org/org-goto
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-J hides /usr/share/emacs/28.0.50/lisp/org/ob-J
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-python hides /usr/share/emacs/28.0.50/lisp/org/ob-python
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-awk hides /usr/share/emacs/28.0.50/lisp/org/ob-awk
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-odt hides /usr/share/emacs/28.0.50/lisp/org/ox-odt
/home/mohkale/.config/emacs/lisp/straight/build/org/org-habit hides /usr/share/emacs/28.0.50/lisp/org/org-habit
/home/mohkale/.config/emacs/lisp/straight/build/org/org-crypt hides /usr/share/emacs/28.0.50/lisp/org/org-crypt
/home/mohkale/.config/emacs/lisp/straight/build/org/org-num hides /usr/share/emacs/28.0.50/lisp/org/org-num
/home/mohkale/.config/emacs/lisp/straight/build/org/org-lint hides /usr/share/emacs/28.0.50/lisp/org/org-lint
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-perl hides /usr/share/emacs/28.0.50/lisp/org/ob-perl
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-lisp hides /usr/share/emacs/28.0.50/lisp/org/ob-lisp
/home/mohkale/.config/emacs/lisp/straight/build/org/org-capture hides /usr/share/emacs/28.0.50/lisp/org/org-capture
/home/mohkale/.config/emacs/lisp/straight/build/org/org-macro hides /usr/share/emacs/28.0.50/lisp/org/org-macro
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-w3m hides /usr/share/emacs/28.0.50/lisp/org/ol-w3m
/home/mohkale/.config/emacs/lisp/straight/build/org/org-src hides /usr/share/emacs/28.0.50/lisp/org/org-src
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-css hides /usr/share/emacs/28.0.50/lisp/org/ob-css
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-icalendar hides /usr/share/emacs/28.0.50/lisp/org/ox-icalendar
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-dot hides /usr/share/emacs/28.0.50/lisp/org/ob-dot
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-asymptote hides /usr/share/emacs/28.0.50/lisp/org/ob-asymptote
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-mscgen hides /usr/share/emacs/28.0.50/lisp/org/ob-mscgen
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-lua hides /usr/share/emacs/28.0.50/lisp/org/ob-lua
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-eval hides /usr/share/emacs/28.0.50/lisp/org/ob-eval
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-forth hides /usr/share/emacs/28.0.50/lisp/org/ob-forth
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-sqlite hides /usr/share/emacs/28.0.50/lisp/org/ob-sqlite
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-stan hides /usr/share/emacs/28.0.50/lisp/org/ob-stan
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-org hides /usr/share/emacs/28.0.50/lisp/org/ob-org
/home/mohkale/.config/emacs/lisp/straight/build/org/org-list hides /usr/share/emacs/28.0.50/lisp/org/org-list
/home/mohkale/.config/emacs/lisp/straight/build/org/org-datetree hides /usr/share/emacs/28.0.50/lisp/org/org-datetree
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-core hides /usr/share/emacs/28.0.50/lisp/org/ob-core
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-ascii hides /usr/share/emacs/28.0.50/lisp/org/ox-ascii
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-js hides /usr/share/emacs/28.0.50/lisp/org/ob-js
/home/mohkale/.config/emacs/lisp/straight/build/org/org-archive hides /usr/share/emacs/28.0.50/lisp/org/org-archive
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-eshell hides /usr/share/emacs/28.0.50/lisp/org/ob-eshell
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-texinfo hides /usr/share/emacs/28.0.50/lisp/org/ox-texinfo
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-gnuplot hides /usr/share/emacs/28.0.50/lisp/org/ob-gnuplot
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-screen hides /usr/share/emacs/28.0.50/lisp/org/ob-screen
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-beamer hides /usr/share/emacs/28.0.50/lisp/org/ox-beamer
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-shell hides /usr/share/emacs/28.0.50/lisp/org/ob-shell
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-ditaa hides /usr/share/emacs/28.0.50/lisp/org/ob-ditaa
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-html hides /usr/share/emacs/28.0.50/lisp/org/ox-html
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-C hides /usr/share/emacs/28.0.50/lisp/org/ob-C
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-latex hides /usr/share/emacs/28.0.50/lisp/org/ob-latex
/home/mohkale/.config/emacs/lisp/straight/build/org/org-mobile hides /usr/share/emacs/28.0.50/lisp/org/org-mobile
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-io hides /usr/share/emacs/28.0.50/lisp/org/ob-io
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-tangle hides /usr/share/emacs/28.0.50/lisp/org/ob-tangle
/home/mohkale/.config/emacs/lisp/straight/build/org/org-agenda hides /usr/share/emacs/28.0.50/lisp/org/org-agenda
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-exp hides /usr/share/emacs/28.0.50/lisp/org/ob-exp
/home/mohkale/.config/emacs/lisp/straight/build/org/org-keys hides /usr/share/emacs/28.0.50/lisp/org/org-keys
/home/mohkale/.config/emacs/lisp/straight/build/org/org hides /usr/share/emacs/28.0.50/lisp/org/org
/home/mohkale/.config/emacs/lisp/straight/build/org/org-refile hides /usr/share/emacs/28.0.50/lisp/org/org-refile
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-eww hides /usr/share/emacs/28.0.50/lisp/org/ol-eww
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-hledger hides /usr/share/emacs/28.0.50/lisp/org/ob-hledger
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-lob hides /usr/share/emacs/28.0.50/lisp/org/ob-lob
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-scheme hides /usr/share/emacs/28.0.50/lisp/org/ob-scheme
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-groovy hides /usr/share/emacs/28.0.50/lisp/org/ob-groovy
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-makefile hides /usr/share/emacs/28.0.50/lisp/org/ob-makefile
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-sql hides /usr/share/emacs/28.0.50/lisp/org/ob-sql
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-emacs-lisp hides /usr/share/emacs/28.0.50/lisp/org/ob-emacs-lisp
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-ebnf hides /usr/share/emacs/28.0.50/lisp/org/ob-ebnf
/home/mohkale/.config/emacs/lisp/straight/build/org/org-loaddefs hides /usr/share/emacs/28.0.50/lisp/org/org-loaddefs
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-ledger hides /usr/share/emacs/28.0.50/lisp/org/ob-ledger
/home/mohkale/.config/emacs/lisp/straight/build/org/org-faces hides /usr/share/emacs/28.0.50/lisp/org/org-faces
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-md hides /usr/share/emacs/28.0.50/lisp/org/ox-md
/home/mohkale/.config/emacs/lisp/straight/build/org/org-colview hides /usr/share/emacs/28.0.50/lisp/org/org-colview
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-sass hides /usr/share/emacs/28.0.50/lisp/org/ob-sass
/home/mohkale/.config/emacs/lisp/straight/build/org/org-inlinetask hides /usr/share/emacs/28.0.50/lisp/org/org-inlinetask
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-matlab hides /usr/share/emacs/28.0.50/lisp/org/ob-matlab
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-ocaml hides /usr/share/emacs/28.0.50/lisp/org/ob-ocaml
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-maxima hides /usr/share/emacs/28.0.50/lisp/org/ob-maxima
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-vala hides /usr/share/emacs/28.0.50/lisp/org/ob-vala
/home/mohkale/.config/emacs/lisp/straight/build/org/org-indent hides /usr/share/emacs/28.0.50/lisp/org/org-indent
/home/mohkale/.config/emacs/lisp/straight/build/org/org-tempo hides /usr/share/emacs/28.0.50/lisp/org/org-tempo
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-abc hides /usr/share/emacs/28.0.50/lisp/org/ob-abc
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-plantuml hides /usr/share/emacs/28.0.50/lisp/org/ob-plantuml
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-haskell hides /usr/share/emacs/28.0.50/lisp/org/ob-haskell
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-latex hides /usr/share/emacs/28.0.50/lisp/org/ox-latex
/home/mohkale/.config/emacs/lisp/straight/build/org/org-id hides /usr/share/emacs/28.0.50/lisp/org/org-id
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-bbdb hides /usr/share/emacs/28.0.50/lisp/org/ol-bbdb
/home/mohkale/.config/emacs/lisp/straight/build/org/org-ctags hides /usr/share/emacs/28.0.50/lisp/org/org-ctags
/home/mohkale/.config/emacs/lisp/straight/build/org/org-install hides /usr/share/emacs/28.0.50/lisp/org/org-install
/home/mohkale/.config/emacs/lisp/straight/build/org/org-feed hides /usr/share/emacs/28.0.50/lisp/org/org-feed
/home/mohkale/.config/emacs/lisp/straight/build/org/org-attach-git hides /usr/share/emacs/28.0.50/lisp/org/org-attach-git
/home/mohkale/.config/emacs/lisp/straight/build/org/org-macs hides /usr/share/emacs/28.0.50/lisp/org/org-macs
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-java hides /usr/share/emacs/28.0.50/lisp/org/ob-java
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-mhe hides /usr/share/emacs/28.0.50/lisp/org/ol-mhe
/home/mohkale/.config/emacs/lisp/straight/build/org/org-compat hides /usr/share/emacs/28.0.50/lisp/org/org-compat
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-calc hides /usr/share/emacs/28.0.50/lisp/org/ob-calc
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-clojure hides /usr/share/emacs/28.0.50/lisp/org/ob-clojure
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-R hides /usr/share/emacs/28.0.50/lisp/org/ob-R
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-processing hides /usr/share/emacs/28.0.50/lisp/org/ob-processing
/home/mohkale/.config/emacs/lisp/straight/build/org/ol-bibtex hides /usr/share/emacs/28.0.50/lisp/org/ol-bibtex
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-man hides /usr/share/emacs/28.0.50/lisp/org/ox-man
/home/mohkale/.config/emacs/lisp/straight/build/org/ob-lilypond hides /usr/share/emacs/28.0.50/lisp/org/ob-lilypond
/home/mohkale/.config/emacs/lisp/straight/build/org/ox-org hides /usr/share/emacs/28.0.50/lisp/org/ox-org
/home/mohkale/.config/emacs/lisp/straight/build/org/ox hides /usr/share/emacs/28.0.50/lisp/org/ox
/home/mohkale/.config/emacs/lisp/straight/build/let-alist/let-alist hides /usr/share/emacs/28.0.50/lisp/emacs-lisp/let-alist
/home/mohkale/.config/emacs/lisp/straight/build/eldoc/eldoc hides /usr/share/emacs/28.0.50/lisp/emacs-lisp/eldoc

Features:
(shadow sort +org-ref-consult-cite org-ref-ivy-cite ivy delsel ivy-faces
ivy-overlay colir org-ref org-ref-helm-bibtex package url-handlers
org-ref-helm helm-bibtex bibtex-completion +org-capture doct org-capture
biblio biblio-download biblio-dissemin biblio-ieee biblio-hal
biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi biblio-core
ido helm-files filenotify helm-buffers helm-occur helm-tags helm-locate
helm-grep helm-regexp helm-utils helm-types helm-net helm-help helm
async-bytecomp helm-global-bindings helm-easymenu helm-source
helm-multi-match helm-lib async helm-config org-ref-core reftex-cite
reftex reftex-loaddefs reftex-vars org-ref-glossary 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 org-refile
ox-html table ox-ascii ox-publish ox org-ref-bibtex org-link-minor-mode
org-ref-citeproc key-chord hydra lv doi-utils org-ref-utils org-ref-pdf
url-http url-auth url-gw nsm htmlize company-org-block ob-R ob-shell
ob-sed ob-ruby ob-python python tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat ls-lisp ob-plantuml ob-ditaa
ob-js ob-java ob-latex ob-haskell ob-C cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-awk
vc-git vc-dispatcher org-superstar org-appear laas yasnippet
company-bibtex parsebib texmathp aas org-element ol-eww eww xdg
url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu mml2015
mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse url-vars mailcap gnus-group gnus-undo
gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7
netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win gnus
nnheader ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex
iso8601 ol-bbdb ol-w3m ol-doi org-link-doi ol-notmuch ol-man org-eldoc
org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote
org-src ob-comint org-pcomplete org-list org-faces org-entities noutline
outline org-version ob-emacs-lisp ob-core ob-eval org-table org-keys
org-loaddefs cal-menu calendar cal-loaddefs ol org-compat org-macs
format-spec avl-tree generator mail-extr emacsbug message rmc puny
+dired-bindings dired dired-loaddefs rfc822 mml mml-sec epa epg
epg-config gnus-util rmail rmail-loaddefs auth-source eieio eieio-core
eieio-loaddefs password-cache mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils mule-util time-date winner
evil-anzu anzu company-abbrev company-yasnippet company-files
company-prescient company-capf company elec-pair an-old-hope-theme
evil-terminal-cursor-changer color xt-mouse term/tmux emojify apropos
tar-mode arc-mode archive-mode ht disp-table paredit vimish-fold hl-todo
rainbow-delimiters hl-line paren savehist selectrum-prescient selectrum
minibuf-eldef crm marginalia editorconfig-core editorconfig-core-handle
editorconfig-fnmatch page-break-lines display-line-numbers linum
whitespace +projectile-project-types projectile grep compile
text-property-search ibuf-ext all-the-icons-ibuffer ibuffer
ibuffer-loaddefs ebib-autoloads company-bibtex-autoloads
gitattributes-mode-autoloads gitconfig-mode-autoloads
gitignore-mode-autoloads rustic-autoloads xterm-color-autoloads
spinner-autoloads go-mode-autoloads derived typescript-mode-autoloads
xref-js2-autoloads js2-refactor-autoloads multiple-cursors-autoloads
js-doc-autoloads js2-mode-autoloads modern-cpp-font-lock-autoloads
cmake-mode-autoloads gh-md-autoloads markdown-toc-autoloads
logview-autoloads datetime-autoloads extmap-autoloads
ssh-config-mode-autoloads company-shell-autoloads csv-mode-autoloads
yaml-mode-autoloads sqlup-mode-autoloads vimrc-mode-autoloads
json-mode-autoloads json-snatcher-autoloads json-reformat-autoloads
haml-mode-autoloads web-beautify-autoloads company-web-autoloads
web-completion-data-autoloads emmet-mode-autoloads web-mode-autoloads
ruby-electric-autoloads bundler-autoloads ruby-tools-autoloads
inf-ruby-autoloads yapfify-autoloads pip-requirements-autoloads
py-isort-autoloads pyimport-autoloads shut-up-autoloads
paredit-autoloads crystal-mode-autoloads vdiff-autoloads
rainbow-mode-autoloads tree-sitter-langs-autoloads tree-sitter-autoloads
tsc-autoloads skeletor-autoloads notmuch-autoloads forge-autoloads
markdown-mode-autoloads ghub-autoloads treepy-autoloads closql-autoloads
magit-gitflow-autoloads magit-popup-autoloads magit-todos-autoloads
link-hint-autoloads flycheck json map find-func engine-mode-autoloads
eglot-autoloads project-autoloads xref-autoloads flymake-autoloads
eldoc-autoloads jsonrpc-autoloads edit-server-htmlize-autoloads
edit-server-autoloads nerd-fonts nerd-fonts-data all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons dashboard dashboard-widgets
time recentf tree-widget wid-edit dashboard-autoloads
consult-flycheck-autoloads flycheck-autoloads embark-consult-autoloads
consult-autoloads embark-autoloads marginalia-autoloads
selectrum-prescient-autoloads selectrum-autoloads vline-autoloads server
saveplace let-alist pcase smtpmail-multi-autoloads
imenu-anywhere-autoloads imenu-list-autoloads
ibuffer-projectile-autoloads ibuffer-tramp-autoloads
ibuffer-vc-autoloads ibuf-macs all-the-icons-ibuffer-autoloads
flyspell-correct-autoloads dired-git-info-autoloads
all-the-icons-dired-autoloads +comint-bindings laas-autoloads
auctex-autoloads tex-site aas-autoloads auto-yasnippet-autoloads
yasnippet-autoloads winum winum-autoloads which-key which-key-autoloads
visible-mark-autoloads uuidgen-autoloads undo-tree diff
undo-tree-autoloads rainbow-delimiters-autoloads
transpose-frame-autoloads sudo-edit-autoloads real-auto-save-autoloads
projectile-autoloads pkg-info-autoloads epl-autoloads
persp-mode-autoloads pcre2el-autoloads page-break-lines-autoloads
miniedit-autoloads lorem-ipsum-autoloads ialign-autoloads
pretty-hydra-autoloads hl-todo-autoloads hide-mode-line-autoloads
help-fns+-autoloads git-link-autoloads eyebrowse-autoloads
company-emoji-autoloads emojify-autoloads ht-autoloads
drag-stuff-autoloads define-word-autoloads buffer-move-autoloads
nerd-fonts-autoloads all-the-icons-autoloads company-prescient-autoloads
org-appear-autoloads org-link-minor-mode-autoloads org-ref-autoloads
pdf-tools-autoloads tablist-autoloads key-chord-autoloads
hydra-autoloads lv-autoloads ivy-autoloads helm-bibtex-autoloads
bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads
let-alist-autoloads parsebib-autoloads helm-autoloads
helm-core-autoloads popup-autoloads async-autoloads htmlize-autoloads
org-roam-server-autoloads simple-httpd-autoloads org-roam-autoloads
emacsql-sqlite-autoloads emacsql-autoloads company-org-block-autoloads
company-autoloads org-fragtog-autoloads doct-autoloads magit-autoloads
magit-section-autoloads git-commit-autoloads with-editor-autoloads
transient-autoloads org-contrib-autoloads org-superstar-mode-autoloads
evil-matchit evil-matchit-sdk evil-surround evil-snipe diff-mode
evil-traces evil evil-keybindings evil-integration evil-maps
evil-commands reveal flyspell ispell evil-jumps evil-command-window
evil-types evil-search evil-ex shell pcomplete comint ansi-color
evil-macros evil-repeat evil-states evil-core advice evil-common
windmove calc calc-loaddefs calc-macs thingatpt rect evil-digraphs
evil-vars ring vimish-fold-autoloads evil-easymotion-autoloads
avy-autoloads evil-args-autoloads evil-traces-autoloads
evil-multiedit-autoloads iedit-autoloads evil-snipe-autoloads
evil-numbers-autoloads evil-terminal-cursor-changer-autoloads
evil-anzu-autoloads anzu-autoloads evil-surround-autoloads
evil-matchit-autoloads evil-autoloads goto-chg-autoloads prescient
prescient-autoloads orderless orderless-autoloads editorconfig
editorconfig-autoloads persistent-scratch-autoloads spaceleader-base
spaceleader edmacro kmacro bind-map spaceleader-autoloads
bind-map-autoloads xclip xclip-autoloads term/xterm xterm f f-autoloads
s s-autoloads dash dash-autoloads diminish diminish-autoloads delight
delight-autoloads general general-autoloads finder-inf use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core
use-package-autoloads bind-key-autoloads straight-autoloads info
straight comp comp-cstr warnings cl-seq cl-macs cl-extra help-mode seq
byte-opt gv cl-loaddefs cl-lib bytecomp byte-compile cconv subr-x
+config +config-default rx iso-transl tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type 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 elisp-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 lcms2
dynamic-setting font-render-setting cairo move-toolbar gtk x-toolkit x
multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 876130 566055)
 (symbols 48 54191 75)
 (strings 32 263318 107876)
 (string-bytes 1 8899432)
 (vectors 16 117610)
 (vector-slots 8 4199440 634217)
 (floats 8 1601 1584)
 (intervals 56 4226 113)
 (buffers 992 12))





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#48901: [kisara.moe] 28.0.50; Support text-based fringe contents alongside bitmaps
  2021-06-07 13:30 bug#48901: [kisara.moe] 28.0.50; Support text-based fringe contents alongside bitmaps mohsin kaleem
@ 2021-06-07 13:42 ` Eli Zaretskii
  2021-06-15 22:10   ` bug#48901: [kisara.moe] Re: [kisara.moe] " Mohsin Kaleem
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2021-06-07 13:42 UTC (permalink / raw)
  To: mohsin kaleem; +Cc: 48901

> From: mohsin kaleem <mohkale@kisara.moe>
> Date: Mon, 07 Jun 2021 14:30:23 +0100
> 
> 
> This is more a feature request than a bug-report. At the moment the
> recommended way to show extra information about certain lines in a
> buffer is the fringe. This is done by defining a fringe-bitmap and then
> having that render onto the fringe, however this is a graphical
> only solution and terminal frames don't support this. Some packages such
> as flycheck let you work around this by rendering what you would've
> rendered on the frame, onto the margin which supports rendering regular
> strings (alongside any other string-properties such as faces) that can
> be visible in both terminal and GUI frames.
> However as a solution that isn't ideal, for one margins weren't designed
> for this purpose and for another there doesn't seem to be a way to set
> the background or other properties of a margin to make it resemble the
> fringe (in my case I'd like the background of the margin to match
> the fringe background but only for the left margin where I will show the
> fringe indicators). There's also the issue with interference between
> this representation and other packages such as olivetti that use the
> margin to center text.
> I'd like to recommend we support rendering both text and bitmaps onto
> the fringe, rendering nothing (or perhaps a block element) if a package
> tries to render a bitmap on a terminal frame.

Sorry, I don't understand: you begin by saying that fringe bitmaps
have a disadvantage for TTY frames, and end by requesting a different
features with the same disadvantage?  Or what did I miss?





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#48901: [kisara.moe] Re: [kisara.moe] Re: bug#48901: [kisara.moe] 28.0.50; Support text-based fringe contents alongside bitmaps
  2021-06-07 13:42 ` Eli Zaretskii
@ 2021-06-15 22:10   ` Mohsin Kaleem
  2021-06-16 15:01     ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Mohsin Kaleem @ 2021-06-15 22:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 48901

Eli Zaretskii <eliz@gnu.org> writes:

>> From: mohsin kaleem <mohkale@kisara.moe>
>> Date: Mon, 07 Jun 2021 14:30:23 +0100
>> 
>> 
>> This is more a feature request than a bug-report. At the moment the
>> recommended way to show extra information about certain lines in a
>> buffer is the fringe. This is done by defining a fringe-bitmap and then
>> having that render onto the fringe, however this is a graphical
>> only solution and terminal frames don't support this. Some packages such
>> as flycheck let you work around this by rendering what you would've
>> rendered on the frame, onto the margin which supports rendering regular
>> strings (alongside any other string-properties such as faces) that can
>> be visible in both terminal and GUI frames.
>> However as a solution that isn't ideal, for one margins weren't designed
>> for this purpose and for another there doesn't seem to be a way to set
>> the background or other properties of a margin to make it resemble the
>> fringe (in my case I'd like the background of the margin to match
>> the fringe background but only for the left margin where I will show the
>> fringe indicators). There's also the issue with interference between
>> this representation and other packages such as olivetti that use the
>> margin to center text.
>> I'd like to recommend we support rendering both text and bitmaps onto
>> the fringe, rendering nothing (or perhaps a block element) if a package
>> tries to render a bitmap on a terminal frame.
>
> Sorry, I don't understand: you begin by saying that fringe bitmaps
> have a disadvantage for TTY frames, and end by requesting a different
> features with the same disadvantage?  Or what did I miss?

Dear Eli,

Apologies I seem to have misunderstood the usage or implementation of
fringes vs. margins.
In retrospect the distinction isn't all that important.
I've tried using the margin based approach for the past few days and
the only issue I still have left is that there's no-way to specify the
default face for the margin (something akin to the `fringe' face).
Ideally I'd like to be able to do so separately for the left and right
margins (as I really only intend to use one of them), but otherwise the
rest of the issues I raised in my original email can be disregarded.

What are your thoughts on having a dedicated face for the margin?

Thank you,

---
Mohsin K.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#48901: [kisara.moe] Re: [kisara.moe] Re: bug#48901: [kisara.moe] 28.0.50; Support text-based fringe contents alongside bitmaps
  2021-06-15 22:10   ` bug#48901: [kisara.moe] Re: [kisara.moe] " Mohsin Kaleem
@ 2021-06-16 15:01     ` Eli Zaretskii
       [not found]       ` <875yxpla3r.fsf@kisara.moe>
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2021-06-16 15:01 UTC (permalink / raw)
  To: Mohsin Kaleem; +Cc: 48901

> From: Mohsin Kaleem <mohkale@kisara.moe>
> Cc: 48901@debbugs.gnu.org
> Date: Tue, 15 Jun 2021 23:10:33 +0100
> 
> What are your thoughts on having a dedicated face for the margin?

Lisp programs display in the margins by putting string-valued
properties on buffer text.  While doing that, how hard is it to
specify the face for those strings? it's just one call to 'propertize'
away.

By default, the text displayed in the margins inherits the face of the
text on which you put the corresponding properties, right?  Why isn't
that a good default?





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#48901: [kisara.moe] Re: [kisara.moe] Re: [kisara.moe] Re: [kisara.moe] Re: bug#48901: [kisara.moe] 28.0.50; Support text-based fringe contents alongside bitmaps
       [not found]       ` <875yxpla3r.fsf@kisara.moe>
@ 2021-07-05 11:43         ` Eli Zaretskii
  0 siblings, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2021-07-05 11:43 UTC (permalink / raw)
  To: Mohsin Kaleem; +Cc: 48901

[Please always use Reply All to keep the bug address on the CC list.]

> From: Mohsin Kaleem <mohkale@kisara.moe>
> Date: Mon, 05 Jul 2021 04:20:56 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Mohsin Kaleem <mohkale@kisara.moe>
> >> Cc: 48901@debbugs.gnu.org
> >> Date: Tue, 15 Jun 2021 23:10:33 +0100
> >> 
> >> What are your thoughts on having a dedicated face for the margin?
> >
> > Lisp programs display in the margins by putting string-valued
> > properties on buffer text.  While doing that, how hard is it to
> > specify the face for those strings? it's just one call to 'propertize'
> > away.
> >
> > By default, the text displayed in the margins inherits the face of the
> > text on which you put the corresponding properties, right?  Why isn't
> > that a good default?
> 
> I understand that but I still think there should be a built-in face that
> these other margin faces can inherit from.
> At the moment for example `diff-hl-mode` uses `diff-hl-margin-change`,
> and several other faces for the margin indicators. I've set these up to
> inherit from my `fringe` face so where diff-hl-mode attaches a margin
> indicator it looks like its on the fringe. However where it doesn't no
> default margin face exists so diff-hl-mode just applies the `default`
> face which looks out of place alongside margin faces.
> Now of course I could send a PR over to diff-hl-mode to ask them to let
> me specify a face for sections that don't have anything diff-hl needs to
> highlight, but then I'd have to do the same for every other package that
> does something like this for the margin; admittedly I only know of 2
> such packages atm so it's manageable, however a built in default face to
> inherit from seems to me like the best way to do this.

What you ask for might not be easy to implement.  AFAIR, Emacs
determines the face of the characters before it knows where they will
be displayed.  Since the text on the margins is displayed using text
or overlay properties similar to other uses of these properties, by
the time Emacs knowns some text needs to be displayed on the margin
it's too late: the face has been already merged.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-07-05 11:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-07 13:30 bug#48901: [kisara.moe] 28.0.50; Support text-based fringe contents alongside bitmaps mohsin kaleem
2021-06-07 13:42 ` Eli Zaretskii
2021-06-15 22:10   ` bug#48901: [kisara.moe] Re: [kisara.moe] " Mohsin Kaleem
2021-06-16 15:01     ` Eli Zaretskii
     [not found]       ` <875yxpla3r.fsf@kisara.moe>
2021-07-05 11:43         ` bug#48901: [kisara.moe] Re: [kisara.moe] " Eli Zaretskii

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).