~ubuntu-elisp/emacs/+git/master:scratch/bug-50244

Last commit made on 2021-09-13
Get this branch:
git clone -b scratch/bug-50244 https://git.launchpad.net/~ubuntu-elisp/emacs/+git/master

Branch merges

Branch information

Name:
scratch/bug-50244
Repository:
lp:~ubuntu-elisp/emacs/+git/master

Recent commits

1f48b56... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

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.

44824d6... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

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.

96304ea... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

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

dcdbb74... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

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..

ac24adc... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

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.

2a02ac1... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

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.

0c1cb42... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

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.

c6bc401... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

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.

4cf6d03... by =?utf-8?q?Mattias_Engdeg=C3=A5rd?= <email address hidden>

Remove duplication of `find` file pattern arguments

* lisp/cedet/semantic/symref/grep.el
(semantic-symref-derive-find-filepatterns): Avoid including the same
pattern twice.

1b0fb8f... by Andrea Corallo <email address hidden>

* 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.