summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Improve Eldoc docstringsscratch/eldoc-asyncJoão Távora2020-07-081-31/+87
| | | | | | | | | * lisp/emacs-lisp/eldoc.el (eldoc-documentation-strategy): Improve docstring. (eldoc--make-callback): Improve docstring. (eldoc--invoke-strategy): New helper function. (eldoc-print-current-symbol-info): Call eldoc--invoke-strategy. (eldoc-documentation-functions): Improve docstring.
* Change version scheme of two Eldoc obsolete specsJoão Távora2020-07-071-2/+2
| | | | | * lisp/emacs-lisp/eldoc.el (eldoc-documentation-function) (eldoc-message): Obsolete spec uses eldoc-1.1.0.
* Adjust describe-char-eldoc to new eldoc-documentation-functions protocolJoão Távora2020-07-071-2/+7
| | | | | * lisp/descr-text.el (describe-char-eldoc): Adjust to new eldoc-documentation-functions protocol.
* Adjust Eldoc documentation after Eli's reviewJoão Távora2020-07-052-101/+120
| | | | | | | | | | | | | | * etc/NEWS (Eldoc): Adjust paragraphs. * lisp/emacs-lisp/eldoc.el (eldoc-prefer-doc-buffer): Adjust docstring. (eldoc--enthusiasm-curbing-timer, eldoc-documentation-strategy) (eldoc-documentation-functions): Adjust docstring. (eldoc--handle-docs): Adjust comments. (eldoc--documentation-compose-1): New helper. (eldoc-documentation-compose) (eldoc-documentation-compose-eagerly): Use it. (eldoc-print-current-symbol-info): Adjust comments.
* Make more parts of Emacs use new Eldoc capabilitiesJoão Távora2020-06-307-78/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Elisp-mode was doing a lot of work that can now be delegated to Eldoc. Flymake uses the new Eldoc functionality, too, installing a global documentation function that may report on diagnostics under point. CEDET's grammar.el was left as the only user of an Eldoc-internal function. That function was moved to grammar.el. That file is still, somewhat reprehensibly, using an internal function of elisp-mode.el, but this was left unchanged. In other situations, eldoc-documentation-functions is used or recommended. The only other places where the obsolete eldoc-documentation-function is still used is in libraries which are presumably meant to remain compatible with previous Emacs versions. * lisp/progmodes/elisp-mode.el (elisp-eldoc-funcall) (elisp-eldoc-var-docstring): New functions. (emacs-lisp-mode): Put two elements in eldoc-documentation-functions. * lisp/emacs-lisp/eldoc.el (eldoc--eval-expression-setup): Setup new Elisp eldoc-documentation-functions. * lisp/progmodes/flymake.el (flymake-mode): Use flymake-eldoc-function. (flymake-eldoc-function): New function. (Package-Requires): Require eldoc 1.1.0 * lisp/descr-text.el (describe-char-eldoc): Recommend eldoc-documentation-functions. * lisp/progmodes/cfengine.el (cfengine3-documentation-function): Recommend eldoc-documentation-functions * lisp/progmodes/octave.el (inferior-octave-mode): Use eldoc-documentation-functions. * lisp/cedet/semantic/grammar.el (semantic--docstring-format-sym-doc): New function. (semantic-grammar-eldoc-get-macro-docstring): Adjust.
* * lisp/emacs-lisp/eldoc.el (Version): Bump to 1.1.0João Távora2020-06-301-1/+1
|
* New M-x eldoc for on-demand and interactive documentation requestsJoão Távora2020-06-301-0/+3
| | | | | | | | | The function eldoc is just an alias for eldoc-print-current-symbol-info, which is made interactive. * lisp/emacs-lisp/eldoc.el (eldoc-print-current-symbol-info): Now an interactive function. (eldoc): Alias to eldoc-print-current-symbol-info.
* Better handle asynchronous Eldoc sourcesJoão Távora2020-06-309-103/+340
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a backward compatible redesign of significant parts of the eldoc.el library. Previously, Eldoc clients (major/minor modes setting its documentation gathering variables) needed to directly call eldoc-message, an internal function, to display the docstring to the user. When more asynchronous sources are involved, this is hard to do or even breaks down. Now, an Eldoc backend may return any non-nil, non-string value and call a callback afterwards. This restores power to Eldoc over how (and crucially also when) to display the docstrings to the user. Among other things, this fixes so called "doc blinking", or the very short-lived display of a lower priority Eldoc message. This would happen if a particular producer of documentation finishes shortly before a higher priority one, like in the LSP engine Eglot as reported by Andrii Kolomoiets <andreyk.mad@gmail.com> and Dmitry Gutov <dgutov@yandex.ru>. Gathering docstrings is now delegated to the variable eldoc-documentation-strategy, which is the new name for the now-obsolete eldoc-documentation-function, and still accepts the so-called "old protocol". Examples of the new strategies enabled are codified in functions such as eldoc-documentation-enthusiast, eldoc-documentation-compose-eagerly, along with the existing eldoc-documentation-compose and eldoc-documentation-default. The work of displaying and formatting docstrings is shifted almost fully to Eldoc itself and is delegated to the internal function eldoc--handle-docs. Among other improvements, it handles most of eldoc-echo-area-use-multiline-p and outputs documentation to a temporary *eldoc* buffer. The manual and NEWS are updated to mention the new Eldoc features. * lisp/emacs-lisp/eldoc.el (eldoc-documentation-functions): Overhaul docstring. (eldoc-documentation-compose, eldoc-documentation-default): Handle non-nil, non-string values of elements of eldoc-documentation-functions. Use eldoc--handle-multiline. (eldoc-print-current-symbol-info): Honour non-nil, non-string values returned by eldoc-documentation-callback. (eldoc--make-callback): Now also a function. (eldoc-documentation-default, eldoc-documentation-compose): Tweak docstring. (eldoc-documentation-enthusiast, eldoc-documentation-compose-eagerly): New functions. (eldoc-echo-area-use-multiline-p): Add new semantics. (eldoc--handle-docs): Handle some of eldoc-echo-area-use-multiline-p. (eldoc-doc-buffer): New command. (eldoc-prefer-doc-buffer): New defcustom. (eldoc--enthusiasm-curbing-timer): New variable. (eldoc-documentation-strategy): Rename from eldoc-documentation-function. (eldoc--supported-p): Use eldoc-documentation-strategy (eldoc-highlight-function-argument) (eldoc-argument-case, global-eldoc-mode) (turn-on-eldoc-mode): Mention eldoc-documentation-strategy. (eldoc-message-function): Mention eldoc--message. (eldoc-message): Made obsolete. (eldoc--message): New helper. * lisp/hexl.el (hexl-print-current-point-info): Adjust to new eldoc-documentation-functions protocol. * lisp/progmodes/cfengine.el (cfengine3-documentation-function): Adjust to new eldoc-documentation-functions protocol. * lisp/progmodes/elisp-mode.el (elisp-eldoc-documentation-function): Adjust to new eldoc-documentation-functions protocol. * lisp/progmodes/octave.el (octave-eldoc-function): Adjust to new eldoc-documentation-functions protocol. * lisp/progmodes/python.el (python-eldoc-function): Adjust to new eldoc-documentation-functions protocol. (eldoc-print-current-symbol-info): Rework with cl-labels. * doc/emacs/programs.texi (Lisp Doc): Mention eldoc-documentation-strategy. * doc/lispref/modes.texi (Major Mode Conventions): Mention eldoc-documentation-functions. * etc/NEWS: Mention eldoc-documentation-strategy.
* Fix spurious error in beginning-of-defun in pascal-mode (bug#41740)Mattias Engdegård2020-06-222-1/+9
| | | | | | * lisp/progmodes/pascal.el (pascal-beg-of-defun): Ignore errors in forward-sexp. * test/lisp/progmodes/pascal-tests.el (pascal-beg-of-defun): New test.
* Preserve point in pascal-mode completion (bug#41740)Mattias Engdegård2020-06-222-24/+82
| | | | | | | | | Failure to do so caused errors in several cases. Reported by Shinichi Sakata. * lisp/progmodes/pascal.el (pascal-type-completion) (pascal-completion): Wrap code that may move point in save-excursion. * test/lisp/progmodes/pascal-tests.el: New file.
* Fix display-buffer-override-next-command to call action only once (bug#39722)Juri Linkov2020-06-223-8/+14
| | | | | | | | | | * lisp/vc/vc-dir.el (vc-dir-bookmark-jump): Don't use save-window-excursion. * lisp/window.el (display-buffer-override-next-command): Reset display-buffer-overriding-action after the first buffer display action. * lisp/tab-bar.el (switch-to-buffer-other-tab): Don't reuse frame tabs. (other-tab-prefix): Don't reuse frame tabs.
* New commands other-window-prefix (C-x 4 4) and other-frame-prefix (C-x 5 5)Juri Linkov2020-06-223-0/+63
| | | | | | | | * lisp/window.el (other-window-prefix, same-window-prefix): New commands. (ctl-x-4-map): Bind 'C-x 4 4' to 'other-window-prefix'. (Bug#41691) * lisp/frame.el (other-frame-prefix): New command. (ctl-x-5-map): Bind 'C-x 5 5' to 'other-frame-prefix'.
* Forward declare eshell-buffer-name in project-eshellTheodor Thornhill2020-06-221-0/+1
| | | | | * lisp/progmodes/project.el: Forward declare 'eshell-buffer-name' so that 'project-eshell' can use dynamically scoping with it.
* ; project-shell, project-eshell: Doc fixesDmitry Gutov2020-06-221-2/+2
|
* Consolidate #RGB string parsersMattias Engdegård2020-06-217-286/+180
| | | | | | | | | | | | | | | | | | | | Use a single parser of color strings in the #RGB, rgb:R/G/B and rgbi:R/G/B formats, replacing four existing ones. Previously, error-checking was spotty, handling of the rgbi: format not always present, and normalization of the result was sometimes incorrect. * src/dispextern.h: New prototype. * src/xfaces.c (parse_hex_color_comp, parse_float_color_comp) (parse_color_spec, Finternal-color_values_from_color_spec): New functions. * test/src/xfaces-tests.el (xfaces-internal-color-values-from-color-spec): New test. * lisp/term/tty-colors.el (tty-color-standard-values): Use internal-color-values-from-color-spec, replacing old parser. * src/nsterm.m (ns_get_color): * src/w32fns.c (x_to_w32_color): * src/xterm.c (x_parse_color): Use parse_color_spec, replacing old parsers. (HEX_COLOR_NAME_LENGTH): Remove #define.
* Revert last change in benchmark.elBasil L. Contovounesios2020-06-211-1/+1
| | | | | | | | For discussion, see the following thread: https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00791.html * lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): Revert to giving byte-compile a form rather than a closure.
* Improve doc strings of 'project-shell' and 'project-eshell'Eli Zaretskii2020-06-211-8/+8
| | | | | * lisp/progmodes/project.el (project-shell, project-eshell): Doc fixes.
* Replace some uses of cl-mapcan with mapcanBasil L. Contovounesios2020-06-213-8/+7
| | | | | | | | | * lisp/progmodes/project.el (project-files, project-files): * lisp/progmodes/xref.el (xref-backend-references) (xref--convert-hits): * test/lisp/emacs-lisp/package-tests.el (package-test-strip-version): Replace cl-mapcan with equivalent calls to mapcan.
* Fix remaining problems with tramp-crypt.elMichael Albinus2020-06-215-21/+22
| | | | | | | | | | | | | | | | | | * lisp/net/tramp-compat.el (tramp-compat-make-temp-file): Simplify implementation. * lisp/net/tramp-crypt.el (tramp-crypt-handle-delete-file) (tramp-crypt-handle-file-attributes, tramp-crypt-handle-file-system-info) (tramp-crypt-handle-make-directory): Let-bind `tramp-crypt-enabled' to nil. * lisp/net/tramp.el (tramp-file-name-for-operation): Fix for operations with two arguments. (tramp-handle-load): Suppress `signal-hook-function' when NOERROR is non-nil. * test/lisp/net/tramp-tests.el (tramp-test41-utf8) (tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl) (tramp-test41-utf8-with-ls): Skip if needed.
* Evaluate some unnecessarily quoted lambdasBasil L. Contovounesios2020-06-217-30/+28
| | | | | | | | | | | | | | | | | * lisp/cedet/semantic/complete.el (semantic-displayer-tooltip-max-tags): * lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): * lisp/emacs-lisp/package.el (package--default-summary) (package-menu-filter-by-version): * lisp/eshell/em-pred.el (eshell-pred-file-time): * lisp/progmodes/verilog-mode.el (verilog-auto-lineup) (verilog-auto-reset-widths, verilog-auto-arg-format) (verilog-auto-inst-vector, verilog-auto-inst-template-numbers): * lisp/textmodes/bibtex.el (bibtex-dialect): * test/lisp/autoinsert-tests.el (autoinsert-tests-define-auto-insert-before) (autoinsert-tests-define-auto-insert-after): Remove some unnecessary quoting around anonymous functions.
* Silence some warnings in testsBasil L. Contovounesios2020-06-214-26/+24
| | | | | | | | | | | | * test/lisp/emacs-lisp/package-tests.el (package-test-suffix-matches): Evaluate lambda. (package-test-list-filter-marked): * test/lisp/vc/vc-tests.el (vc-test--run-maybe-unsupported-function): * test/src/undo-tests.el (undo-test-skip-invalidated-markers): Silence "unused local variable" warnings. * test/lisp/imenu-tests.el (imenu-simple-scan-deftest): Fix docstring. Don't shadow global major-mode.
* ; project-shell, project-eshell: Docstring tweaksDmitry Gutov2020-06-211-6/+8
|
* Pop to an existing Eshell buffer by defaultTheodor Thornhill2020-06-211-5/+17
| | | | | | | | | | * lisp/progmodes/project.el (project-shell): Improve docstring to include information about an implementation detail. * list/progmodes/project.el (project-eshell): Modelled after 'project-shell', change default behavior such that we don't create too many eshell buffers by default. Use universal argument to create subsequent buffers.
* Fix a byte-compile warning.Philipp Stephani2020-06-201-1/+1
| | | | | * lisp/gnus/gnus-cloud.el (gnus-cloud-download-data): Don't use 'mapcar' or effect.
* Fix last change for bug#41619Eli Zaretskii2020-06-201-1/+0
| | | | | * lisp/progmodes/python.el (python-shell-virtualenv-root): Fix last change. (Bug#41619)
* Documentation followup to the last changeEli Zaretskii2020-06-202-1/+14
| | | | | | * doc/emacs/cmdargs.texi (General Variables): * etc/NEWS: Document the COLORTERM environment variable. (Bug#41846)
* Add fallback for 24-bit terminal color via COLORTERM=truecolorJan Beich2020-06-202-0/+13
| | | | | | | | | | | | | * src/term.c (init_tty): When COLORTERM=truecolor is defined, override setaf/setab/colors terminfo capabilities with 24-bit color support. * doc/misc/efaq.texi (Colors on a TTY): Mention the possibility to enable 24-bit color via the COLORTERM environment variable. (Bug#41846) Copyright-paperwork-exempt: yes
* Revert "Don't mention non-GNU package archives."Eli Zaretskii2020-06-201-10/+19
| | | | | | This reverts commit 5daa7a5fd4aced33a2ae016bde5bb37d1d95edf6. A proper fix will be committed to the emacs-27 branch, and will be later merged to master.
* Fix bug with deactivation of mark in 'cua-cancel'Andrew Burgess2020-06-201-1/+1
| | | | | | | * lisp/emulation/cua-base.el (cua-cancel): Use 'deactivate-mark' instead of setting 'mark-active' directly. Copyright-paperwork-exempt: yes
* project-shell: Pop to an existing shell buffer by defaultTheodor Thornhill2020-06-201-4/+13
| | | | | | | | * lisp/progmodes/project.el (project-shell): Pop to an existing shell buffer by default. If there's none, or if universal argument is used, open a subsequent shell buffer and jump to it. Prefix shell buffer name with the base name of project root directory. (Bug#41858)
* Fix last change in doc strings of project.elEli Zaretskii2020-06-191-1/+3
| | | | | * lisp/progmodes/project.el (project-switch-to-buffer): More accurate doc string.
* Fix various problems in TrampMichael Albinus2020-06-194-45/+34
| | | | | | | | | | | | | | | | | | | * lisp/net/tramp-compat.el (tramp-temp-name-prefix): Declare. (tramp-compat-make-temp-name): * lisp/net/tramp.el (tramp-make-tramp-temp-name): New defuns. * lisp/net/tramp.el (tramp-make-tramp-temp-file): * lisp/net/tramp-sh.el (tramp-find-inline-encoding) (tramp-maybe-open-connection, tramp-get-remote-touch) (tramp-get-remote-chmod-h): * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory): Use them. * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-stat): Simplify shell command. Suppress errors (interpret as nil). (tramp-sh-handle-make-process): Do not visit with `insert-file-contents'. Delete tmp file only if exists. (tramp-send-command-and-read): Suppress `signal-hook-function' when reading expression.
* Improve doc strings of project.elEli Zaretskii2020-06-191-22/+23
| | | | | | | | | | | * lisp/progmodes/project.el (project-dired, project-shell) (project-eshell, project-switch-to-buffer, project-kill-buffers) (project-list-file, project--read-project-list) (project--ensure-read-project-list, project--write-project-list) (project--add-to-project-list-front) (project--remove-from-project-list, project-prompt-project-dir) (project-switch-commands, project-switch-project): Fix wording and formatting of doc strings.
* Fix newly introduced errors in TrampMichael Albinus2020-06-192-1/+7
| | | | | | | * lisp/net/tramp-gvfs.el (tramp-gvfs-unload-hook): Remove `tramp-gvfs-dbus-event-error' from `dbus-event-error-functions'. * lisp/net/tramp.el (tramp-autoload-file-name-handler): Revert patch.
* project-switch-to-buffer: Use the "other buffer" as defaultAndrii Kolomoiets2020-06-191-6/+16
| | | | | | * lisp/progmodes/project.el (project-switch-to-buffer): Pass the "other buffer" as DEF to read-buffer if it belongs to the current project (bug#41879).
* Check AREF and aref_addr subscriptsPaul Eggert2020-06-181-7/+9
| | | | | | * src/lisp.h (gc_asize): Move before first use. (AREF, aref_addr): Check subscripts. Co-authored-by: Tino Calancha <tino.calancha@gmail.com>
* ; * lisp/faces.el (color-luminance-dark-limit): Better doc string.Mattias Engdegård2020-06-181-3/+4
|
* Define the dark luminance limit as a named constantMattias Engdegård2020-06-181-1/+6
| | | | | | | | | | To make the meaning of the color-dark-p cutoff luminance clear, define it as a named constant. (We no longer use the somewhat obscure 0.6^2.2 definition since it doesn't really make sense to define the limit in gamma-compressed space.) * lisp/faces.el (color-luminance-dark-limit): New constant. (color-dark-p): Use color-luminance-dark-limit.
* * etc/NEWS: Fix inconsistencies. Add `tramp-crypt-add-directory'.Michael Albinus2020-06-181-17/+22
|
* Some Tramp cleanups, mainly in tramp-crypt.elMichael Albinus2020-06-183-12/+13
| | | | | | | | | | | | | | | | | * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): Add `add-name-to-file', `make-directory-internal', `make-nearby-temp-file', `temporary-file-directory' and `unhandled-file-name-directory'. (tramp-crypt-file-name-for-operation): Use `tramp-compat-temporary-file-directory'. (tramp-crypt-do-encrypt-or-decrypt-file-name) (tramp-crypt-do-encrypt-or-decrypt-file): Fix syntax error in `tramp-error'. * lisp/net/tramp.el (tramp-autoload-file-name-handler): * lisp/net/tramp-rclone.el (tramp-rclone-mounted-p) (tramp-rclone-flush-directory-cache): Use `tramp-compat-temporary-file-directory'.
* Add binding for project-kill-buffersDmitry Gutov2020-06-181-0/+1
| | | | | * lisp/progmodes/project.el (project-prefix-map): Add binding for project-kill-buffers (bug#41868).
* Propertize all shr fragment IDs as shr-target-idBasil L. Contovounesios2020-06-182-20/+22
| | | | | | | | | | | | * lisp/net/shr.el (shr-target-id): Add docstring. (shr-descend, shr-tag-a): Display dummy anchor characters as the empty string. Give all relevant 'id' or 'name' fragment identifier attributes the shr-target-id text property. This ensures that cached content, such as tables, retains the property across renders. (Bug#40532) * lisp/net/eww.el: (eww-display-html): Adapt shr-target-id property search accordingly.
* Improve battery.el UPower supportBasil L. Contovounesios2020-06-183-111/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For discussion, see the following threads: https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00843.html https://lists.gnu.org/archive/html/emacs-devel/2020-02/msg00042.html https://lists.gnu.org/archive/html/emacs-devel/2020-02/msg00282.html * etc/NEWS: Announce that battery-upower is enabled by default. * lisp/battery.el (battery-upower-device): Accept both battery and line power device names, or a list thereof (bug#39491). (battery-upower-line-power-device): Remove user option; superseded by battery-upower-device. (battery-upower-subscribe): New user option. (battery-status-function): Check whether a UPower service is provided without activating it. (display-battery-mode): Subscribe to UPower signals when using battery-upower. (battery-upower): Merge data from multiple power sources. Calculate terse battery status %b based on average battery load percentage rather than coarse and often missing BatteryLevel (bug#39491). Add support for average temperature %d. (battery-upower-dbus-service) (battery-upower-dbus-interface) (battery-upower-dbus-path) (battery-upower-dbus-device-interface) (battery-upower-dbus-device-path) (battery-upower-device-all-properties): Rename to... (battery-upower-service) (battery-upower-interface) (battery-upower-path) (battery-upower-device-interface) (battery-upower-device-path) (battery--upower-device-properties): ...these, respectively. (battery-upower-device-list): Rename to... (battery--upower-devices) ...this. Return a flat list of device names determined by battery-upower-device. (battery-upower-types, battery-upower-states) (battery-upower-device-property, battery-upower-device-autodetect): Remove. (battery--upower-signals): New variable. (battery--upower-signal-handler, battery--upower-props-changed) (battery--upower-unsubscribe, battery--upower-subsribe) (battery--upower-state): New functions. * test/lisp/battery-tests.el (battery-upower-state) (battery-upower-state-unknown): New tests.
* Various battery.el improvements (bug#41808)Basil L. Contovounesios2020-06-183-175/+229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/battery.el: Mention BSD support in Commentary. Don't load preloaded lisp/emacs-lisp/timer.el. (battery--files): New function. (battery--find-linux-sysfs-batteries): Use it and make fewer syscalls. (battery-status-function): Perform GNU/Linux checks in increasing order of obsolescence: sysfs, ACPI, and then APM. Simplify Darwin check. Add :version tag now that battery-upower is the default. (battery-echo-area-format, battery-mode-line-format): Mention %s. (battery-load-low, battery-load-critical): New faces. (battery-update): Display battery-mode-line-format even if percentage is N/A. Apply faces battery-load-low or battery-load-critical according to the percentage, but append them so they don't override user customizations. Update all mode lines since we are in global-mode-string. (battery-linux-proc-apm-regexp): Mark as obsolete, replacing with... (battery--linux-proc-apm): ...this new rx definition. (battery-linux-proc-apm): Use it. Fix indentation. Simplify. (battery--acpi-rate, battery--acpi-capacity): New rx definitions. (battery-linux-proc-acpi): Use them. Fix pathological whitespace regexps. Simplify. (battery-linux-sysfs): Fix docstring and indentation. Reduce number of file searches. Simplify. (battery-bsd-apm): Fix docstring. Simplify. (battery-pmset): Fix docstring. Simplify ID regexp. * lisp/emacs-lisp/rx.el (rx-define): Indent as a defun. * test/lisp/battery-tests.el (battery-linux-proc-apm-regexp): Test new battery--linux-proc-apm rx definition. (battery-acpi-rate-regexp, battery-acpi-capacity-regexp): New tests.
* Fix and extend format-spec (bug#41758)Basil L. Contovounesios2020-06-1819-291/+408
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/format-spec.el: Use lexical-binding. Remove dependence on subr-x.el. (format-spec-make): Clarify docstring. (format-spec--parse-modifiers): Rename to... (format-spec--parse-flags): ...this and simplify. In particular, don't bother parsing :space-pad which is redundant and unused. (format-spec--pad): Remove, replacing with... (format-spec--do-flags): ...this new helper function which performs more of format-spec's supported text manipulation. (format-spec): Autoload. Allow optional argument to take on special values 'ignore' and 'delete' for more control over what happens when a replacement for a format specification isn't provided. Bring back proper support for a precision modifier similar to that of 'format'. * lisp/battery.el (battery-format): Rewrite in terms of format-spec. (battery-echo-area-format, battery-mode-line-format): Mention support of format-spec syntax in docstrings. * doc/lispref/strings.texi (Custom Format Strings): * etc/NEWS: Document and announce these changes. * lisp/dired-aux.el (dired-do-compress-to): * lisp/erc/erc-match.el (erc-log-matches): * lisp/erc/erc.el (erc-update-mode-line-buffer): * lisp/gnus/gnus-sieve.el (gnus-sieve-update): * lisp/gnus/gssapi.el (open-gssapi-stream): * lisp/gnus/mail-source.el (mail-source-fetch-file) (mail-source-fetch-directory, mail-source-fetch-pop) (mail-source-fetch-imap): * lisp/gnus/message.el (message-insert-formatted-citation-line): * lisp/image-dired.el: * lisp/net/eww.el: * lisp/net/imap.el (imap-kerberos4-open, imap-gssapi-open) (imap-shell-open): * lisp/net/network-stream.el (network-stream-open-shell): * lisp/obsolete/tls.el (open-tls-stream): * lisp/textmodes/tex-mode.el: Remove extraneous loads and autoloads of format-spec now that it is autoloaded and simplify its uses where possible. * test/lisp/battery-tests.el (battery-format): Test new format-spec support. * test/lisp/format-spec-tests.el (test-format-spec): Rename to... (format-spec) ...this, extending test cases. (test-format-unknown): Rename to... (format-spec-unknown): ...this, extending test cases. (test-format-modifiers): Rename to... (format-spec-flags): ...this. (format-spec-make, format-spec-parse-flags, format-spec-do-flags) (format-spec-do-flags-truncate, format-spec-do-flags-pad) (format-spec-do-flags-chop, format-spec-do-flags-case): New tests.
* Various dbus.el cleanups (bug#41744)Basil L. Contovounesios2020-06-183-166/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Announce removal of aliases obsolete since Emacs 24.3. * lisp/net/dbus.el: Remove unneeded dependency on cl-lib.el. Quote function symbols as such. (dbus-ignore-errors): Don't add macro name to font-lock keywords, as emacs-lisp-mode now dynamically fontifies new macro definitions. (dbus-event-error-hooks, dbus-call-method-non-blocking): Remove aliases obsolete since Emacs 24.3. (dbus-register-signal, dbus-escape-as-identifier): Simplify. Use regexp \` and \' in place of ^ and $. (dbus--parse-xml-buffer): New function for libxml2 compatibility. (dbus-introspect-xml): Use it. (dbus-string-to-byte-array, dbus-byte-array-to-string) (dbus-unescape-from-identifier, dbus-list-known-names) (dbus-introspect-get-all-nodes, dbus-get-all-properties) (dbus-get-all-managed-objects): Simplify. (dbus--introspect-names, dbus--introspect-name): New convenience functions. (dbus-introspect-get-node-names) (dbus-introspect-get-interface-names) (dbus-introspect-get-interface, dbus-introspect-get-method-names) (dbus-introspect-get-method, dbus-introspect-get-signal-names) (dbus-introspect-get-signal, dbus-introspect-get-property-names) (dbus-introspect-get-property) (dbus-introspect-get-annotation-names) (dbus-introspect-get-annotation) (dbus-introspect-get-argument-names, dbus-introspect-get-argument): Use them to DRY. * test/lisp/net/dbus-tests.el (dbus-test-all): Quote function symbols as such.
* ;Fix error in commit dcdf6d7124Tassilo Horn2020-06-181-14/+14
|
* Make bug-reference auto-setup work in vc-dir or Magit like modesTassilo Horn2020-06-181-2/+5
| | | | | | * lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-vc): Use default-directory if not in a file-visiting buffer to determine VC URL.
* Bind default-directory to given DIR.Tassilo Horn2020-06-181-0/+1
| | | | | | | | Otherwise, "git config branch.<branch>.remote" would return the global default "origin" instead of the actual, project-specific remote name. * lisp/vc/vc-git.el (vc-git-dir-extra-headers): Bind default-directory to given DIR.
* New command: project-kill-buffersPhilip K2020-06-181-0/+41
| | | | | | | * lisp/progmodes/project.el (project-kill-buffers-skip-conditions): New variable. (project--buffer-list): New function. (project-kill-buffers): New command (bug#41868).