summaryrefslogtreecommitdiff
path: root/itches
diff options
context:
space:
mode:
Diffstat (limited to 'itches')
-rw-r--r--itches/emacs/development.org71
-rw-r--r--itches/emacs/language-support.org3
-rw-r--r--itches/emacs/tracker.org83
3 files changed, 80 insertions, 77 deletions
diff --git a/itches/emacs/development.org b/itches/emacs/development.org
index fccc82e..a1fe3f2 100644
--- a/itches/emacs/development.org
+++ b/itches/emacs/development.org
@@ -1,76 +1,5 @@
Stuff that could make work on Emacs itself more smooth.
-* Changelog
-** Action stamps
-I don't know any function to
-
-1. generate them from a Git commit, a *vc-change-log* buffer…
-2. convert them back to a Git commit, a *vc-diff* buffer…
-
-They can almost be generated with:
-
-#+BEGIN_SRC sh
-git show --no-patch \
- --date=format:"%FT%T%z" \
- --format=format:"%ad!%ae"
-#+END_SRC
-
-Except that [[https://tools.ietf.org/html/rfc3339][RFC3339]] says:
-
-#+BEGIN_QUOTE
- time-numoffset = ("+" / "-") time-hour ":" time-minute
-#+END_QUOTE
-
-While ~%z~ yields "+hhmm" or "-hhmm". Also [[http://esr.ibiblio.org/?p=3872][ESR wants Zulu time]].
-
-See also
-- bug#20609
-- https://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00252.html
-
-This monstrosity does the job:
-#+begin_src elisp
-(defun my/revision-at-point ()
- (cond
- ;; TODO: add vc support.
- ((derived-mode-p 'magit-mode)
- (magit-branch-or-commit-at-point))))
-
-(eval-when-compile
- ;; Load rx's pcase pattern.
- (require 'rx))
-
-(defun my/action-stamp-at-point (rev)
- (interactive
- (list
- (let* ((rev (my/revision-at-point))
- (prompt (if rev (format "Revision? (%s) " rev) "Revision? ")))
- (read-string prompt nil nil rev))))
- (let* ((cmd "git show --no-patch --date=unix --format='%ad!%ae'")
- (git-info (shell-command-to-string (format "%s %s" cmd rev))))
- (pcase git-info
- ((rx (let timestamp-str (+ digit))
- "!"
- (let mail (+ anychar))
- "\n")
- (let* ((timestamp (string-to-number timestamp-str))
- (date (format-time-string "%FT%TZ" timestamp t))
- (action-stamp (format "%s!%s" date mail)))
- (kill-new action-stamp)
- (message action-stamp))))))
-#+end_src
-
-ESR's =git stamp= alias in [[https://gitlab.com/esr/reposurgeon/-/blob/4.5/reposurgeon-git-aliases][reposurgeon]]:
-#+begin_src conf
- # git stamp <commit-ish> - print a reposurgeon-style action stamp
- # This always goes to the committer. It would be better to look at thwe author
- # timestamp first and fall back to commmitter, because the author stamp because
- # doesn't change when patches are replayed onto a repository, while the commit
- # stamp will.
- stamp = show -s --format='%cI!%ce'
-#+end_src
-This alias seems to confirm my feeling that Zulu time is not worth
-bothering with: ISO 8601 is just as machine-parseable, and the
-timezone bit actually conveys meaning to a human reader.
* Bug tracker
** Asynchronous client
It would be wonderful if ~debbugs-gnu~ and ~debbugs-gnu-search~ used
diff --git a/itches/emacs/language-support.org b/itches/emacs/language-support.org
index 145786e..d784f2b 100644
--- a/itches/emacs/language-support.org
+++ b/itches/emacs/language-support.org
@@ -1,12 +1,13 @@
* Python
** Fix builtin/keyword fontification for Python 3
E.g. =print= became a builtin.
+Cf. [[https://debbugs.gnu.org/43298][bug#43298]].
*** TODO add fontification tests
*** TODO have dedicated font-lock styles for Python 2, 3 and "mixed"
Default to "mixed" (rely on tests to ensure user-visible change).
**** TODO create font-lock styles
**** TODO create variable to choose style
-Users could customize it or set it wiht directory-local variables.
+Users could customize it or set it with directory-local variables.
*** TODO add heuristic to pick the "right" style
** Fontify f-strings
E.g. =f'an {expression} that should be highlighted'=.
diff --git a/itches/emacs/tracker.org b/itches/emacs/tracker.org
index 70336f1..64317a0 100644
--- a/itches/emacs/tracker.org
+++ b/itches/emacs/tracker.org
@@ -42,6 +42,47 @@ Fixed by Eli.
:Role: author
:END:
First reported as [[https://github.com/dgutov/diff-hl/issues/142][dgutov/diff-hl#142]]. Fixed by Eli.
+*** TODO Translate unshifted keys to shifted if no bindings are found
+To make =C-x [0-9]= more accessible on AZERTY. Firefox does this, cf
+[[https://hg.mozilla.org/mozilla-unified/file/FIREFOX_80_0_1_RELEASE/widget/gtk/nsGtkKeyUtils.cpp#l1207][here]]:
+
+#+begin_src c++
+ // Retry with shifted keycode.
+ guint shiftState = (baseState | keymapWrapper->GetModifierMask(SHIFT));
+ uint32_t shiftedChar = keymapWrapper->GetCharCodeFor(aGdkKeyEvent, shiftState,
+ aGdkKeyEvent->group);
+ if (IsBasicLatinLetterOrNumeral(shiftedChar)) {
+ // A shifted character can be an ASCII alphabet on Hebrew keyboard
+ // layout. And also shifted character can be an ASCII numeric on
+ // AZERTY keyboad layout. Then, it's a good hint for deciding our
+ // keyCode.
+ return WidgetUtils::ComputeKeyCodeFromChar(shiftedChar);
+ }
+#+end_src
+
+and [[https://hg.mozilla.org/mozilla-unified/file/FIREFOX_80_0_1_RELEASE/widget/gtk/nsGtkKeyUtils.cpp#l1896][there]]:
+
+#+begin_src c++
+uint32_t KeymapWrapper::GetCharCodeFor(const GdkEventKey* aGdkKeyEvent,
+ guint aModifierState, gint aGroup) {
+ guint keyval;
+ if (!gdk_keymap_translate_keyboard_state(
+ mGdkKeymap, aGdkKeyEvent->hardware_keycode,
+ GdkModifierType(aModifierState), aGroup, &keyval, nullptr, nullptr,
+ nullptr)) {
+ return 0;
+ }
+ GdkEventKey tmpEvent = *aGdkKeyEvent;
+ tmpEvent.state = aModifierState;
+ tmpEvent.keyval = keyval;
+ tmpEvent.group = aGroup;
+ return GetCharCodeFor(&tmpEvent);
+}
+#+end_src
+
+Maybe look at ~lookup-key~ in ~src/keymap.c~? Although
+~src/gtkutil.c~ seems to be the place making the most calls to ~gdk_~
+functions.
** Elisp
*** DONE [[bug:30008]] Subdirectory vs major mode in .dir-locals.el
:PROPERTIES:
@@ -106,14 +147,13 @@ patch's title (and a whole new message by the maintainer).
:Role: author
:END:
Fixed by Dmitry.
-**** TODO [[bug:28969]] Confirmation prompt for wildcard not surrounded by whitespace
+**** DONE [[bug:28969]] Confirmation prompt for wildcard not surrounded by whitespace
:PROPERTIES:
:Role: author
+:PatchApplied: t
+:TestAdded: t
:END:
-- v6 posted in December 2019.
-- Eli skeptical of final UI.
-- Waiting until 27.1 is released before pestering the maintainers with
- another bikeshed.
+My commit message ran afoul of debbugs.el's =M-m= again.
*** Gnus
**** DONE [[bug:40520]] Prevent duplicate thread titles
:PROPERTIES:
@@ -170,14 +210,27 @@ More unrelated tests that needed fixing before I could start working.
:PROPERTIES:
:Role: author
:END:
+ACKed by Bastien; bump once 9.4 is released.
**** TODO [[bug:42184]] org-fontify-whole-heading-line does not work in emacs 27
:PROPERTIES:
:Role: watcher
+:PatchApplied: t
:END:
+All that remains is merging Org 9.3.8 into emacs-27 (cf. [[bug:43268]]).
**** TODO [[orgmode:87mu3ze52c.fsf@gmail.com]] Default description for abbreviated links
:PROPERTIES:
:Role: author
:END:
+Counter-proposal by Bastien. Next step: ACK and get back to the
+workbench.
+**** TODO Skip checkbox width when filling list item
+Currently items are filled like this:
+#+begin_example
+- [ ] lorem
+ ipsum
+#+end_example
+Adding =\\[.\\]= to the regexp used in org-list-item-body-column
+allows "ipsum" to be aligned below "lorem".
** Minor modes
*** electric-pair
**** DONE [[bug:39680]] electric-pair-mode broken by undo
@@ -230,6 +283,10 @@ Fixed by Andrea (see update 9 on his [[https://akrl.sdf.org/gccemacs.html][progr
:Role: author
:PatchApplied: t
:END:
+*** TODO autoload debbugs-gnu-emacs-release-blocking-reports
+I prefer this over the Org variant, which is autoloaded.
+*** TODO Make ~debbugs-gnu-apply-patch~ smarter
+To avoid accidents like [[bug:28969]], [[bug:39504]], and [[bug:41810]].
** diff-hl
*** DONE [[https://github.com/dgutov/diff-hl/issues/142][#142]] Weird interaction between diff-hl-flydiff-mode and org-indent-mode
Eventually reported back to Emacs core in [[bug:41584]] and fixed by Eli.
@@ -256,6 +313,22 @@ Eventually reported back to Emacs core in [[bug:41584]] and fixed by Eli.
:Role: author
:PatchApplied: t
:END:
+*** TODO Autoload magit-file-mode-map correctly
+The current state of affairs:
+
+- ~global-magit-file-mode~ says ~:init-value t~, but that has no
+ effect.
+- We need to move ~magit-file-mode~ (and ~magit-blob-mode~ while we're
+ at it) to a new, dedicated library, and either
+ - let users customize ~global-magit-file-mode~ to t, which will
+ DTRT,
+ - autoload the form that enables the mode if the variable is set.
+
+It's already possible to do either, but it slows down startup
+considerably. Hopefully moving the mode to a file that does not
+~(require 'magit)~ will mitigate this?
+
+[[https://lists.gnu.org/archive/html/help-gnu-emacs/2020-09/msg00130.html][For context.]]
** markdown-mode
*** DONE [[https://github.com/jrblevin/markdown-mode/pull/124][jrblevin/markdown-mode#124]] Prevent spurious bold fontification
:PROPERTIES: