emacs/lisp/progmodes
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
..
antlr-mode.el Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
asm-mode.el
autoconf.el
bat-mode.el ; Minor doc fixes found by checkdoc 2021-09-13 06:44:52 +02:00
bug-reference.el bug-reference.el: Adapt default debbugs bug regexp for IRC modes 2021-09-13 07:22:50 +02:00
cc-align.el Convert CC Mode to lexical binding in Emacs 2021-04-10 19:20:14 +00:00
cc-awk.el ; Fix typos 2021-09-03 13:05:32 +02:00
cc-bytecomp.el Merge remote-tracking branch 'savannah/master' into native-comp 2021-04-19 18:46:50 +02:00
cc-cmds.el CC Mode: Put debug specs inside declare forms. Add missing debug specs. 2021-04-15 10:11:20 +00:00
cc-defs.el CC Mode: Move a macro to before its first use in a file. 2021-08-21 09:41:26 +00:00
cc-engine.el ; Fix typos 2021-09-03 13:05:32 +02:00
cc-fonts.el Merge from origin/emacs-27 2021-08-16 08:01:03 -07:00
cc-guess.el ; Fix typos: emacs lisp -> Emacs Lisp 2021-04-16 14:54:02 +02:00
cc-langs.el CC Mode: Enhance C++ Mode raw strings to multi-line strings for any language 2021-08-12 19:04:28 +00:00
cc-menus.el Convert CC Mode to lexical binding in Emacs 2021-04-10 19:20:14 +00:00
cc-mode.el CC Mode: Fix a bug in yesterday's patch 2021-08-13 20:58:30 +00:00
cc-styles.el ; Fix some typos in doc strings and manuals 2021-04-24 18:26:07 +02:00
cc-vars.el Convert CC Mode to lexical binding in Emacs 2021-04-10 19:20:14 +00:00
cfengine.el ; Minor doc fixes found by checkdoc 2021-09-13 06:44:52 +02:00
cl-font-lock.el
cmacexp.el Merge from origin/emacs-27 2021-07-04 00:14:47 -04:00
compile.el ; Minor doc fixes found by checkdoc 2021-09-13 06:44:52 +02:00
cperl-mode.el Declare unused function cperl-inside-parens-p obsolete 2021-09-13 06:44:52 +02:00
cpp.el
cwarn.el * lisp/progmodes/cwarn.el: Use lexical-binding. 2021-03-31 00:07:03 +02:00
dcl-mode.el * lisp/progmodes/dcl-mode.el: Clarify what is meant by DCL 2021-04-01 17:23:55 -04:00
ebnf-abn.el Fix abnf parsing of <prose> elements 2021-08-31 03:17:21 +02:00
ebnf-bnf.el * lisp/progmodes/ebnf-*.el: Use lexical-binding 2021-03-23 22:38:41 -04:00
ebnf-dtd.el * lisp/progmodes/ebnf-*.el: Use lexical-binding 2021-03-23 22:38:41 -04:00
ebnf-ebx.el * lisp/progmodes/ebnf-*.el: Use lexical-binding 2021-03-23 22:38:41 -04:00
ebnf-iso.el Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
ebnf-otz.el * lisp/progmodes/ebnf-*.el: Use lexical-binding 2021-03-23 22:38:41 -04:00
ebnf-yac.el Remove redundant #' before lambda in progmodes/*.el 2021-04-01 16:26:44 +02:00
ebnf2ps.el ; Minor doc fixes found by checkdoc 2021-09-13 06:44:52 +02:00
ebrowse.el ; Minor doc fixes found by checkdoc 2021-09-13 06:44:52 +02:00
elisp-mode.el Fix quoting style in Lisp comments 2021-09-12 19:51:06 +03:00
etags.el Doc string followup to last change. 2021-09-10 15:02:41 +03:00
executable.el Use lexical-binding in executable.el and add tests 2021-04-01 19:55:32 +02:00
f90.el
flymake-cc.el Keep and report "foreign" diangnostics in flymake-cc Flymake backend 2021-09-13 18:40:58 +01:00
flymake-proc.el
flymake.el Add support for project-wide diagnostics in Flymake (bug#50244) 2021-09-13 19:03:38 +01:00
fortran.el Fix double (recursive) load of fortran.el 2021-06-12 14:44:54 +02:00
gdb-mi.el Use string-search instead of string-match[-p] 2021-08-09 11:35:56 +02:00
glasses.el ; Remove some useless comments 2021-04-16 14:54:02 +02:00
grep.el More robust auto-detect of grep-highlight-matches (bug#49978) 2021-08-10 17:13:35 +02:00
gud.el Allow gud-mi to edit two executables with the same name 2021-09-03 12:44:22 +02:00
hideif.el ; Minor doc fixes found by checkdoc 2021-09-13 06:44:52 +02:00
hideshow.el Make hs-set-up-overlay into user option 2021-05-25 22:31:00 +02:00
icon.el Use lexical-binding in progmodes/icon.el 2021-02-27 03:24:51 +01:00
idlw-complete-structtag.el * list/progmodes/idl*.el: Use lexical-binding 2021-03-24 17:11:05 -04:00
idlw-help.el Use string-search instead of string-match[-p] 2021-08-09 11:35:56 +02:00
idlw-shell.el Use string-search instead of string-match[-p] 2021-08-09 11:35:56 +02:00
idlw-toolbar.el * list/progmodes/idl*.el: Use lexical-binding 2021-03-24 17:11:05 -04:00
idlwave.el Use string-search instead of string-match[-p] 2021-08-09 11:35:56 +02:00
inf-lisp.el Allow using spaces in `inferior-lisp' command names 2021-07-15 10:33:22 +02:00
js.el * lisp/progmodes/js.el (js--make-framework-matcher): Use a closure 2021-05-18 20:30:08 -04:00
ld-script.el
m4-mode.el
make-mode.el Use string-replace instead of replace-regexp-in-string 2021-08-08 19:25:26 +02:00
meta-mode.el ; Remove some useless comments 2021-04-16 14:54:02 +02:00
mixal-mode.el
modula2.el Fix infloop in Modula-2 mode 2021-05-25 06:18:29 +02:00
octave.el Use string-search instead of string-match[-p] 2021-08-09 11:35:56 +02:00
opascal.el * lisp/font-lock.el: Fix font-lock-comment-end-skip fallback (bug#34088) 2021-05-11 13:19:50 -04:00
pascal.el
perl-mode.el perl-mode: fix variable fontification 2021-08-07 12:37:47 +02:00
prog-mode.el * lisp/mouse.el (context-menu-map): Add 'click' arg to called funs (bug#50256) 2021-09-12 20:11:52 +03:00
project.el Bump lisp/progmodes/project.el version to 0.7.1 2021-09-13 19:03:38 +01:00
prolog.el Use string-replace instead of replace-regexp-in-string 2021-08-08 19:25:26 +02:00
ps-mode.el * lisp/progmodes/ps-mode.el: Use lexical-binding 2021-04-06 14:05:58 -04:00
python.el Keep python.el compatible with older Emacsen 2021-09-11 15:39:32 +02:00
ruby-mode.el * lisp/progmodes/ruby-mode.el (ruby-current-indentation): Tweak obsoletion. 2021-09-10 03:44:49 +03:00
scheme.el Fix font and indentation of call-with-port in scheme-mode 2021-05-25 22:22:28 +02:00
sh-script.el Revert "Tweak sh-script-mode indentation further" 2021-09-02 08:41:30 +02:00
simula.el * lisp/progmodes/simula.el: Use lexical-binding 2021-04-02 19:51:41 -04:00
sql.el Use string-search instead of string-match[-p] 2021-08-09 11:35:56 +02:00
subword.el
tcl.el Replace "(default %s)" with 'format-prompt' 2021-03-24 10:31:31 +01:00
vera-mode.el Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
verilog-mode.el Remove ineffective expression in verilog-mode 2021-08-03 15:55:55 +02:00
vhdl-mode.el ; Fix typos 2021-09-03 13:05:32 +02:00
which-func.el Use string-replace instead of replace-regexp-in-string 2021-08-08 19:25:26 +02:00
xref.el Extend xref-file-name-display to elisp and etags definitions 2021-09-13 01:37:32 +03:00
xscheme.el Use string-search instead of string-match[-p] 2021-08-09 11:35:56 +02:00