Commit graph

149966 commits

Author SHA1 Message Date
João Távora
1f48b56f8b Re-organize and rewrite parts of the Flymake manual
bug#50244

* doc/misc/flymake.texi (Starting Flymake): New section.
(Finding diagnostics): New section, now contains info previously in
"Listing diagnostics"
(Mode line status): Renamed from "Mode-line syntax check status"
(Troubleshooting): Renamed from "Backend exceptions".
(Flymake error types): Tweak phrasing.
2021-09-13 19:03:38 +01:00
João Távora
44824d616b Add support for project-wide diagnostics in Flymake (bug#50244)
This is done with two new concepts: "foreign diagnostics" and
"list-only diagnostics".  The manual has been updated with a
description of these new concepts.

* doc/misc/flymake.texi (Flymake utility functions):
Explain creation of foreign diagnostics.
(Foreign and list-only diagnostics): New subsection.
(Listing diagnostics): New subsection.

* lisp/progmodes/flymake.el
(Version): Bump to 1.2.1
(project): Require project.
(flymake--diag): Add new slots 'orig-beg' and 'orig-end'.  Rename
'buffer' slot to 'locus'.
(flymake-make-diagnostic): Rework docstring.  Accept stringp
LOCUS arg.
(flymake-diagnostic-beg, flymake-diagnostic-end)
(flymake-diagnostic-buffer):  Simplify definition.
(flymake--equal-diagnostic-p): New helper
(flymake--highlight-line): Rework.  Accept FOREIGN arg.
(flymake--state): Work docstring. Add new slot 'foreign-diags'
(flymake--handle-report): Call
flymake--update-diagnostics-listings.
(flymake--handle-report): New helper.
(flymake--mode): Forward declare.
(flymake--handle-report): Rework for foreign diagnostics.
(flymake-mode): When turning on, notice any Flymake diagnostics
for current buffer.  When turning off update diagnostics listings.
(flymake-kill-buffer-hook): Turn off flymake explicitly before
killing.
(flymake--mode-line-counter): Use flymake-diagnostics to collect
diagnostics.
(flymake-show-diagnostic): Visit buffer of file-specific
diagnostic.
(flymake--tabulated-entries-1): New helper extracted from
flymake--diagnostic-buffer-entries.
(flymake--diagnostics-buffer-entries): Rework.
(flymake--diagnostics-base-tabulated-list-format): New helper.
(flymake--diagnostics-buffer-name): Adjust.
(flymake-list-only-diagnostics): New variable.
(flymake--project-diagnostic-list-project): New variable.
(flymake--clear-list-only-diagnostics): New helper.
(flymake-project-diagnostics-mode): New major mode.
(flymake--project-diagnostics)
(flymake--project-diagnostics-entries)
(flymake--project-diagnostics-buffer): New helpers.
(flymake-show-project-diagnostics): New command.
(flymake--update-diagnostics-listings): New helper.
(flymake-show-buffer-diagnostics): Renamed from flymake-diagnostics-buffer.

* etc/NEWS: Mention change.
2021-09-13 19:03:38 +01:00
João Távora
96304eadad Bump lisp/progmodes/project.el version to 0.7.1
Amont other things exposes the new project-buffers generic function to
ELPA users.

* lisp/progmodes/project.el (Version): Bump to 0.7.1
2021-09-13 19:03:38 +01:00
João Távora
dcdbb7486b Keep and report "foreign" diangnostics in flymake-cc Flymake backend
This includes diagnostics for .h files that sprang up when checking a
c file.  Those diagnostics are reported to the Flymake infrastructure
which does not (yet) do anything with them.

This includes a change to the test fixtures, too.

* lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics): Rework

* test/lisp/progmodes/flymake-resources/another-problematic-file.c:
  New file.

* test/lisp/progmodes/flymake-resources/some-problems.h:
  Add a function declaration..
2021-09-13 18:40:58 +01:00
João Távora
ac24adc376 Abbreviate Flymake backend name in flymake-show-diagnostics-buffer
* lisp/progmodes/flymake.el (flymake--diagnostics-buffer-entries):
(flymake-diagnostics-buffer-mode): Report abbreviated backend, too.
2021-09-13 18:40:58 +01:00
João Távora
2a02ac1fda Unbreak M-x compile-defun of functions using flymake-log
* lisp/progmodes/flymake.el (flymake-log): Check if compilation unit
  is indeed a string before treating it as a file name.
2021-09-13 18:40:58 +01:00
João Távora
0c1cb42b5b Refactor some Flymake functions
* lisp/progmodes/flymake.el (flymake-diagnostic-buffer): New
helper.
(flymake-diagnostic-beg, flymake-diagnostic-end): Tweak docstring.
(flymake--handle-report): Simplify.
(flymake--publish-diagnostics): Helper for flymake--handle-report.
(flymake--mode-line-counter, flymake-show-diagnostic)
(flymake--diagnostics-buffer-entries): Use
flymake-diagnostic-buffer, flymake-diagonstic-type,
flymake-diagnostic-beg.
2021-09-13 18:40:56 +01:00
João Távora
c6bc40137f Rename flymake--backend-state to flymake--state
The previous name was confusing and akward and dreadful to type and
read.

* lisp/progmodes/flymake.el (flymake--state): Rename from
flymake--backend-state.
(flymake--with-backend-state): Use flymake--state.
(flymake--handle-report): Use flymake--state.
(flymake--collect): Use flymake--state.
(flymake-running-backends): Use flymake--state.
(flymake--disable-backend): Use flymake--state.
(flymake--run-backend): Use flymake--state.
(flymake-start): Use flymake--state.
(flymake-mode): Use flymake--state.
(flymake--mode-line-title): Use flymake--state.
(flymake--mode-line-exception): Use flymake--state.
(flymake--mode-line-counter): Use flymake--state.
2021-09-13 18:39:17 +01:00
Mattias Engdegård
4cf6d03d04 Remove duplication of find file pattern arguments
* lisp/cedet/semantic/symref/grep.el
(semantic-symref-derive-find-filepatterns): Avoid including the same
pattern twice.
2021-09-13 18:41:58 +02:00
Andrea Corallo
1b0fb8fc2e * Clean-up some unnecessary macro usage in comp.c
* src/comp.c (emit_static_object)
	(Fcomp_native_driver_options_effective_p, add_driver_options)
	(Fcomp__compile_ctxt_to_file, Fcomp_libgccjit_version): Clean-up
	unenecessary 'defined (WINDOWSNT)' usage.
2021-09-13 16:51:49 +02:00
Lars Ingebrigtsen
ab36b0f5ff Continue NEWS tag checking 2021-09-13 16:18:30 +02:00
Lars Ingebrigtsen
5ee05fa75d Fix typo in previous files.el change 2021-09-13 15:32:20 +02:00
Lars Ingebrigtsen
59ff342869 Mention unibyte issues in insert-file-contents-literally doc string
* lisp/files.el (insert-file-contents-literally): Mention possible
issues with multibyte buffers (bug#50560).
2021-09-13 15:17:06 +02:00
Stefan Monnier
e4a187ca59 * doc/lispref/variables.texi (named-let): Document TCO 2021-09-13 09:14:05 -04:00
Dmitry Gutov
feadcae139 Fix the tests
* test/lisp/progmodes/xref-tests.el
(xref--xref-file-name-display-is-abs)
(xref--xref-file-name-display-is-nondirectory)
(xref--xref-file-name-display-is-relative-to-project-root):
Update for the latest change in xref.el.
2021-09-13 15:47:45 +03:00
Lars Ingebrigtsen
7fe88446c3 Use a fringe mark in bookmark instead of a whole background line
* lisp/bookmark.el (bookmark-face): Adjust colors.
(bookmark-fringe-mark): New bitmap.
(bookmark--fontify): Use a fringe instead of marking the whole line.
(bookmark--unfontify): Adjust to remove.
(bookmark--jump-via): Ditto.
(bookmark-set-fringe-mark): Renamed from bookmark-fontify.
(bookmark--set-fringe-mark, bookmark--remove-fringe-mark): Renamed
from --*fontify.  Callers adjusted.
2021-09-13 13:35:53 +02:00
Lars Ingebrigtsen
f5db710367 NEWS copy edits and tagging 2021-09-13 13:02:16 +02:00
Lars Ingebrigtsen
494403f4e0 Correct nroff-mode NEWS entry after `M-o' changes 2021-09-13 12:56:15 +02:00
Lars Ingebrigtsen
acc575846d Mention how to disable auto-fill-mode in the auto-fill section
* doc/lispref/text.texi (Margins): Mention how to disable
auto-fill-mode.
2021-09-13 12:41:34 +02:00
Lars Ingebrigtsen
0dc630b35b Document backtrace-on-error-noninteractive in the --batch section
* doc/emacs/cmdargs.texi (Initial Options): Mention
backtrace-on-error-noninteractive.
2021-09-13 12:35:50 +02:00
Lars Ingebrigtsen
11da064ff1 Further NEWS tagging updates 2021-09-13 12:32:10 +02:00
Lars Ingebrigtsen
adda0df193 completions-annotations doc string clarification
* lisp/minibuffer.el (completions-annotations): Mention that it's
not always used.
2021-09-13 12:20:57 +02:00
Lars Ingebrigtsen
5da8875e26 Update some more NEWS tagging 2021-09-13 12:13:01 +02:00
Lars Ingebrigtsen
893eb0b8a2 Mention `benchmark-call' in the manual
* doc/lispref/debugging.texi (Profiling): Mention `benchmark-call'.
2021-09-13 12:08:58 +02:00
Lars Ingebrigtsen
4b813f781e Update some pcase NEWS tags for already-documented functions 2021-09-13 11:59:56 +02:00
Lars Ingebrigtsen
53a9f751b5 Update NEWS tagging for string helper functions 2021-09-13 11:58:56 +02:00
Lars Ingebrigtsen
ba0be8df53 Document named-let and update some NEWS tags
* doc/lispref/variables.texi (Local Variables): Document `named-let'.
2021-09-13 11:53:18 +02:00
Lars Ingebrigtsen
2a3ef454c2 Clarify bookmark-fontify NEWS entry 2021-09-13 10:40:56 +02:00
Lars Ingebrigtsen
08540a29e3 package-menu-execute doc string clarification
* lisp/emacs-lisp/package.el (package-menu-execute): Say what
happens to upgrade-marked packages (bug#50551).
2021-09-13 10:35:22 +02:00
Lars Ingebrigtsen
e8a28d7564 * etc/NEWS: Clarify insert-into-buffer (bug#50558). 2021-09-13 10:35:22 +02:00
Juri Linkov
fd1379a85a Support mouse events clicked on the tab bar but outside of any tab (bug#41343)
* lisp/tab-bar.el (tab-bar--key-to-number): Return non-nil non-numeric t
when no tab is used.  Return nil for current-tab.
(tab-bar-mouse-select-tab, tab-bar-mouse-close-tab): Do nothing
when tab-bar--key-to-number returns non-nil non-numeric t
for click events outside of any tab.
(tab-bar-mouse-context-menu): Add context menu when mouse is clicked
outside of tabs.  Add "Duplicate" alongside with "Close" to the menu
used when mouse is clicked on a tab.
(toggle-tab-bar-mode-from-frame, toggle-frame-tab-bar): Move code
closer to 'tab-bar-show'.

* src/xdisp.c (handle_tab_bar_click): Return Qtab_bar with empty list
when mouse is clicked on the tab bar but outside of any tab.
2021-09-13 11:15:10 +03:00
Lars Ingebrigtsen
4ee8b4d225 Only do multi-isearch in eww if there's next/prev links
* lisp/net/eww.el (eww-handle-link): Only do multi-isearch if
there's a next/prev link in the HTML (bug#50497).
(eww-setup-buffer): Clear the function.
(eww-mode): Don't set it here.
2021-09-13 10:03:28 +02:00
Juri Linkov
bb446c1d96 Change value of DEFAULT_TAB_BAR_BUTTON_MARGIN from 4 to 1 (bug#50424) 2021-09-13 10:58:44 +03:00
Juri Linkov
381253b7b1 * doc/emacs/frames.texi (Tab Bars): Improve documentation. 2021-09-13 10:56:51 +03:00
Lars Ingebrigtsen
173c2ea8a3 Fix detection of char regions in print-fontset-element
* lisp/international/mule-diag.el (print-fontset-element): Fix the
regexp for "foo .. bar " (bug#50519).
2021-09-13 09:39:45 +02:00
Lars Ingebrigtsen
c1a1339526 Add some search-whitespace-regexp examples
* lisp/isearch.el (search-whitespace-regexp): Add some
alternatives in the defcustom.
2021-09-13 09:24:46 +02:00
Lars Ingebrigtsen
d15c430a84 Mention get-byte in shortdoc
* lisp/emacs-lisp/shortdoc.el (buffer): Mention `get-byte' here.
2021-09-13 09:20:21 +02:00
Tassilo Horn
8454566b76 bug-reference.el: Adapt default debbugs bug regexp for IRC modes
* lisp/progmodes/bug-reference.el (bug-reference-setup-from-irc-alist):
Adapt regexp so that group 1 defines overlay region.
2021-09-13 07:22:50 +02:00
Tassilo Horn
7fe756c014 bug-reference.el: Adapt default debbugs bug regexp for mail modes
* lisp/progmodes/bug-reference.el (bug-reference-setup-from-mail-alist):
Adapt regexp so that group 1 defines overlay region.
2021-09-13 07:11:05 +02:00
Stefan Kangas
fc6ed9a721 Declare unused function cperl-inside-parens-p obsolete
* lisp/progmodes/cperl-mode.el (cperl-inside-parens-p): Declare
unused function obsolete.
2021-09-13 06:44:52 +02:00
Stefan Kangas
f02624b342 ; Minor doc fixes found by checkdoc 2021-09-13 06:44:52 +02:00
Stefan Kangas
2110973351 Improve checkdoc abbreviation handling
* lisp/emacs-lisp/checkdoc.el
(checkdoc-in-abbreviation-p): New helper function.
(checkdoc-sentencespace-region-engine): Fix handling abbreviations
after escaped parenthesis.

* test/lisp/emacs-lisp/checkdoc-tests.el
(checkdoc-tests-in-abbrevation-p)
(checkdoc-tests-in-abbrevation-p/with-parens)
(checkdoc-tests-in-abbrevation-p/with-escaped-parens): New tests.
2021-09-13 06:44:52 +02:00
Stefan Kangas
bd601099b9 Remove some remaining references to XEmacs
* lisp/allout.el (allout-overlay-preparations):
* lisp/cedet/semantic/decorate/include.el
(semantic-decoration-unknown-include-menu)
(semantic-decoration-fileless-include-menu):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-setup-timers):
* lisp/vc/ediff-init.el:
* lisp/vc/ediff-util.el (ediff-mode): Remove some remaining references
to XEmacs.
2021-09-13 06:04:29 +02:00
Dmitry Gutov
d314951043 Extend xref-file-name-display to elisp and etags definitions
And all other types of locations (with a looks-like-file-name check).

* lisp/progmodes/xref.el (xref--group-name-for-display): Extract
from xref-buffer-location's implementation of xref-location-group.
(xref-file-location): Define trivial reader for the 'file' slot.
(xref-location-group): Update docstring.
(xref--analyze): Use the new function here, to be able to format
group names coming from any location type.
2021-09-13 01:37:32 +03:00
Amin Bandali
85d0ed097e
ERC: Use 'string-replace' only on Emacs 28 and later
* lisp/erc/erc-dcc.el (erc-dcc-unquote-filename):
* lisp/erc/erc.el (erc-quit-reason-zippy, erc-part-reason-zippy)
(erc-update-mode-line-buffer, erc-message-english-PART): Use
'string-replace' only on Emacs 28 and later, otherwise use
'replace-regexp-in-string' on older Emacsen.
2021-09-12 14:32:13 -04:00
Amin Bandali
e20bae005e
ERC: Use 'string-search' only on Emacs 28 and later
* lisp/erc/erc-backend.el (erc-parse-server-response):
* lisp/erc/erc-dcc.el (erc-dcc-member):
* lisp/erc/erc-speedbar.el (erc-speedbar-expand-server)
(erc-speedbar-expand-channel, erc-speedbar-expand-user):
* lisp/erc/erc.el (erc-send-input): Use 'string-search' only on
Emacs 28 and later, otherwise use 'string-match' on older Emacsen.
2021-09-12 14:32:12 -04:00
Juri Linkov
911043845d * lisp/tab-bar.el (tab-bar-get-buffer-tab): Use 'remq' instead of 'seq-remove' 2021-09-12 21:30:06 +03:00
Juri Linkov
aa33e38e21 Allow region-related context menu to be used on selected region with one click
* lisp/mouse.el (mouse-drag-track): Don't deactivate the mark for
the context menu invoked by down-mouse-3.

https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg01577.html
2021-09-12 20:55:57 +03:00
Juri Linkov
bd917088e6 * lisp/thingatpt.el (thing-at-mouse): New function (bug#50256).
* lisp/net/dictionary.el: Add 'context-menu-dictionary' to
'context-menu-functions'.
(dictionary-search-word-at-mouse): New function.
(context-menu-dictionary): New function that uses 'thing-at-mouse'.
(dictionary-mouse-popup-matching-words): Remove stray 'selected-window'.

* lisp/textmodes/flyspell.el (flyspell-context-menu): Add '_click' arg.
2021-09-12 20:32:02 +03:00
Juri Linkov
4877ddeaf7 * lisp/mouse.el (context-menu-map): Add 'click' arg to called funs (bug#50256)
(context-menu-toolbar, context-menu-global, context-menu-local)
(context-menu-minor, context-menu-buffers, context-menu-vc)
(context-menu-undo, context-menu-region, context-menu-ffap): Add 'click' arg.

* lisp/dired.el (dired-context-menu):
* lisp/help-mode.el (help-mode-context-menu):
* lisp/info.el (Info-context-menu):
* lisp/net/eww.el (eww-context-menu):
* lisp/net/goto-addr.el (goto-address-context-menu):
* lisp/progmodes/prog-mode.el (prog-context-menu):  Add 'click' arg.
2021-09-12 20:11:52 +03:00