bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#42411: Bug with M-x compile


From: Gregory Heytings
Subject: bug#42411: Bug with M-x compile
Date: Sat, 18 Jul 2020 09:01:48 +0000
User-agent: Alpine 2.21 (NEB 202 2017-01-01)


Thanks for fixing (the second part of) bug#42383.

The first part remains unfixed, however:

There are too many completion candidates in the list of targets when completing M-x compile. For example, for the Makefile "foo:\n\techo\x20bar:\n" three candidates are displayed: "foo", "echo" and "bar". The regexp in pcmpl-gnu-make-targets is too large, and should be fixed as follows:

--- pcmpl-gnu.el.orig   2020-06-29 17:39:26.000000000 +0000
+++ pcmpl-gnu.el        2020-07-15 22:43:14.368938346 +0000
@@ -118,7 +118,7 @@
 Return the new list."
   (goto-char (point-min))
   (while (re-search-forward
-         "^\\s-*\\([^\n#%.$][^:=\n]*\\)\\s-*:[^=]" nil t)
+          "^\\([^\t\n#%.$][^:=\n]*\\)\\s-*:[^=]" nil t)
     (setq targets (nconc (split-string (match-string-no-properties 1))
                          targets)))
   targets)

I see no reason to allow one or more TABs or spaces at the beginning of targets, as does the "^\\s-*". If one really wants to allow spaces (but not TABs) at the beginning of a target label, the following regexp could also be used: "^ *\\([^\t\n#%.$][^:=\n]*\\)\\s-*:[^=]".

The current regexp is an old one (since Emacs 21 at least), and is inconsistent with for example how bash computes completions (see _make_target_extract_script).

If changing the regexp is not an option, please make it a configuration option.

Gregory





reply via email to

[Prev in Thread] Current Thread [Next in Thread]