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