memory-leaks

Still reachable: lots of words in many pages.
git clone https://git.kevinlegouguec.net/memory-leaks
Log | Files | Refs | README | LICENSE

bulk.md (7131B)


      1 Barely structured notes about issues I find.  Occasionally promoted to
      2 [tracker.org](./tracker.org), but mostly forgotten; the main goal is to get stuff
      3 out of my system.
      4 
      5 # Emacs
      6 
      7 - center/top point when
      8     - moving to text/tag search hit
      9     - going to man page section
     10     - opening eww on an anchor
     11     - visiting a function from its Help buffer
     12 - scroll-lock-mode
     13     - cursor stuck on lines wrapped by visual-line-mode
     14     - cursor stuck on lines taller than regular height (see maybe
     15       bug#36421?)
     16     - scroll when going down newline with forward-…
     17 - matching-paren analysis fails: `;; (here is\n;; a comment)`
     18 - some modes redefine C-M-h, which makes this binding hard to
     19   override; could mark-defun consult functions/values exposed by major
     20   modes instead?
     21 - Man-mode: make isearch skip end-of-line hyphens
     22 - when opening `.gpg` files in a TTY, some characters (e.g. TAB) are
     23   swallowed by Emacs instead of being forwarded to the gpg prompt;
     24   these characters are then inserted in the decrypted file's buffer
     25   (see `epa-file-insert-file-contents`)
     26 - let TRAMP fetch Google Drive credentials from .authinfo.gpg
     27 - calendar uses default X resources when run in its own frame; see
     28   `calendar-frame-parameters`, `x-handle-named-frame-geometry`,
     29   `(make-frame '((name . "")))` vs `(make-frame '((title . "")))`
     30 - use compilation-mode-line-… faces for compilation-num-… indicators
     31 - "é" is not erased with a single DEL stroke, despite [Unicode
     32   conventions]
     33 - sort tar archive members by name; serving suggestion:
     34 
     35     ``` elisp
     36     (defun my/tar-sort (info)
     37       (sort info (lambda (a b) (string< (tar-header-name a) (tar-header-name b)))))
     38     ;; Apply to tar-parse-info in tar-summarize-buffer.
     39     ```
     40 
     41 - add a command or minor mode to highlight marks; serving suggestion:
     42 
     43     ``` elisp
     44     (save-excursion
     45       (dolist (m mark-ring)
     46         (goto-char (marker-position m))
     47         (pulse-momentary-highlight-region (point) (point-at-eol))
     48         (sit-for 0.1)))
     49     ```
     50 
     51 - StackOverflow-like suggestions when reporting bugs
     52 - make vc honour `.gitignore` so that `project-find-file` completion
     53   is not cluttered with ignored files
     54 - in a folder with a .git folder and a .gitignore file,
     55     - `C-x C-f .gi TAB` completes to .gitignore
     56     - `C-x C-f .git TAB` says "not unique"
     57 - add some Custom machinery to save additions/removals to list
     58   variables; as things stand, once I add/remove items and save the
     59   variable, I miss out on changes to the variable's default value:
     60   e.g. `git-commit-setup-hook` recently added `bug-reference-mode`,
     61   but I never realized it because I customized the hook to add some
     62   personal functions
     63 - some bindings advertised by `describe-mode` in texinfo-mode are
     64   invalid:
     65     - `C-c C-s` runs `Texinfo-insert-node` instead of
     66       `texinfo-show-structure`
     67     - `C-c C-e` runs `Texinfo-environment` instead of being a prefix
     68       command for `texinfo-format-{buffer,region}`
     69 - when truncating long lines and auto-filling, if the window is
     70   narrower than (- fill-column hscroll-margin), horizontal scrolling
     71   kicks in before the line is auto-filled; the window (or the current
     72   line, depending on auto-hscroll-mode) remains horizontally stuck to
     73   the right even though auto-filling made the line short enough to
     74   display without hscroll
     75 
     76 [Unicode conventions]: https://lists.gnu.org/archive/html/emacs-devel/2018-07/msg00961.html
     77 
     78 ## Dired
     79 
     80 - allow "columns" to be toggled; more specifically, make it possible
     81   to hide ownership, permissions, number of hard links…
     82 
     83 - make the filename stand out
     84 
     85 - `% r` does not support some `\` constructs (`\#`, `\,`)
     86 
     87 - add a face for broken symbolic links
     88 
     89 ## Org
     90 
     91 - dissociate sub- and super-script fontification from everything else
     92   in org-toggle-pretty-entities
     93 
     94 - make org-ctrl-c-ctrl-c or org-clock-in call
     95   `(org-clock-update-mode-line t)` when point is on the clocked-in
     96   heading
     97 
     98 - new command `org-clock-in-late` to clock out x minutes ago from
     99   previous task, and clock in x ago on task at point
    100 
    101 - the org-hide face is computed when org-mode is activated;
    102   customizing the default background makes it obsolete until the mode
    103   is reverted
    104 
    105 ## read-passwd
    106 
    107 - prevent kills from ending up in the clipboard
    108 
    109 ## whitespace-mode
    110 
    111 - skip line/wrap-prefix variables and properties
    112 
    113 - highlights the adaptive-wrap prefix, although weirdly enough the
    114   whitespace *faces* are not applied
    115 
    116 - in org-indent-mode, adds a spurious (unfaced) space marker before
    117   paragraphs; somehow transient-mark-mode knows not to highlight this
    118   space, maybe the answer lies there
    119 
    120 ## Ellipses customization
    121 
    122 Make ellipses for "invisible" text easily customizable (src/xdisp.c).
    123 Make them default to "…" when `(char-displayable-p ?…)`.
    124 
    125 Use-cases:
    126 
    127 - ibuffer truncation
    128 - hideshow
    129 - outline (org)
    130 - rgrep
    131 - magit-process
    132 
    133 ## xref
    134 
    135 - defun-building macros seem hard to understand for xref: e.g. `M-.`
    136   on `rg` does not jump to `rg-define-search rg`
    137 
    138 ## External libraries
    139 
    140 ### debbugs
    141 
    142 - asynchronous bug fetching
    143 
    144 ### magit
    145 
    146 - customize current-tag function so that one can add `--first-parent`
    147 - prevent section highlight overlay from hiding tag face background
    148 - when quitting ediff conflict resolution, the "save buffer" prompt is
    149   out of focus, one must ALT-TAB out of the ediff control panel first
    150   (noticed in Emacs 27; 25.1 works fine); possible culprits:
    151     - magit
    152     - ediff
    153     - smerge
    154     - yes-or-no-p
    155     - read-answer
    156 - make status buffer understand and display `typechange` e.g. when
    157   replacing a replacing a regular file with a symlink
    158 - when ignoring a file in a subdirectory, magit attempts to
    159   `git add .gitignore` (i.e. toplevel `.gitignore`), which fails
    160 - for repos with dozens of old branches, it would be nice to have a
    161   way to hide or distinguish "stale" branches from active ones, a la
    162   <https://emba.gnu.org/emacs/emacs/branches>
    163 
    164 #### transient
    165 
    166 - cannot use the full domain of `--find-renames` (e.g. 1%)
    167 
    168 ### markdown-mode
    169 
    170 - support [shortcut reference links]
    171 - move point past header after C-c C-t !/@
    172 - update sub-superscript regex to allow L~i+1~
    173 - make justification work with indented blockquotes
    174 - add "ini ↦ conf-mode" to markdown-code-lang-modes
    175 
    176 [shortcut reference links]: http://spec.commonmark.org/0.27/#shortcut-reference-link
    177 
    178 ### page-break-lines
    179 
    180 - borked when `^L` does not appear on a line of its own:
    181     - diff buffers (including magit-diff)
    182     - help buffers showing string variables containing a form feed
    183       (e.g. `paragraph-separate`)
    184 
    185 ### diff-hl
    186 
    187 - colored fringe line is discontinued on lines featuring faces with
    188   heights greater than 1
    189 
    190   ``` shell
    191   $ git init
    192   $ echo "* foo" > README.org
    193   $ git add README.org ; git commit -m README.org README.org
    194   $ echo "* bar" >> README.org
    195   $ echo "* baz" >> README.org
    196   ```
    197 
    198   ``` elisp
    199   (load-file "…/diff-hl.el")
    200   (global-diff-hl-mode)
    201   (set-face-attribute 'org-level-1 nil :height 1.2)
    202   (find-file "README.org")
    203   ```
    204 
    205 - hides left line-truncation marker
    206 
    207 ### wgrep
    208 
    209 `C-c C-d` (`wgrep-mark-deletion`) could move to the next line, just
    210 like `d` moves to the next line in Dired buffers.