[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
- bug#42411: Bug with M-x compile,
Gregory Heytings <=