1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-03 02:31:03 -08:00
Commit graph

8968 commits

Author SHA1 Message Date
Mattias Engdegård
32de11d8de ; Remove various duplicated words
* doc/lispref/searching.texi (Extending Rx):
* doc/lispref/strings.texi (Creating Strings):
* doc/misc/modus-themes.org (Measure color contrast (DIY)):
* etc/NEWS:
* lisp/find-file.el (ff-find-other-file):
* lisp/gnus/gnus-group.el (gnus-group-suspend):
* lisp/progmodes/cc-langs.el (c-ml-string-any-closer-re):
* lisp/progmodes/flymake.el (flymake-list-only-diagnostics):
* lisp/progmodes/xref.el (xref--group-name-for-display):
* lisp/transient.el (transient-child, transient-files)
(transient-infix-value):
* src/alloc.c:
* src/regex-emacs.c (regex_compile):

Remove duplicate words in comments, documentation etc.
2021-09-25 20:25:01 +02:00
Lars Ingebrigtsen
bcbae720d5 'xref-search-program'-related doc string fixes
* lisp/progmodes/xref.el (xref-search-program): Mention what this
variable controls.
(xref-matches-in-files): Mention the variables that controls it.
2021-09-25 11:54:13 +02:00
Stefan Kangas
0da8118dcb Use command substitution instead of raw keys in more places
* admin/authors.el (authors):
* lisp/abbrev.el (abbrev-suggest-show-report):
* lisp/calc/calc.el (calc-display-trail, calc):
* lisp/completion.el (completion-locate-db-error):
* lisp/dired-x.el (dired-extra-startup):
* lisp/emacs-lisp/package.el (package-install-selected-packages):
* lisp/emulation/viper.el (viper-mode):
* lisp/facemenu.el (list-colors-display):
* lisp/mail/emacsbug.el (report-emacs-bug-hook):
* lisp/mail/sendmail.el (mail):
* lisp/menu-bar.el (menu-bar-mode):
* lisp/org/org.el (org-revert-all-org-buffers):
* lisp/progmodes/antlr-mode.el (antlr-help-rules-intro)
(antlr-insert-makefile-rules):
* lisp/progmodes/gdb-mi.el (gdb--check-interpreter):
* lisp/progmodes/xscheme.el (xscheme-process-sentinel):
* lisp/ps-print.el (ps-font-info-database):
* lisp/recentf.el (recentf-edit-list, recentf-open-files):
* lisp/vc/ediff-util.el (ediff-suspend):
* lisp/vc/pcvs.el (cvs-mode):
* lisp/vc/vc-bzr.el (vc-bzr-dir-extra-headers): Use command
substitution.
2021-09-24 21:26:08 +02:00
Miha Rihtaršič
66d1513762 Fix problems with 'C-c C-n' in sh-script-mode
* lisp/progmodes/sh-script.el (sh-shell-process): If a *shell* buffer
doesn't exist, 'C-c C-n' creates one and displays it.  This patch
prevents it from being displayed in the selected window.
Additionally, it ensures that the local `sh-shell-process' variable is
set in the correct buffer (bug#50765).
2021-09-23 23:19:11 +02:00
Dmitry Gutov
e646cb4e7a A bit less overhead when converting hits
* lisp/progmodes/xref.el (xref--collect-matches):
Move 'remote-id' and 'syntax-needed' definitions to the caller
function.  Bind 'inhibit-modification-hooks' to t (bug#50733).
2021-09-23 21:45:16 +03:00
Dmitry Gutov
90a7233199 More per-match overhead reduction
* lisp/progmodes/xref.el (xref--show-common-initialize)
(xref-revert-buffer): Inhibit modification hooks (bug#50733).
(xref--insert-xrefs): Cosmetics (no measurable difference here).
2021-09-23 20:37:11 +03:00
Dmitry Gutov
d0e9b88bf7 xref-matches-in-files: Decrease per match and per group overhead
* lisp/progmodes/xref.el (xref-search-program-alist):
Add '--null' argument for slightly faster parsing and probably
better behavior with weirder file names.
(xref--alistify): Don't accept TEST argument, use 'assoc' instead
of 'cl-assoc', use a tash table during sorting (bug#50733).
2021-09-23 20:37:10 +03:00
Wilson Snyder
ebe8b8f89e ; * lisp/progmodes/verilog-mode.el: Untabify doc-strings. 2021-09-23 11:43:29 -04:00
Philip Kaludercic
aef84c5f17 Add aggregate project discovery and maintenance functions
* project.el (project-remember-project): Add optional no-write argument
(project-remember-projects-under): Add command
(project-forget-zombie-projects): Add command
(project-forget-projects-under): Add command
* etc/NEWS: Document new commands
2021-09-23 14:07:00 +02:00
Wilson Snyder
a6a1c8600f verilog-mode.el: Backout part of recent change showing wrong comment 2021-09-23 07:36:02 -04:00
Stefan Kangas
d817f88578 Clarify which-function tooltip text
* lisp/progmodes/which-func.el (which-func-format): Clarify tooltip
text.
2021-09-23 13:23:29 +02:00
Stefan Kangas
aebba085cb ; More minor stylistic fixes found by checkdoc 2021-09-22 20:26:40 +02:00
Dmitry Gutov
7f06fe894c Put './' in the project directory completions
* lisp/progmodes/project.el (project--read-file-cpd-relative):
Put './' in the completions set when cpd was in the original
(bug#50732).
2021-09-22 21:08:42 +03:00
Juri Linkov
ac6afe9c33 Many improvements for Context Menus (bug#9054)
* lisp/menu-bar.el (menu-bar-showhide-menu): Add "Context Menus".

* lisp/mouse.el (context-menu-undo): Add "in Region" to the titles
when the region is active.
(context-menu-region): Use 'mouse-yank-from-menu' in menu items
created from 'yank-menu' for submenu "Paste from Kill Menu".
(context-menu-region): Add submenu "Select" with things to mark.
(mark-thing-at-mouse, mouse-yank-from-menu): New functions.

* lisp/thingatpt.el (bounds-of-thing-at-mouse): New function.

* lisp/progmodes/elisp-mode.el (elisp-context-menu):
* lisp/progmodes/prog-mode.el (prog-context-menu):
Use full symbol/identifier names in :help strings.

Suggested by Martin Rudalics <rudalics@gmx.at>
2021-09-22 20:08:45 +03:00
Wilson Snyder
eb42c4b099 verilog-mode.el: Enable lexical binding, and merge from upstream.
* lisp/progmodes/verilog-mode.el: Enable lexical binding.  Templates that
  used the never-documented `inst' or `submod' variables may need to change
  to use vl-... variables.
  (verilog-at-constraint-p): Fix indentation on double curly brackets
  (#1719) (#1744).  Reported by Nikolay Puzanov.
2021-09-22 10:19:57 -04:00
Lars Ingebrigtsen
85e9e5f616 Don't quote nil and t in doc strings and comments
* test/src/minibuf-tests.el (test-try-completion-ignore-case):
* test/lisp/url/url-auth-tests.el
(url-auth-test-digest-auth-retrieve-cache):
* test/lisp/subr-tests.el (subr-tests-add-hook-depth):
* test/lisp/so-long-tests/so-long-tests.el
(so-long-tests-invisible-buffer-function):
* test/lisp/emacs-lisp/tabulated-list-test.el (tabulated-list-sort):
* src/xfaces.c:
* src/process.c (Finterrupt_process):
(syms_of_process):
* src/minibuf.c (Fread_from_minibuffer):
(Fcompleting_read):
(syms_of_minibuf):
* src/dispnew.c (syms_of_display):
* src/data.c:
* lisp/so-long.el (so-long--hack-local-variables):
* lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions):
(elisp--xref-find-definitions):
* lisp/org/ox-html.el (org-html-htmlize-output-type):
* lisp/org/org-agenda.el (org-agenda-do-in-region):
* lisp/net/tramp.el:
* lisp/minibuffer.el (set-minibuffer-message):
* lisp/isearch.el (isearch-wrap-pause):
(isearch-repeat-on-direction-change):
* lisp/emacs-lisp/timer.el (timer):
* lisp/emacs-lisp/package.el (package-read-archive-contents):
* lisp/emacs-lisp/faceup.el (faceup-next-property-change):
* lisp/emacs-lisp/comp.el (comp-func):
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-empty-p):
* lisp/emacs-lisp/cl-macs.el (cl-do):
(cl-do*):
(cl--self-tco):
* lisp/emacs-lisp/bytecomp.el (byte-compile-unresolved-functions):
(byte-compile-cond-jump-table): Don't quote t and nil.
2021-09-21 22:11:43 +02:00
Lars Ingebrigtsen
43c1ee90cb Don't use `format' on strings without % format directives
* lisp/vc/ediff-init.el (ediff-BAD-INFO):
* lisp/url/url-ldap.el (url-ldap):
* lisp/url/url-http.el (url-http--user-agent-default-string):
* lisp/textmodes/reftex.el (reftex-access-parse-file):
* lisp/textmodes/reftex-index.el (reftex-index-phrases-info):
* lisp/textmodes/ispell.el (ispell-create-debug-buffer):
* lisp/term.el (serial-read-speed):
* lisp/progmodes/verilog-mode.el (verilog-scan-debug):
* lisp/progmodes/idlwave.el (idlwave-find-module):
* lisp/progmodes/compile.el (compilation-revert-buffer):
* lisp/org/org-agenda.el (org-search-view):
* lisp/net/telnet.el (telnet-revert-buffer):
* lisp/net/soap-inspect.el (soap-sample-value-for-xs-simple-type):
* lisp/net/newst-backend.el (newsticker--cache-read):
* lisp/mh-e/mh-seq.el (mh-msg-is-in-seq):
* lisp/mail/smtpmail.el (smtpmail-via-smtp):
* lisp/mail/emacsbug.el (report-emacs-bug):
* lisp/jsonrpc.el (jsonrpc-error):
* lisp/help-fns.el (describe-variable):
* lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt):
* lisp/gnus/gnus.el (gnus-group-startup-message):
(gnus-group-startup-message):
* lisp/gnus/gnus-group.el (gnus-group-restart):
* lisp/frame.el (make-frame-on-display):
* lisp/emulation/viper-ex.el (ex-help):
* lisp/calendar/icalendar.el (icalendar--convert-ical-to-diary):
(icalendar--add-diary-entry):
* lisp/calendar/cal-tex.el (cal-tex-end-document):
* lisp/calc/calcalg3.el (math-ninteg-romberg): Don't use `format'
on strings that have no % format directives in them.
2021-09-21 17:52:53 +02:00
Stefan Monnier
3bc7234349 * python.el (python-syntax-stringify): Extend comment about last change 2021-09-21 11:39:24 -04:00
Dmitry Gutov
e1712bdb35 Rename project-remove-known-project to project-forget-project
* doc/emacs/maintaining.texi (Managing Projects): Ditto.

* etc/NEWS: Update accordingly.

* lisp/progmodes/project.el (project-forget-project):
Rename from 'project-remove-known-project', for consistency with
'project-remember-project' (discussed in bug#50297).
2021-09-21 16:07:52 +03:00
João Távora
0646c68171 Make syntax-ppss more accurate for Python triple quotes (bug#49518)
By putting delimiter syntax on the last character of Python
triple-quoted strings, this makes syntax-ppss be more accurate.

Previously:

    emacs -Q something.py
    type two single quotes
    M-: (nth 3 (syntax-ppss))
    notice how the return value says you're outside a string, correctly
    type another quote
    M-: (nth 3 (syntax-ppss))
    notice how the return value says you're inside a string, correctly
    backspace the quote just entered
    M-: (nth 3 (syntax-ppss))
    notice how the return value says you're inside a string, incorrectly

With this patch the last step is corrected.  This helps things like
electric-pair-mode.  Also, the test
python-syntax-after-python-backspace now passes, again.

* lisp/progmodes/python.el (python-syntax-stringify): Put
delimiter syntax in "inner" of the surrouding triple quotes.

* test/lisp/progmodes/python-tests.el
(python-syntax-after-python-backspace): Passes again.
2021-09-21 10:56:27 +01:00
Dmitry Gutov
df1d4f5894 New command: project-find-dir
* doc/emacs/maintaining.texi (Project File Commands):
Mention the new command and update the bindings information.

* lisp/progmodes/project.el (project-find-dir):
New command (bug#43153).
(project-prefix-map): Use 'd' as its binding.
Move 'project-dired' to 'D'.
(project-switch-commands):
Replace 'project-dired' with 'project-find-dir'.
2021-09-21 03:53:21 +03:00
Basil L. Contovounesios
7d5930a6f0 Fix VC repo URL detection in bug-reference-mode
* lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-vc):
Pass file or directory name in question as the first argument to the
backend's repository-url implementation (bug#50689).  Use when-let
and seq-some to flatten nested conditionals.
2021-09-20 14:41:13 +01:00
Juri Linkov
4c3b6f2973 * lisp/progmodes/elisp-mode.el (elisp-context-menu): Improve menu items. 2021-09-19 19:22:03 +03:00
Stefan Kangas
7b3f02de12 Make two unused variables obsolete
* lisp/progmodes/idlw-help.el (idlwave-help-directory)
(idlwave-help-use-hh): Make unused variables obsolete.
2021-09-19 16:57:03 +02:00
Basil L. Contovounesios
1b623d0fbf Fontify Libtool macros in autoconf-mode
* lisp/progmodes/autoconf.el (autoconf-font-lock-keywords): Apply
font-lock-keyword-face also to Libtool's LT_* macros (bug#50659).
2021-09-18 13:12:32 +01:00
Juri Linkov
0ac58e89d7 * lisp/progmodes/elisp-mode.el (elisp-context-menu): Improve menu items. 2021-09-17 19:02:48 +03:00
Manuel Giraud
f29abc3db6 Fix typo in idlwave
* lisp/progmodes/idlwave.el (idlwave-keyword-abbrev): Fix typo
(bug#50638).
2021-09-17 16:34:05 +02:00
Dmitry Gutov
9ca737c419 xref-matches-in-files: Move sorting to Lisp
For better compatibility with different systems.
Performance is unaffected, except in very pathological cases
(~100000 matches), and even then the overhead of 'sort' is comparable.

* lisp/progmodes/xref.el (xref-search-program-alist):
Drop the piping through 'sort'.
(xref-matches-in-files): Sort here instead.
Do that to both searchers' output as well now.
2021-09-17 15:39:36 +03:00
Stefan Kangas
3f9f3ba437 Docfix: use command substitution for 'universal-argument'
* lisp/autoarg.el (autoarg-mode):
* lisp/bookmark.el (bookmark-set, bookmark-set-no-overwrite)
(bookmark-save):
* lisp/calendar/todo-mode.el (todo-insert-item)
(todo-filter-top-priorities)
(todo-filter-top-priorities-multifile):
* lisp/dired-x.el (dired-mark-extension, dired-mark-suffix):
* lisp/eshell/eshell.el (eshell):
* lisp/gnus/gnus-group.el (gnus-group-find-new-groups):
* lisp/gnus/gnus-start.el (gnus-find-new-newsgroups):
* lisp/gnus/gnus-sum.el (gnus-summary-show-article):
* lisp/gnus/gnus.el (gnus-secondary-servers):
* lisp/org/org-timer.el (org-timer-set-timer):
* lisp/org/ox.el (org-export-dispatch-last-position):
* lisp/printing.el (pr-ps-directory-preview)
(pr-ps-directory-using-ghostscript, pr-ps-directory-print)
(pr-ps-directory-ps-print, pr-ps-buffer-preview)
(pr-ps-buffer-using-ghostscript, pr-ps-buffer-print)
(pr-ps-buffer-ps-print, pr-despool-preview)
(pr-despool-using-ghostscript, pr-despool-print)
(pr-despool-ps-print, pr-ps-file-up-ps-print, pr-ps-fast-fire)
(pr-txt-fast-fire):
* lisp/progmodes/idlwave.el (idlwave-complete):
* lisp/progmodes/sh-script.el (sh-set-shell):
* lisp/replace.el (occur):
* lisp/ses.el (ses--advice-yank):
* lisp/simple.el (set-mark-command-repeat-pop):
* lisp/sort.el (delete-duplicate-lines):
* lisp/strokes.el (strokes-help):
* lisp/textmodes/artist.el (artist-mode):
* lisp/textmodes/reftex-cite.el (reftex-citation):
* lisp/textmodes/reftex-dcr.el (reftex-view-crossref):
* lisp/textmodes/reftex-index.el (reftex-index-selection-or-word)
(reftex-display-index):
* lisp/textmodes/reftex-ref.el (reftex-reference):
* lisp/textmodes/reftex-toc.el (reftex-toc):
* lisp/textmodes/reftex-vars.el (reftex-cite-prompt-optional-args)
(reftex-enable-partial-scans):
* lisp/textmodes/texnfo-upd.el (texinfo-master-menu):
* lisp/windmove.el (windmove-display-in-direction)
(windmove-delete-left, windmove-delete-up)
(windmove-delete-right, windmove-delete-down):
* lisp/window.el (recenter-window-group, recenter-other-window): Use
command substitution for 'universal-argument' instead of raw "C-u".
2021-09-16 20:05:48 +02:00
Stefan Kangas
63f419f133 ; Minor stylistic fixes found by checkdoc 2021-09-16 19:37:07 +02:00
Wilson Snyder
85c7993631 verilog-mode.el: Merge from upstream: prepare for lexical bindings.
* verilog-mode.el (verilog-do-indent)
(verilog-indent-declaration, verilog-read-always-signals-recurse)
(verilog-read-decls): Prepare for lexical bindings.
2021-09-16 10:23:10 -04:00
Augusto Stoffel
2172d6a28d Make 'compile' respect buffer-local process environment
* lisp/progmodes/compile.el (compilation-start): Use
`process-environment' from original buffer in the compilation
process (bug#50607).
2021-09-16 16:06:29 +02:00
Stefan Kangas
cfae83adac ; Normalize some header comments 2021-09-16 15:42:44 +02:00
Stefan Kangas
bcf59b99f4 Prefer "website" to "homepage"
These days, a "home page" is understood to be only "the main web page
of a website" or "landing page", whereas a "website" is "a collection
of web pages and related content" (Wikipedia).

* doc/emacs/emacs.texi (Top):
* doc/emacs/package.texi (Package Menu):
* doc/lispintro/emacs-lisp-intro.texi (Top):
* doc/lispref/elisp.texi (Top):
* doc/lispref/tips.texi (Documentation Tips):
* doc/misc/ede.texi (ede-project):
* doc/misc/efaq-w32.texi (More information):
* doc/misc/gnus-faq.texi (FAQ 5-7):
* doc/misc/gnus.texi (About mairix):
* doc/misc/mairix-el.texi (About):
* doc/misc/reftex.texi (AUCTeX, Imprint):
* lisp/cedet/ede/base.el (ede-project):
* lisp/cedet/ede/system.el (ede-web-browse-home):
* lisp/emacs-lisp/package.el (package-menu-mode-menu)
(package-browse-url):
* lisp/erc/erc-button.el (erc-emacswiki-url):
* lisp/filesets.el (filesets-goto-homepage):
* lisp/net/mairix.el:
* lisp/net/webjump.el (webjump-sample-sites):
* lisp/obsolete/vc-arch.el:
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/idlwave.el (idlwave, idlwave-mode):
* lisp/textmodes/reftex-vars.el (reftex):
Prefer "website" to "home page".

* doc/lispref/tips.texi (Documentation Tips):
Sort the "URL" header comment before "Homepage".

* lisp/emacs-lisp/lisp-mnt.el
(lm-website): Rename from 'lm-homepage'.
(lm-homepage): Make into alias for 'lm-website'.
2021-09-16 15:42:44 +02:00
Stefan Kangas
8a55d10629 Make a redundant idlwave variable obsolete
* lisp/progmodes/idlw-help.el (idlwave-help-browse-url-available):
Make obsolete.
(idlwave-help-check-locations): Don't use above variable.
2021-09-16 11:49:43 +02:00
Juri Linkov
231a29f363 Add docstrings to context menu functions, and add middle-separator
* lisp/mouse.el (context-menu-functions): Add context-menu-middle-separator
to default values.
(context-menu-middle-separator): New function.

* lisp/replace.el (occur-context-menu): Use middle-separator.

* lisp/progmodes/elisp-mode.el (elisp-context-menu):
* lisp/progmodes/prog-mode.el (prog-context-menu):
Use middle-separator and reorder menu items correspondingly.
2021-09-15 19:00:56 +03:00
Lars Ingebrigtsen
b2e3669d96 Tweak python-hideshow-forward-sexp-function warning avoidance
* lisp/progmodes/python.el
(python-hideshow-forward-sexp-function): Avoid compilation warning
in a more standard way.  Problem reported in
https://thedailywtf.com/articles/the-programmer-s-motto-and-other-comments
2021-09-15 15:53:53 +02:00
Augusto Stoffel
6cfc312d71 Python shell: rearrange printing of newline before output
* progmodes/python.el (python-shell-output-filter-in-progress)
(python-shell-output-filter-buffer): Move defvars to avoid compiler
warnings.
(python-shell-eval-setup-code): Don't print a newline in
__PYTHON_EL_eval.
(python-shell-send-string): Insert newline before output when
applicable (bug#50514).
2021-09-15 10:02:34 +02:00
Lars Ingebrigtsen
fbef1ee018 Mention lisp-data-mode' in emacs-lisp-mode' doc string
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Mention
`lisp-data-mode'.
2021-09-15 09:58:45 +02:00
Juri Linkov
ba28acf3b8 Adjust occur-context-menu and elisp-context-menu
* lisp/progmodes/elisp-mode.el (elisp-context-menu): Add separator
only when there is a symbol at mouse click.

* lisp/replace.el (occur-context-menu): Insert items in the middle
of the menu after mark-whole-buffer.
2021-09-15 10:20:42 +03:00
Dmitry Gutov
c83f5e77db ; Add a note 2021-09-15 05:51:24 +03:00
Dmitry Gutov
1f54c7aeed Localize namespace-filtering code
To be able to filter results coming from
elisp-xref-find-def-functions, and for general ease of
understanding.

* lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions):
Undo the previous change.
(xref-backend-apropos): Update accordingly.
(elisp--xref-filter-definitions): New function.
(xref-backend-definitions): Use it to post-filter the results
coming from elisp--xref-find-definitions.

* test/lisp/progmodes/elisp-mode-tests.el (find-defs-minor-defvar-c):
New test.
(find-defs-defun-defvar-el): Update test.
2021-09-15 05:33:06 +03:00
Wilson Snyder
e4fdf87e71 verilog-mode.el: Update verilog-mode from upstream.
* lisp/progmodes/verilog-mode.el: (verilog-basic-complete-re)
(verilog-behavioral-block-beg-re, verilog-defun-keywords)
(verilog-defun-level-generate-only-re, verilog-defun-level-re)
(verilog-endcomment-reason-re, verilog-indent-re) (verilog-keywords,
verilog-no-indent-begin-re) (verilog-set-auto-endcomments): Support
Verilog-A `analog` blocks (#1738).  Reported by Dan McMahill.
(verilog-read-defines): Fix verilog-read-defines to work
with SystemVerilog types (#1734).  Reported by Shareef Jalloq.
(verilog-indent-declaration,
verilog-pretty-declarations): Fix leaving extra spaces before tabs on
lining up declarations. (#1723) Reported by TAKAI Kousuke.
(verilog-auto-inst, verilog-auto-inst-port)
(verilog-read-auto-template-middle, verilog-read-sub-decls-line):
Support AUTONOHOOKUP to not AUTOWIRE hookup AUTO_TEMPLATE signals. (#1526)
Reported by firefoxtc.
2021-09-14 21:21:33 -04:00
João Távora
55dda2571a Unbreak make bootstrap (don't use cl-defun's &aux parameters)
* lisp/progmodes/flymake.el (flymake--handle-report): Don't use &aux.
2021-09-14 19:30:47 +01:00
Harald Jörg
3d49ad73e5 cperl-mode.el: Allow non-ASCII Perl identifiers
Replace all "A-Z" regexp literals with unicode-aware rx constructs
wherever Perl allows non-ASCII identifiers.
* lisp/progmodes/cperl-mode.el (cperl-after-sub-regexp)
(cperl-after-label. cperl-sniff-for-indent)
(cperl-find-pods-heres, cperl-indent-exp)
(cperl-fix-line-spacing, cperl-imenu--create-perl-index)
(cperl-init-faces, cperl-find-tags):
Replace ASCII regex literals by unicode-aware rx constructs.
(cperl-init-faces): Eliminate unused lexical `font-lock-anchored'.
(cperl-have-help-regexp, cperl-word-at-point-hard): Allow non-ASCII
word characters.

* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-fontify-special-variables): New test for $^T
and $^{VARNAME}.
(cperl-test-ws-rx cperl-test-ws+-rx),
(cperl-test-version-regexp, cperl-test-package-regexp): Skip
for perl-mode.
(cperl-test-identifier-rx, cperl--test-unicode-setup)
(cperl-test-unicode-labels, cperl-test-unicode-sub)
(cperl-test-unicode-varname)
(cperl-test-unicode-varname-list, cperl-test-unicode-arrays)
(cperl-test-unicode-hashes, cperl-test-unicode-hashref)
(cperl-test-unicode-proto, cperl-test-unicode-fhs)
(cperl-test-unicode-hashkeys, cperl-test-word-at-point):
New tests for unicode identifiers.
 (cperl-test-imenu-index): Add a unicode identifier to the test.

* test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add a
function with non-ASCII name for imenu tests.
2021-09-14 17:53:52 +02:00
João Távora
4633e02726 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-14 12:26:25 +01:00
João Távora
79eb840753 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-14 12:22:15 +01:00
João Távora
aec08e609e 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-14 12:22:15 +01:00
João Távora
7d9d3951c6 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-14 12:22:15 +01:00
João Távora
e793a73fbe 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-14 12:22:15 +01:00