tracker.org (45140B)
1 Since my contributions to "GNU Emacs" are spread over multiple 2 repositories and bug tracking systems, I figured I would aggregate 3 them in my own "tracker". This allows me to keep track of what I'm 4 working on; it can also double as a [[https://jvns.ca/blog/brag-documents/][brag document]] when filtered on 5 =PatchApplied= properties. 6 7 Speaking of properties, here is the method to the madness: 8 9 - =Role= :: 10 - =author= :: for topics I raised, 11 - =watcher= :: issues reported by someone else… 12 - I have taken a stab at, 13 - I could take a stab at, if time permits, 14 - I'll tip my hat to whoever solves it, 15 - =PatchApplied= :: whether my patches were applied, 16 - =TestAdded= :: whether I added a unit test, 17 - =Kudos= :: bragging is all well and good, but there's also tons of 18 helpful folks who deserve thanks. Syntax: =CREDIT[&CREDIT…]= 19 - =CREDIT= :: =WHOM[,WHAT[,HOW]]= 20 - =WHOM= :: handle for the credited person; based on (in no 21 particular order) signature, =From= display name or address 22 local part, forge nickname 23 - =WHAT= :: gerund 24 - =HOW= :: =REPO:REVISION= 25 * GNU Emacs 26 ** Build process 27 *** Dump 28 **** DONE [[bug:38492]] Warn pdumper users when pure space has been overflowed 29 :PROPERTIES: 30 :Role: author 31 :Kudos: eliz,fixing 32 :END: 33 *** LEIM 34 **** DONE [[bug:54816]] Silent "Compiler-macro error for cl-member" when building from scratch 35 :PROPERTIES: 36 :Role: author 37 :PatchApplied: t 38 :END: 39 ** Core 40 *** Buffers 41 **** {same,other}-{frame,tab,window}-prefix vs popups 42 ***** TODO directory/file-local validation prompt 43 ***** TODO transient 44 *** Display 45 **** Cairo support 46 ***** DONE [[bug:35781]] Improve font display on Cairo builds 47 :PROPERTIES: 48 :Role: author 49 :Kudos: YAMAMOTO Mitsuharu,fixing 50 :END: 51 ***** DONE [[bug:35871]] Fix SVG transparency with Cairo 52 :PROPERTIES: 53 :Role: author 54 :Kudos: YAMAMOTO Mitsuharu,fixing 55 :END: 56 **** Fonts 57 ***** TODO Rank candidate fonts consistently wrt. their version field 58 I sometimes have two versions of a font installed, e.g. the 59 distro-provided one, plus an upstream one tucked in =~/.local=. 60 61 Emacs seems to not use the same heuristics as fontconfig's ~fc-match~, 62 and sometimes picks the older version. 63 64 No bug filed yet; discussed first on [[https://lists.gnu.org/archive/html/help-gnu-emacs/2022-01/msg00042.html][help-gnu-emacs]] and [[https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00725.html][emacs-devel]], 65 then brought up on the [[https://lists.freedesktop.org/archives/fontconfig/2022-January/006859.html][fontconfig mailing list]]. Tentative conclusion: 66 fontconfig's ~fc-match~ seems to take =FC_FONTVERSION= into account 67 when ranking fonts; it'd be nice if Emacs's ~find-font~ did so too. 68 **** "Pure GTK" port 69 ***** DONE [[https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg01845.html][emacs-devel:<87wnk0wyi7.fsf@gmail.com>]] Let =--with-webp= work with =--with-pgtk= 70 :PROPERTIES: 71 :Role: author 72 :PatchApplied: t 73 :END: 74 ***** TODO [[bug:52795]] [[bug:56653]] =S-SPC= recognized as =SPC= 75 Reported multiple times; see merged bug reports. Something in the 76 bowels of =GtkIMContext=. Emacs's PGTK code does this: 77 78 #+begin_src c 79 /* pgtkterm.c: key_press_event */ 80 if (pgtk_im_filter_keypress (f, &event->key)) 81 return TRUE; 82 /* else keep processing */ 83 #+end_src 84 85 Input methods seem to accept =S-SPC= and call 86 =pgtkim.c:im_context_commit_cb= with the string =" "=, thereby losing 87 the information that we have a shift modifier. 88 89 Debugging notes on Debian 11 (GTK 3.24.24) using [[./pgtk-shift-space.c][this small 90 reproducer]]: 91 92 #+begin_src sh 93 gcc -g $(pkg-config --cflags gtk+-3.0) pgtk-shift-space.c $(pkg-config --libs gtk+-3.0) 94 export DEBUGINFOD_URLS=https://debuginfod.debian.net 95 #+end_src 96 97 Then break on =show_commit=, and help GDB find GTK code with 98 ~directory […gtk-3.24.24 checkout…]/gtk~. 99 100 =gtkimcontextsimple.c:no_sequence_matches= is the last frame to know 101 about the =GdkEventKey= event that includes the shift modifier; so 102 presumably that function should refrain from calling 103 =gtkimcontextsimple.c:gtk_im_context_simple_commit_char= if it sees 104 modifiers? 105 106 Or =pgtkim.c:im_context_commit_cb= should check its context and 107 refrain from enqueueing =" "=; there is no straightforward way for 108 that function to signal =pgtkterm.c:key_press_event= that the IM 109 commit was "aborted" though… 110 **** DONE [[bug:41584]] org-indent-mode's line-prefix text property flickers near overlays 111 :PROPERTIES: 112 :Role: author 113 :Kudos: eliz,fixing 114 :END: 115 First reported as [[https://github.com/dgutov/diff-hl/issues/142][dgutov/diff-hl#142]]. 116 **** TODO [[bug:52983]] Implement visual-fill-column equivalent in display engine 117 The status quo is disheartening: 118 119 - hard-wrapping is illegible in narrow windows, 120 - soft-wrapping is illegible in wide windows. 121 122 This feature would allow unwrapped text to have a reasonable upper 123 limit on line length, with smart wrapping prefixes using 124 =adaptive-wrap=; even hard-wrapped text would not look /too/ ugly in 125 narrow windows. 126 **** TODO Line height changes depending on visible characters 127 E.g. with wide Org tables and ~truncate-lines~ enabled, if the 128 ~org-table~ face is set to a smaller height, then scrolling 129 horizontally makes the lines "shake" because the final newline does 130 not have the ~org-table~ face, and is thus taller. 131 132 Not sure what the right approach is: 133 1. ask Org to fontify the final newline, 134 2. ask display engine to consider the whole line to compute the height 135 3. ask display engine to ignore the newline to compute the height 136 **** HiDPI 137 ***** TODO Scale UI elements 138 On HiDPI displays, various elements (fringe bitmaps, fringe width, 139 underline, strikethrough) are tiny. 140 ***** DONE Heed scaling changes 141 :PROPERTIES: 142 :Kudos: Po Lu,fixing,emacs.git:b18d4dbe0d 143 :END: 144 Changing the desktop's DPI scaling (which in my use-case happens 145 whenever I hit my KVM's switch) causes a running Emacs's default face 146 to become either huge or tiny. 147 *** Input 148 **** TODO Translate unshifted keys to shifted if no bindings are found 149 To make =C-x [0-9]= more accessible on AZERTY. Firefox does this, cf 150 [[https://hg.mozilla.org/mozilla-unified/file/FIREFOX_80_0_1_RELEASE/widget/gtk/nsGtkKeyUtils.cpp#l1207][here]]: 151 152 #+begin_src cpp 153 // Retry with shifted keycode. 154 guint shiftState = (baseState | keymapWrapper->GetModifierMask(SHIFT)); 155 uint32_t shiftedChar = keymapWrapper->GetCharCodeFor(aGdkKeyEvent, shiftState, 156 aGdkKeyEvent->group); 157 if (IsBasicLatinLetterOrNumeral(shiftedChar)) { 158 // A shifted character can be an ASCII alphabet on Hebrew keyboard 159 // layout. And also shifted character can be an ASCII numeric on 160 // AZERTY keyboad layout. Then, it's a good hint for deciding our 161 // keyCode. 162 return WidgetUtils::ComputeKeyCodeFromChar(shiftedChar); 163 } 164 #+end_src 165 166 and [[https://hg.mozilla.org/mozilla-unified/file/FIREFOX_80_0_1_RELEASE/widget/gtk/nsGtkKeyUtils.cpp#l1896][there]]: 167 168 #+begin_src cpp 169 uint32_t KeymapWrapper::GetCharCodeFor(const GdkEventKey* aGdkKeyEvent, 170 guint aModifierState, gint aGroup) { 171 guint keyval; 172 if (!gdk_keymap_translate_keyboard_state( 173 mGdkKeymap, aGdkKeyEvent->hardware_keycode, 174 GdkModifierType(aModifierState), aGroup, &keyval, nullptr, nullptr, 175 nullptr)) { 176 return 0; 177 } 178 GdkEventKey tmpEvent = *aGdkKeyEvent; 179 tmpEvent.state = aModifierState; 180 tmpEvent.keyval = keyval; 181 tmpEvent.group = aGroup; 182 return GetCharCodeFor(&tmpEvent); 183 } 184 #+end_src 185 186 Maybe look at ~lookup-key~ in ~src/keymap.c~? Although 187 ~src/gtkutil.c~ seems to be the place making the most calls to ~gdk_~ 188 functions. 189 *** Native compilation 190 **** DONE [[bug:41077]] Segfaults when compiling ELC+ELN 191 :PROPERTIES: 192 :Role: author 193 :Kudos: Andrea,fixing 194 :END: 195 Took a couple of tries (and 3 days straight of compilation), but I got 196 the branch to compile on my Samsung NC10. See also update 8 on 197 Andrea's [[https://akrl.sdf.org/gccemacs.html][progress page]]. 198 199 FTR, I attached a couple of helpful scripts to that report to measure 200 the time & memory consumption of native compilation. 201 **** DONE [[bug:41194]] fibn benchmark exhausts memory 202 :PROPERTIES: 203 :Role: author 204 :Kudos: Andrea,fixing 205 :END: 206 Fixed by Andrea (see update 9 on his [[https://akrl.sdf.org/gccemacs.html][progress page]]). 207 208 FTR, that report was the occasion to try out Org spreadsheet formulas, 209 in order to compare =elisp-benchmarks= results. 210 *** Region 211 **** TODO [[bug:56662]] Improve region highlighting when multiple windows show the same buffer 212 ~highlight-nonselected-windows~ allows the following use-case: 213 214 1. Set mark in buffer B1, window W1, and highlight a piece of 215 interesting text. 216 2. Jump to window W2, displaying buffer B2. 217 3. Work on B2. 218 4. Glance at W1 to check again on the highlighted region. 219 5. Go to 3. 220 221 This breaks down when B1 = B2 (a buffer that is long enough that it is 222 useful to show various parts of it in multiple windows), because 223 marking something in W2 disrupts the highlighting *in W1*. 224 225 Not only is the visual emphasis of the useful part of W1 lost, having 226 the region face flashing on and off in W1 while trying to work in W2 227 is somewhat distracting. 228 229 The bug report has been closed, but Juri & Eli gave hints to make the 230 mark (and therefore the highlighting) window-local. 231 ** Elisp 232 *** DONE [[bug:30008]] Subdirectory vs major mode in .dir-locals.el 233 :PROPERTIES: 234 :Role: author 235 :Kudos: Neil Roberts,fixing 236 :END: 237 Unnoticed for a year, then merged with subsequent duplicate [[bug:33400]]. 238 *** TODO [[bug:77224]] Make cursor appearance context-dependent 239 :PROPERTIES: 240 :Role: watcher 241 :Kudos: Elijah Gabe Pérez,fixing 242 :END: 243 E.g. add a customizable list of (PREDICATE . PROPERTIES) pairs; the 244 cursor gets the PROPERTIES from the first PREDICATE which matches. 245 246 Use-cases: 247 - completion-in-region-mode 248 - org-speed-commands 249 - repeat-mode 250 *** compile 251 **** DONE [[bug:36803]] Update mode-line of every window when compilation ends 252 :PROPERTIES: 253 :Role: author 254 :Kudos: StefanM,fixing 255 :END: 256 *** completion 257 **** DONE [[bug:52169]] "Args out of range" when completing shell command 258 :PROPERTIES: 259 :Role: author 260 :Kudos: StefanM,fixing 261 :END: 262 *** files 263 **** DONE [[bug:64939]] [[bug:66902]] Recognize env =-S= / =--split-string= in shebangs 264 :PROPERTIES: 265 :Role: author 266 :PatchApplied: t 267 :TestAdded: t 268 :END: 269 [[info:coreutils#env invocation][coreutils#env invocation]] advertises this syntax to allow passing 270 arguments to interpreters: 271 272 #+begin_src awk 273 #!/usr/bin/env -S awk -v OFS=" xyz " -f 274 #+end_src 275 276 Emacs was confused by that =-S=; no longer. Found this while working 277 on my toy website generator which relies on a "Makefile app" with this 278 shebang line: 279 280 #+begin_src makefile 281 #!/usr/bin/env -S make -f 282 #+end_src 283 284 *** font-lock 285 **** DONE [[bug:35476]] font-lock-{append,prepend}-text-property and anonymous faces 286 :PROPERTIES: 287 :Role: author 288 :PatchApplied: t 289 :TestAdded: t 290 :Kudos: StefanM,fixing 291 :END: 292 Started off as an [[orgmode:87r2a4ztt2.fsf@gmail.com][org-mode bug]]; Stefan applied a proper fix, then I 293 added in some refactoring and unit tests. 294 **** DONE [[bug:39597]] M-x occur adds fontification to fundamental-mode 295 :PROPERTIES: 296 :Role: author 297 :Kudos: Juri,fixing&StefanM,fixing 298 :END: 299 Fixed by Stefan & Juri. 300 *** fonts 301 **** DONE [[bug:41747]] Add default fontset setup for "Symbols and Pictographs Extended-A" 302 :PROPERTIES: 303 :Role: author 304 :END: 305 Unfortunately, Symbola now comes with a [[https://dn-works.com/wp-content/uploads/2020/UFAS-Docs/License.pdf][non-free license]]. 306 307 Cf. [[https://bugs.archlinux.org/task/58886][Arch Linux]], [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897047][Debian]], [[https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/EC6I35ILFICKY5W5XTHYJC6UH36B2UQS/][Fedora]], [[https://www.mail-archive.com/gentoo-dev@lists.gentoo.org/msg88799.html][Gentoo]], [[https://github.com/NixOS/nixpkgs/pull/79679][NixOS]] and [[https://bugs.launchpad.net/ubuntu/+source/ttf-ancient-fonts/+bug/1824065][Ubuntu]] threads; also 308 [[https://en.wikipedia.org/wiki/Talk:Open-source_Unicode_typefaces#Symbola_font][Wikipedia]] thread. 309 **** DONE [[bug:51495]] Avoid fonts with incomplete coverage of MATHEMATICAL chars 310 :PROPERTIES: 311 :Role: author 312 :PatchApplied: t 313 :END: 314 *** help 315 **** TODO Teach =C-h k= & =C-h l= about fancy keymaps 316 Some modes introduce indirections that defeat ~describe-key~ and 317 ~view-lossage~. 318 319 E.g. 320 - [ ] ~gnus-article-read-summary-keys~ ([[bug:68947]]) 321 - [ ] ~org-self-insert-command~ + ~org-use-speed-commands~ 322 323 Maybe we could define a property for the related keymaps that would 324 hold a function for =help.el= to call, in order to complement =*Help*= 325 buffers with more helpful information? 326 *** imenu 327 **** TODO Add grouping/sorting predicates to ~imenu~ completion 328 So that ~imenu~ + ~icomplete-vertical-mode~ becomes a built-in, 329 buffer-less equivalent of ~imenu-list~. 330 331 Simple example of these predicates in action: 332 333 #+begin_src elisp 334 (completing-read 335 "bleh? " 336 (lambda (string pred action) 337 (if (eq action 'metadata) 338 (let ((sort-fn 339 (lambda (candidates) 340 (let* ((numbers (sort (mapcar 'string-to-number candidates) '<)) 341 (evens (seq-filter 'cl-evenp numbers)) 342 (odds (seq-difference numbers evens))) 343 (mapcar 'number-to-string 344 (if (and (car evens) (< (car evens) (car odds))) 345 (append evens odds) 346 (append odds evens))))))) 347 `(metadata 348 (cycle-sort-function . ,sort-fn) 349 (display-sort-function . ,sort-fn) 350 (group-function 351 . (lambda (candidate transform) 352 (if transform 353 candidate 354 (if (cl-evenp (string-to-number candidate)) 355 "even" 356 "odd")))))) 357 (complete-with-action action 358 (mapcar 'number-to-string 359 (number-sequence 1 10)) 360 string 361 pred)))) 362 #+end_src 363 364 *** kill-ring 365 **** DONE [[bug:60841]] ~copy-region-blink-delay~ spuriously kicks in when the =region= face has =:inverse-video= 366 :PROPERTIES: 367 :Role: author 368 :PatchApplied: t 369 :END: 370 From ~emacs -Q~: 371 #+begin_src elisp 372 M-: (custom-set-faces '(region ((t (:foreground "blue" :inverse-video t))))) 373 C-x h 374 M-w 375 ; ⇒ point moves to mark then back after copy-region-blink-delay seconds. 376 #+end_src 377 378 This is caused by ~indicate-copied-region~ checking for =region= 379 having a =:background= to assess whether it's "highlighted". 380 381 The bug report snowballed into 382 383 - fixing a couple of corner-cases that made 384 ~face-differs-from-default-p~ less useful than it could be, 385 - adding a user-option for users who actually want that feedback 386 unconditionally, 387 - my first patch committed [[https://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-29&id=c4988840598b7da84b25d21a1936ce1ab6f6d666][in my own name]] 😲 388 *** minibuffer 389 **** TODO [[bug:69237]] Add command to toggle password visibility 390 :PROPERTIES: 391 :Role: watcher 392 :Kudos: Michael Albinus,implementing 393 :END: 394 **** TODO Add completing read for links 395 To harmonize ~org-open-at-point~'s =*Select Link*= & 396 ~gnus-summary-browse-url~'s =URL to browse= prompts; allow matching on 397 URL & description. 398 *** project 399 **** DONE [[bug:45765]] Change default-directory before prompting in project-compile 400 :PROPERTIES: 401 :Role: author 402 :PatchApplied: t 403 :END: 404 *** regexp matching 405 **** TODO [[bug:31586]] ~frame-title-format~ doesn't save match data 406 :PROPERTIES: 407 :Role: watcher 408 :END: 409 **** DONE [[bug:33697]] file-truename messes with match data 410 :PROPERTIES: 411 :Role: author 412 :END: 413 Merged with [[bug:31586]], a more general issue dealing with match data 414 being "poisoned" by a user's =:eval= form in frame-title-format. 415 **** DONE [[bug:57733]] Fix ~replace-*-in-region~ crash 416 :PROPERTIES: 417 :Role: author 418 :PatchApplied: t 419 :TestAdded: t 420 :END: 421 *** shr 422 **** DONE [[bug:39504]] Ensure faces of enclosing elements apply to <code> elements 423 :PROPERTIES: 424 :Role: author 425 :PatchApplied: t 426 :END: 427 Unfortunately debbugs.el does not handle multiple patches per message; 428 the first patch's diff was thus applied manually, with the second 429 patch's title (and a whole new message by the maintainer). 430 **** DONE [[bug:66676]] Delegate filling to ~visual-line-mode~ 431 :PROPERTIES: 432 :Role: watcher 433 :Kudos: Rahguzar 434 :END: 435 **** DONE [[bug:69555]] Keep indenting text when 'shr-fill-text' is nil 436 :PROPERTIES: 437 :Role: author 438 :PatchApplied: t 439 :TestAdded: t 440 :END: 441 Longstanding itch that was my main motivation for instructing Gnus to 442 hide text/html parts. Now I can enjoy variable-pitch HTML parts /with 443 properly indented citations/ 🧐 444 *** use-package 445 **** DONE [[bug:60366]] Simplify manual introduction 446 :PROPERTIES: 447 :Role: author 448 :PatchApplied: t 449 :END: 450 Following integration into core. 451 ** Major modes 452 *** Buffer-menu 453 **** TODO select on entry 454 =C-x C-b= invokes ~list-buffers~ (resp. =C-x p C-b= 455 ~project-list-buffers~), but does not select the menu window. 456 457 There are many workarounds: 458 459 - prefix with =C-x 4 1= 460 - rebind =C-x C-b= to ~buffer-menu~ 461 - also selects menu window with =C-x 4 4= 👍 462 - does not handle ~project-list-buffer~ 👎 463 - customize =display-buffer-alist= to ~display-buffer-same-window~ 464 - handles ~project-list-buffer~ 👍 465 - does not select menu window on =C-x 4 4= 👎 466 467 Wondering if anyone is happy with the status quo. 468 469 - /hatmatrix/ and 56 🔼voters are [[https://stackoverflow.com/q/1231188/1503371][unhappy]]; folks suggest (≈100 🔼votes 470 total; ordered from most to least voted, merging duplicates) 471 - rebinding to ~buffer-menu~, 472 - using ~ido-mode~, 473 - customizing =same-window-regexps= (obsoleted by 474 =display-buffer-alist=), 475 - rebinding to ~ibuffer~, 476 - rebinding to ~bs-show~. 477 - Neither Doom nor Spacemacs have bindings for ~buffer-menu~ nor 478 ~list-buffers~; guessing users rely on buffer-switching commands 479 with extra-featured completion frontends? 480 *** Custom 481 **** DONE [[bug:39074]] Horizontal line messes with variable value display in Custom buffers 482 :PROPERTIES: 483 :Role: author 484 :PatchApplied: t 485 :END: 486 **** DONE [[bug:51556]] Poor contrast of Customize SVG icons with dark backgrounds 487 :PROPERTIES: 488 :Role: author 489 :Kudos: StefanK,fixing 490 :END: 491 *** Dired 492 **** DONE [[bug:23284]] Cannot input 'Y' with dired-do-query-replace-regexp 493 :PROPERTIES: 494 :Role: author 495 :Kudos: Dmitry,fixing 496 :END: 497 **** DONE [[bug:28969]] Confirmation prompt for wildcard not surrounded by whitespace 498 :PROPERTIES: 499 :Role: author 500 :PatchApplied: t 501 :TestAdded: t 502 :END: 503 My commit message ran afoul of debbugs.el's =M-m= again. 504 *** ERC 505 **** +Support SASL authentication+ 506 :PROPERTIES: 507 :Kudos: J.P.,fixing 508 :END: 509 Got bitten by this when trying to connect to irc.freenode.net from 510 =alyon-654-1-454-60.w109-213.abo.wanadoo.fr=: 511 #+begin_quote 512 ERROR from irc.freenode.net: Closing Link: 513 alyon-654-1-454-60.w109-213.abo.wanadoo.fr (SASL access only) 514 #+end_quote 515 516 This was requested in [[bug:29108]]. Lars closed this report because 517 while there is a third-party package to implement the feature, its 518 author did not respond when prompted for copyright assignment. 519 520 I did not have the patience to look at the package; instead I went 521 straight to [[https://ircv3.net/specs/extensions/sasl-3.1][the description of SASL on ircv3.net]] and the [[https://tools.ietf.org/html/rfc4616#section-2][RFC for the 522 =PLAIN= mechanism]], and cobbled this silly patch: 523 524 #+begin_src diff 525 diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el 526 index 1d5506e281..0da677ac18 100644 527 --- a/lisp/erc/erc.el 528 +++ b/lisp/erc/erc.el 529 @@ -6052,7 +6052,17 @@ erc-login 530 erc-session-server 531 erc-session-user-full-name)) 532 (if erc-session-password 533 - (erc-server-send (format "PASS %s" erc-session-password)) 534 + (progn 535 + (erc-server-send "CAP REQ :sasl") 536 + (erc-server-send "AUTHENTICATE PLAIN") 537 + (erc-server-send 538 + (concat "AUTHENTICATE " (base64-encode-string 539 + (string-join (list 540 + (user-login-name) 541 + (erc-current-nick) 542 + erc-session-password) 543 + "\0")))) 544 + (erc-server-send "CAP END")) 545 (message "Logging in without password")) 546 (erc-server-send (format "NICK %s" (erc-current-nick))) 547 (erc-server-send 548 #+end_src 549 550 AFAICT this is enough to get me authenticated on Freenode. It looks 551 like it's not too hard to implement? 552 553 Ideally Emacs's builtin =sasl.el= should be reused; that would let ERC 554 support better SASL mechanisms than =PLAIN=. 555 **** +Make timestamps robust vs window width changes+ 556 :PROPERTIES: 557 :Kudos: J.P.,fixing 558 :END: 559 *Solved in 5.6 with ~erc-fill-wrap~.* 560 561 The =:align-to= spec for right timestamps inserts a fixed number of 562 spaces, so resizing windows messes up their display. Eg. moving a 563 frame from one monitor to a smaller one, lines get wrapped 564 unnecessarily. 565 566 Don't know if the solution lies in (1) using one of the more 567 sophisticated forms of =:align-to= as shown in [[info:elisp#Pixel Specification][(elisp) Pixel 568 Specification]], (2) iterating over stamps on window-configuration 569 changes and updating their spec (3) just stop using right-aligned 570 stamps on the same line as messages. 571 572 (2) would not handle a buffer being shown in two windows with 573 different widths; (1) and (2) would not handle the window becoming too 574 narrow and requiring splitting the stamp from its message. So leaning 575 toward (3). 576 **** TODO Play well with whitespace-mode 577 Last I checked, turning on whitespace-mode… hm. That entry dates from 578 4 years ago. Probably it broke ERC? 🤷 579 *** Gnus 580 **** Article 581 ***** TODO Aligned/tabular display of headers 582 ***** TODO Simple setting for ~visual-line-mode~ 583 I like ~visual-line-mode~ since it automatically re-flows buffers on 584 window width changes, and composes with ~adaptive-wrap~ to add 585 relevant wrap prefixes (extra indentation, citation marks), and I hope 586 Someday™ [[bug:52983][a built-in solution to limit line length]] will be added (in 587 the meantime, I use kludgy margin hacks to keep buffers narrow & 588 centered). 589 590 Currently, AFAICT (from incremental config tweaks; haven't searched 591 the manual thoroughly), getting Gnus to soft-wrap lines requires 592 futzing with: 593 594 - ~gnus-article-truncate-lines~ 595 - ~gnus-article-unfold-long-headers~ 596 - ~gnus-treat-fill-article~ 597 - ~gnus-treat-fill-long-lines~ 598 - ~gnus-treat-fold-headers~ 599 - _finally_, calling ~visual-line-mode~ in ~gnus-article-mode-hook~ 600 **** Cloud 601 ***** TODO [[bug:41530]] gnus-cloud-download-all-data does not mark articles as read 602 :PROPERTIES: 603 :Role: author 604 :END: 605 **** Summary 606 ***** DONE [[bug:47026]] Allow Gnus summary faces to extend to end of line 607 :PROPERTIES: 608 :Role: author 609 :PatchApplied: t 610 :END: 611 ***** DONE [[bug:49800]] Extend Gnus summary highlight faces by default 612 :PROPERTIES: 613 :Role: author 614 :PatchApplied: t 615 :END: 616 ***** Threading 617 ****** DONE [[bug:40520]] Prevent duplicate thread titles 618 :PROPERTIES: 619 :Role: author 620 :PatchApplied: t 621 :END: 622 ****** TODO [[bug:42334]] [[bug:53755]] gnus-thread-sort-functions vs. loose threads 623 :PROPERTIES: 624 :Role: author 625 :END: 626 Closed by Lars because the way Gnus sorts things just isn't amenable 627 to fixing this right now. Will probably need to take the plunge at 628 some point. 629 *** Ibuffer 630 **** TODO Elide with "…" if displayable 631 **** TODO Add human-readable size 632 With summary: 633 #+begin_src elisp 634 (define-ibuffer-column size-hr 635 (:name "Size" 636 :summarizer 637 (lambda (strings) 638 (file-size-human-readable 639 (apply '+ (mapcar (lambda (s) 640 (get-text-property (1- (length s)) 'ibuffer-size s)) 641 strings))))) 642 (let ((sz (buffer-size buffer))) 643 (propertize (file-size-human-readable sz) 'ibuffer-size sz))) 644 #+end_src 645 646 While at it, use this ~propertize~ trick to get rid of the "ewww" 647 comment in ~define-ibuffer-column size~. 648 *** Info 649 **** ~info-display-manual~ 650 ***** TODO redundant candidates 651 E.g. =foo= and =foo.info.gz=. 652 ***** TODO invalid candidates 653 E.g. =gnutls-….png= 654 ***** TODO use ~Info-additional-directory-list~ 655 **** TODO redundant ~(if x (append x y) y)~ 656 **** TODO redundant entries in ~Info-default-directory-list~ (Glenn's FIXME) 657 - 2000-12-14 "(Info-default-directory-list): If…" (e103ef954c) 658 config-dir = "{configure-info-directory}/" 659 config = (list config-dir) 660 config-dir ∈ standard-info-dirs 661 ⇒ standard-info-dirs/config-dir ∨ config 662 - 2000-12-15 "(Info-default-directory-list): Don't…" (b6348438a2) 663 config-dir ∈ standard-info-dirs 664 ⇒ standard-info-dirs ∨ config 665 - 2012-05-26 "* lisp/paths.el (Info-default-…" (04188bb9ad) 666 "why though" 667 *** Org 668 **** DONE [[orgmode:877efbgi4i.fsf@gmail.com]] Binding org-insert-todo-heading to M-S-RET 669 :PROPERTIES: 670 :Role: author 671 :Kudos: Nicolas Goaziou,fixing 672 :END: 673 Inspired by [[https://github.com/jrblevin/markdown-mode/pull/317][jrblevin/markdown-mode#317]]. 674 **** DONE [[orgmode:87r2a4ztt2.fsf@gmail.com]] Bug: Strike-through messes with heading face 675 :PROPERTIES: 676 :Role: author 677 :PatchApplied: t 678 :END: 679 Eventually reverted in favor of a better fix in [[bug:35476]]. 680 **** DONE [[orgmode:877dxpazbo.fsf_-_@gmail.com]] Make RET and C-j obey ~electric-indent-mode~ in org-mode 681 :PROPERTIES: 682 :Role: author 683 :PatchApplied: t 684 :TestAdded: t 685 :END: 686 Followup to an emacs-devel thread about reconciling org-mode 687 idiosyncrasies with Emacs core. 688 **** DONE [[orgmode:87blm8v09s.fsf@gmail.com]] Possible fix for :includes header argument in org-babel C source blocks 689 :PROPERTIES: 690 :Role: author 691 :PatchApplied: t 692 :TestAdded: t 693 :END: 694 Stumbled on this regression before starting work on a completely 695 unrelated feature, and trying to get unit tests to pass. 696 **** DONE [[orgmode:87mu5mhm1u.fsf@gmail.com]] Failing tests 697 :PROPERTIES: 698 :Role: author 699 :PatchApplied: t 700 :TestAdded: t 701 :END: 702 More unrelated tests that needed fixing before I could start working. 703 **** TODO [[orgmode:87mu62gvjk.fsf@gmail.com]] Setting org-todo-keywords through directory-local variables 704 :PROPERTIES: 705 :Role: author 706 :END: 707 ACKed by Bastien; bump once 9.4 is released. 708 **** DONE [[bug:42184]] org-fontify-whole-heading-line does not work in emacs 27 709 :PROPERTIES: 710 :Role: watcher 711 :PatchApplied: t 712 :END: 713 An unfortunate fallout of the new =:extend= face attribute; fixed in 714 Org 9.4, which eventually landed in Emacs 27's maintenance branch 715 (cf. [[bug:43268]]). 716 **** TODO [[orgmode:87mu3ze52c.fsf@gmail.com]] Default description for abbreviated links 717 :PROPERTIES: 718 :Role: author 719 :END: 720 Counter-proposal by Bastien. Next step: ACK and get back to the 721 workbench. 722 **** TODO Skip checkbox width when filling list item 723 Currently items are filled like this: 724 #+begin_example 725 - [ ] lorem 726 ipsum 727 #+end_example 728 Adding =\\[.\\]= to the regexp used in org-list-item-body-column 729 allows "ipsum" to be aligned below "lorem". 730 **** TODO [[bug:52587]] Prevent ~#+end_src~ background from extending to end-of-line when folded 731 See also [[bug:65896]] for the converse: allowing the /heading/'s 732 background to extend when folded. 733 **** TODO Add pandoc's ~auto_identifiers~ scheme for ID generation 734 ~org-export-new-reference~ is the function which generates the current 735 ID, but it returns integers, so maybe the tweak should be made 736 somewhere above in the call stack? 737 **** TODO Make org-refile completion more similar to filename completion 738 I'd like to have org-refile completion work like =C-x p p=, =C-x p f=, and 739 Gnus's =B m=, where typing "bar" matches "x/bar". 740 741 Current org-refile config: 742 #+begin_src elisp 743 (setq org-refile-targets (list (cons nil (cons :maxlevel 10))) 744 org-refile-use-outline-path t 745 org-outline-path-complete-in-steps nil) 746 #+end_src 747 748 IIUC =C-x p= commands use ~project--file-completion-table~, which passes a 749 lambda to ~completing-read~ which returns ~(category . project-file)~ 750 metadata, and… 751 752 #+begin_src elisp 753 (alist-get 'styles (alist-get 'project-file completion-category-defaults)) 754 #+end_src 755 756 … says =substring=. Likewise, ~gnus-summary-move-article~ uses 757 ~gnus-completing-read~, which by default uses 758 ~gnus-emacs-completing-read~, which sets ~completion-styles~ to 759 ~gnus-completion-styles~, which includes =substring=. 760 761 Ergo: either I add =substring= to my ~completion-styles~, or I teach 762 ~org-refile~ to use =substring=… by default? when ~path-complete-in-steps~ 763 is nil? depending on a user option? 🤔 764 **** TODO Fix clock table not accounting for "descriptive links" 765 E.g. if a heading contains =[[http://long.url][Short description]]=, 766 the text that ends up in the clock table can be truncated to a shorter 767 length than the available width. 768 769 Assuming this is because there is a length-computing function that 770 does not account for ~org-link-descriptive~. 771 *** Programming modes 772 **** ~conf-mode~ 773 ***** TODO Tweak ~javaprop~ comments 774 As per [[https://docs.oracle.com/javase/10/docs/api/java/util/Properties.html#load(java.io.Reader)][the rationale]]: 775 #+begin_src diff 776 diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el 777 index 57ec8a0428..91aabfb6d2 100644 778 --- a/lisp/textmodes/conf-mode.el 779 +++ b/lisp/textmodes/conf-mode.el 780 @@ -140,8 +140,7 @@ conf-unix-mode-syntax-table 781 782 (defvar conf-javaprop-mode-syntax-table 783 (let ((table (make-syntax-table conf-unix-mode-syntax-table))) 784 - (modify-syntax-entry ?/ ". 124" table) 785 - (modify-syntax-entry ?* ". 23b" table) 786 + (modify-syntax-entry ?! "<" table) 787 table) 788 "Syntax table in use in Java properties buffers.") 789 790 @@ -487,7 +486,7 @@ conf-javaprop-mode 791 (conf-mode-initialize "#" 'conf-javaprop-font-lock-keywords) 792 (setq-local conf-assignment-column conf-javaprop-assignment-column) 793 (setq-local conf-assignment-regexp ".+?\\([ \t]*[=: \t][ \t]*\\|$\\)") 794 - (setq-local comment-start-skip "\\(?:#+\\|/[/*]+\\)\\s *") 795 + (setq-local comment-start-skip "^[ \t]*\\(?:#+\\|!+\\)\\s *") 796 (setq-local imenu-generic-expression 797 '(("Parameters" "^[ \t]*\\(.+?\\)[=: \t]" 1)))) 798 799 800 #+end_src 801 **** ~emacs-lisp-mode~ 802 ***** Prefer Emacs source directory over installation directory when finding definitions 803 Entry points: 804 805 - =M-.= on Elisp symbols: hook into ~elisp--xref-find-definitions~, 806 add a preference to consider source dir when 807 ~find-lisp-object-file-name~ returns something under the 808 installation dir? 809 810 - ~help-view-source~ in Help buffers: likewise; in 811 ~help-function-def--button-function~ … or not, eventually reaches 812 down to ~find-library-name~; tunable with 813 =find-library-source-path=? 814 815 =find-library-source-path= might be the answer for both situations. 816 **** ~python-mode~ 817 ***** DONE [[bug:51807]] Fix customization group of python-forward-sexp-function 818 :PROPERTIES: 819 :Role: author 820 :PatchApplied: t 821 :END: 822 ***** DONE [[bug:52380]] ~run-python~ no longer focuses interpreter 823 :PROPERTIES: 824 :Role: author 825 :PatchApplied: t 826 :TestAdded: t 827 :END: 828 **** ~sh-mode~ 829 ***** TODO Tweak indentation of continuation lines 830 Attempted to piggyback on Dario Gjorgjevski's [[bug:44592]] to fix these cases: 831 #+begin_src shell 832 ${foo}bar \ 833 --arg 834 $(foo)bar \ 835 --arg 836 837 ${foo}bar --arg1 \ 838 --arg2 839 $(foo)bar --arg1 \ 840 --arg2 841 #+end_src 842 843 Unfortunately my attempt was [[bug:50320][too naive]] and got reverted. I'll have to 844 [[https://lists.gnu.org/archive/html/help-gnu-emacs/2021-09/msg00004.html][dig into SMIE]] more seriously… 845 *** ReST 846 **** TODO auto-pairing 847 Backquotes and asterisks; gate syntax-table changes behind user option 848 and/or add commands for styling 849 **** TODO faces 850 - =.. code block::= 851 - links 852 **** TODO indentation 853 - =.. code-block::= 854 **** TODO link insertion 855 **** TODO outline support 856 *** VC 857 **** DONE [[bug:68183]] ~vc-dir~ chokes when upstream branch is local 858 :PROPERTIES: 859 :Role: watcher 860 :PatchApplied: t 861 :TestAdded: t 862 :Kudos: eliz,reviewing&Dmitry,reviewing&Sean Whitton,reviewing 863 :END: 864 IOW when =branch.<CURRENT>.remote= is =.=. 865 866 While fixing this, add a new =Tracking= header; try to leave =vc-git= 867 in a better state than I found it: add tests; refactor 868 ~vc-git-dir-extra-headers~. 869 ***** [[bug:76187]] flaky test 870 :PROPERTIES: 871 :PatchApplied: t 872 :Kudos: Paul Eggert,reporting 873 :END: 874 ** Minor modes 875 *** electric-pair 876 **** DONE [[bug:39680]] electric-pair-mode broken by undo 877 :PROPERTIES: 878 :Role: author 879 :TestAdded: t 880 :Kudos: StefanM,fixing 881 :END: 882 Fixed by Stefan. It took some time and effort, but I eventually 883 managed to write a unit test. 884 *** icomplete 885 **** DONE [[bug:38024]] icomplete sometimes fails to show completions after backward-killing words 886 :PROPERTIES: 887 :Role: author 888 :Kudos: João,fixing 889 :END: 890 **** TODO [[bug:40152]] icomplete vs recursive prompts 891 :PROPERTIES: 892 :Role: author 893 :END: 894 *** visual-line 895 **** TODO [[bug:31666]] Bad interaction between visual-line-mode and wrap-prefix on long lines 896 :PROPERTIES: 897 :Role: watcher 898 :END: 899 Aka "visual-line-mode adds newlines before words that end up being 900 split anyway"; the problem occurs without wrap-prefixes. 901 **** TODO Faces bleed backward 902 #+begin_example 903 foo bar ↩ 904 ↪baz 905 #+end_example 906 Point on "baz", mark-sexp: empty space between "bar" and end of 907 previous visual line is marked. 908 *** visual-wrap-prefix 909 **** DONE [[bug:41810]] Fontify wrap-prefix 910 :PROPERTIES: 911 :Role: author 912 :PatchApplied: t 913 :END: 914 **** DONE [[bug:76008]] Vs text-scale 915 :PROPERTIES: 916 :Role: author 917 :Kudos: Jim Porter,fixing 918 :END: 919 **** TODO [[bug:76018]] Stop sticking to RET 920 :PROPERTIES: 921 :Role: author 922 :END: 923 **** TODO More fontifying? 924 1. Start ~markdown-mode~. 925 2. Write some ~> long line~ of quoted text. 926 3. Start ~visual-line-mode~ and ~adaptive-wrap-prefix-mode~ 927 928 ~>~ markers are not fontified. 929 **** TODO Take ~display~ property into account 930 1. Start ~markdown-mode~. 931 2. ~markdown-toggle-markup-hiding~. 932 3. Write some ~> long line~ of quoted text. 933 4. Start ~visual-line-mode~ and ~adaptive-wrap-prefix-mode~ 934 935 The ~wrap-prefix~ does not match the opening ~>~'s ~display~ property. 936 **** TODO Ignore ~whitespace-mode~ 937 Seeing whitespace markers is misleading. 938 **** TODO Ignore some faces 939 #+begin_example 940 - foo bar ↩ 941 ↪ baz quux ↩ 942 ↪ (corge) 943 #+end_example 944 With point on =b= in "baz": 945 - mark-sexp: wrap-prefix gets =region= face 946 - flyspell-mode: wrap-prefix gets =flyspell-incorrect= face 947 With point on =(= or past =)= in "(corge)": 948 - wrap-prefix gets =show-paren-match= 949 ** Themes 950 *** Modus 951 **** DONE [[https://gitlab.com/protesilaos/modus-themes/-/merge_requests/50][protesilaos/modus-themes!50]] Tone down ~icomplete-selected-match~ 952 :PROPERTIES: 953 :Role: author 954 :PatchApplied: t 955 :END: 956 ** ERT 957 *** TODO Noninteractive pitfalls 958 - testing faces vs redisplay: may need ~font-lock-ensure~ 959 [[https://list.orgmode.org/87a70stkmv.fsf@gmail.com/#Z32testing:lisp:test-org.el][(org-mode dir-local TODO keywords)]] 960 - post-command hooks: may need ~ert-simulate-command~ 961 [[bug:39680#32][(electric-pair + undo bug)]] 962 - ~(window-buffer (selected-window))~ does not always match 963 ~(current-buffer)~ [[bug:52380#38][(run-python)]] 964 * ELPA 965 ** ada-mode 966 *** DONE [[bug:52167]] Preserve default value of ~project-read-file-name-function~ 967 :PROPERTIES: 968 :Role: author 969 :PatchApplied: t 970 :END: 971 ada-mode pulls in uniquify-files, which unconditionally changes the 972 default value of ~project-read-file-name-function~. 973 974 - In uniquify-files: stop doing that; advertise this setting in the 975 package commentary. 976 - In ada-mode: let-bind this variable in ~ada-find-file~. 977 978 Patches applied, though the maintainer did not preserve authorship nor 979 rationales from the commit messages. For my own sanity: 980 981 - [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52167;msg=5;att=1;filename=0001-Preserve-default-value-of-project-read-file-name-fun.patch][uniquify-files patch]] applied [[https://git.savannah.gnu.org/cgit/emacs/elpa.git/commit/?h=externals/uniquify-files&id=1d76b4f0e283afaff2be053d85f8726ffc3abd6e][here]]; 982 - [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52167;msg=5;att=2;filename=0001-Explicitly-bind-project-read-file-name-function.patch][ada-mode patch 1]]: 983 - (ada-mode.el) applied [[https://git.savannah.nongnu.org/cgit/ada-mode.git/commit/?h=org.emacs.ada-mode&id=cd3bdbf6993d5f070795399c8f5ea538291c1d73][here]] (with further comment tweak), squashed 984 with [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52167;msg=5;att=4;filename=0003-ada-mode.el-ada-find-file-Support-future-Emacs-versi.patch][patch 3]]; 985 - (NEWS) applied [[https://git.savannah.nongnu.org/cgit/ada-mode.git/commit/?h=org.emacs.ada-mode&id=e5bc6c3c][there]]; 986 - [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52167;msg=5;att=3;filename=0002-ada-mode.el-ada-mode-menu-Prefer-ada-find-file.patch][ada-mode patch 2]]: not applied; 987 - [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52167;msg=5;att=4;filename=0003-ada-mode.el-ada-find-file-Support-future-Emacs-versi.patch][ada-mode patch 3]]: applied [[https://git.savannah.nongnu.org/cgit/ada-mode.git/commit/?h=org.emacs.ada-mode&id=cd3bdbf6993d5f070795399c8f5ea538291c1d73][here]], squashed with [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52167;msg=5;att=2;filename=0001-Explicitly-bind-project-read-file-name-function.patch][patch 1]]. 988 ** debbugs 989 *** DONE [[bug:38551]] bind to RET rather than return 990 :PROPERTIES: 991 :Role: author 992 :PatchApplied: t 993 :END: 994 *** TODO autoload debbugs-gnu-emacs-release-blocking-reports 995 I prefer this over the Org variant, which is autoloaded. 996 *** TODO Make ~debbugs-gnu-apply-patch~ smarter 997 To avoid accidents like [[bug:28969]], [[bug:39504]], [[bug:41810]], and 998 [[bug:57733]]. 999 ** diff-hl 1000 *** DONE [[https://github.com/dgutov/diff-hl/issues/142][#142]] Weird interaction between diff-hl-flydiff-mode and org-indent-mode 1001 :PROPERTIES: 1002 :Kudos: eliz,fixing 1003 :END: 1004 Eventually reported back to Emacs core in [[bug:41584]]. 1005 ** which-key 1006 *** DONE [[https://github.com/justbur/emacs-which-key/issues/314][#314]] Some keymap names no longer show up 1007 :PROPERTIES: 1008 :Role: author 1009 :PatchApplied: t 1010 :TestAdded: t 1011 :END: 1012 * MELPA 1013 ** forge 1014 *** DONE [[https://github.com/magit/forge/pull/549][magit/forge#549]] Let ~forge-post-author~ and ~forge-post-date~ have foregrounds 1015 :PROPERTIES: 1016 :Role: author 1017 :PatchApplied: t 1018 :END: 1019 Initially not possible because: 1020 1021 1. for regular notes, ~forge-topic-refresh-buffer~ uses 1022 ~add-face-text-property~; using ~font-lock-append-text-property~ 1023 would solve this; 1024 1025 2. for the note at point, forge sets ~heading-highlight-face~ to 1026 ~magit-diff-hunk-heading-highlight~, which has a foreground; 1027 magit-section applies the ~heading-highlight-face~ via overlays, so 1028 it will always have more priority than text properties. 1029 1030 Sent patch to solve 1. 2 is not a problem in my setup, since the 1031 highlight face has no foreground. 1032 *** TODO Delete source branch when GitLab MR is merged 1033 IOW set =remove_source_branch= (resp. =should_remove_source_branch=) 1034 when submitting (resp. merging) the request. Possible solutions: 1035 1036 - Elisp option 1037 - Git config variable 1038 - Transient infix argument 1039 *** TODO Wash emoji codes 1040 On GitHub and GitLab, emoji that users enter via =:short_codes:= on 1041 the web UI are sent by the API as =:short_codes:=, instead of bona 1042 fide Unicode code points. 1043 1044 (Emoji sent by clients like forge seem unaffected) 1045 1046 Kludge: 1047 1048 #+begin_src elisp 1049 (defun my/emoji-translate-code () 1050 (save-excursion 1051 (with-silent-modifications 1052 (let ((inhibit-read-only t) 1053 (old-input-method current-input-method)) 1054 (set-input-method "emoji") 1055 (while (re-search-forward ":[a-z_]*:" nil t) 1056 (when-let* 1057 ((beg (match-beginning 0)) 1058 (end (match-end 0)) 1059 (code (match-string 0)) 1060 (translation 1061 (or (quail-lookup-key code) 1062 (and (string-match ":\\([a-z]*\\)_\\([a-z]*\\):" code) 1063 (quail-lookup-key 1064 (format 1065 ":%s-%s:" 1066 (match-string 2 code) (match-string 1 code))))))) 1067 (let ((emoji-string 1068 (pcase (car translation) 1069 ((pred integerp) (string (car translation))) 1070 (_ (mapconcat 'identity (cdar translation)))))) 1071 (message "replacing %s with %s" code emoji-string) 1072 (add-text-properties beg end `(display ,emoji-string))))) 1073 (set-input-method old-input-method))))) 1074 #+end_src 1075 1076 ** magit 1077 *** DONE Helping ~magit-ediff-dwim~ read my mind 1078 :PROPERTIES: 1079 :Role: author 1080 :PatchApplied: t 1081 :END: 1082 [[https://emacs.stackexchange.com/q/18200/10209][Reported on StackExchange]] first, then [[https://github.com/magit/magit/commit/f65b1bddd31070e6012fe91a7d845f748c40b901][applied by tarsius]]. 1083 *** DONE [[https://github.com/magit/magit/pull/2928][magit/magit#2928]] magit-split-range: fix handling of "..@{upstream}" 1084 :PROPERTIES: 1085 :Role: author 1086 :PatchApplied: t 1087 :END: 1088 *** DONE [[https://github.com/magit/magit/pull/3720][magit/magit#3720]] Make magit-blame-echo actually echo the commit summary 1089 :PROPERTIES: 1090 :Role: author 1091 :PatchApplied: t 1092 :END: 1093 *** DONE [[https://github.com/magit/magit/pull/4043][magit/magit#4043]] Fix git-commit fontification when comments contain brackets 1094 :PROPERTIES: 1095 :Role: author 1096 :PatchApplied: t 1097 :END: 1098 *** DONE +[[https://github.com/magit/magit/pull/4207][magit/magit#4207]]+ [[https://github.com/magit/magit/pull/4213][magit/magit#4213]] Autoload magit-file-mode-map correctly 1099 :PROPERTIES: 1100 :Role: author 1101 :Kudos: tarsius,fixing 1102 :END: 1103 The initial state of affairs: 1104 1105 - ~global-magit-file-mode~ says ~:init-value t~, but that has no 1106 effect. 1107 - We need to move ~magit-file-mode~ (and ~magit-blob-mode~ while we're 1108 at it) to a new, dedicated library, and either 1109 - let users customize ~global-magit-file-mode~ to t, which will 1110 DTRT, 1111 - autoload the form that enables the mode if the variable is set. 1112 1113 It's already possible to do either, but it slows down startup 1114 considerably. Hopefully moving the mode to a file that does not 1115 ~(require 'magit)~ will mitigate this? 1116 1117 [[https://lists.gnu.org/archive/html/help-gnu-emacs/2020-09/msg00130.html][For context.]] Eventually closed in favour of [[https://github.com/magit/magit/pull/4237][tarsius's own solution]]. 1118 *** TODO ~git-commit-major-mode~ set in =.dir-locals.el= messes with revision buffers 1119 E.g. as configured in =magit/= repositories. This affects =SPC= and 1120 =n=, =p= in log buffers. Workarounds: 1121 1122 1. use =RET= to view commits; 1123 2. jump to revision buffer and hit =g=. 1124 ** markdown-mode 1125 *** DONE [[https://github.com/jrblevin/markdown-mode/pull/124][jrblevin/markdown-mode#124]] Prevent spurious bold fontification 1126 :PROPERTIES: 1127 :Role: author 1128 :PatchApplied: t 1129 :TestAdded: t 1130 :END: 1131 *** DONE [[https://github.com/jrblevin/markdown-mode/issues/172][jrblevin/markdown-mode#172]] Spurious bold/italic in inline code 1132 :PROPERTIES: 1133 :Role: author 1134 :TestAdded: t 1135 :Kudos: jrblevin 1136 :END: 1137 *** DONE [[https://github.com/jrblevin/markdown-mode/issues/223][jrblevin/markdown-mode#223]] Bold markers mess up italics detection 1138 :PROPERTIES: 1139 :Role: author 1140 :Kudos: jrblevin 1141 :END: 1142 *** DONE [[https://github.com/jrblevin/markdown-mode/pull/252][jrblevin/markdown-mode#252]] Fix markdown-inline-code-face's :inherit attribute 1143 :PROPERTIES: 1144 :Role: author 1145 :PatchApplied: t 1146 :END: 1147 *** DONE [[https://github.com/jrblevin/markdown-mode/pull/317][jrblevin/markdown-mode#317]] Bind markdown-insert-list-item to M-RET rather than M-<return> 1148 :PROPERTIES: 1149 :Role: author 1150 :PatchApplied: t 1151 :TestAdded: t 1152 :END: 1153 ** page-break-lines 1154 *** DONE [[https://github.com/purcell/page-break-lines/pull/20][purcell/page-break-lines#20]] Fix disabling when major mode is derived from one of page-break-lines-modes 1155 :PROPERTIES: 1156 :Role: author 1157 :PatchApplied: t 1158 :END: 1159 ** paradox 1160 *** DONE [[https://github.com/Malabarba/paradox/pull/125][Malabarba/paradox#125]] Invert :inherit order for paradox-mode-line-face 1161 :PROPERTIES: 1162 :Role: author 1163 :PatchApplied: t 1164 :END: 1165 *** DONE [[https://github.com/Malabarba/paradox/pull/160][Malabarba/paradox#160]] Fix "Invalid face reference" warnings for custom-button-mouse 1166 :PROPERTIES: 1167 :Role: author 1168 :PatchApplied: t 1169 :END: 1170 * COMMENT File-local variables 1171 #+LINK: bug https://debbugs.gnu.org/ 1172 #+LINK: orgmode https://orgmode.org/list/%s/t/#u 1173 # Local variables: 1174 # org-property-format: "%-16s %s" 1175 # end: