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

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

bug#41736: 28.0.50; project.el - support global patterns for project-ign


From: Dmitry Gutov
Subject: bug#41736: 28.0.50; project.el - support global patterns for project-ignores
Date: Sat, 6 Jun 2020 14:08:41 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0

On 06.06.2020 12:45, Theodor Thornhill wrote:
Hello,

In https://debbugs.gnu.org/cgi/bugreport.cgi?bug=41572 there is talk about supporting a "plain 
project", and when joining that chat I realised that the "best" current 
implementation is the VC backend. However, this backend does not easily include other patterns to 
ignore.

For example we might want to ignore "node_modules", "elm-stuff" etc.
These can be added pretty easily to 'project-vc-ignores' via:

1. Major mode support: "(setq-local project-vc-ignores '("foo" "bar"))"

I'm not sure major modes are the place to do this: after all, the user can call project-find-files while visiting a file in some other mode (say, README.md). The view of the list of project files should remain consistent.

2. User init.el "(add-to-list project-vc-ignores "foo")"

However, there are some drawbacks.
Method 1:
- We rely on major mode to implement this
- When using "project-switch-project", then press "f - find-file" the ignore is 
not recognized yet since it relies on the major mode.

Indeed.

- It does not work when a project uses several modes

And I think it's the common case.

Method 2:
- Needs user to add this to own init file.
- Pollutes the defcustom globally

Is there a way to set these patters such that we still can use the fast VC 
backend, but not have these drawbacks?

How about .dir-locals.el?

project--value-in-dir takes particular care to read these files.

It seems like an easy solution could be to add a "defcustom 
project-ignore-patterns" that the project-vc backend picks up. This could be set by 
both future major modes and as user customization.

This also either pollutes user's init.el or remains major mode specific, right?





reply via email to

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