5

I have a big version-controlled directory hosting a lot of half-independent bodies of work. I want to consider them all as projects for projectile.

So I added an empty .projectile file in each of them, with the idea that projectile would pick that up instead of the .git above.

So the situation is like this

~/main-directory/
 -> .git
 -> project1/
     -> .projectile
     -> file1
     -> file2
 -> project2/
     -> .projectile
     -> file1
     -> file2

But if I open ~/main-directory/project2/file1 and call projectile-add-known-project, it considers the whole main-directory as one project. In particular, completion matches files with the same name in all subdirectories...

I have tried (setq projectile-project-root-files-bottom-up (delete ".projectile" projectile-project-root-files-bottom-up)), but it did not help.

Is there a simple way of telling projectile that the main-directory is not to be considered a project?

T. Verron
  • 4,283
  • 2
  • 24
  • 56

1 Answers1

3

The name is not explanatory, but the function projectile-remove-current-project-from-known-projects works fine: simply navigate to the main-directory and call the command. Visited subprojects will still appear in the project list.

More information: https://github.com/bbatsov/projectile/issues/315

One can also customize or set the variable projectile-globally-ignored-directories or projectile-ignored-projects to make the directory durably ignored. There must be a difference between the two, but I don't know it.

T. Verron
  • 4,283
  • 2
  • 24
  • 56
  • projectile-globally-ignored-directories is a list of regular expressions matching directories to be ignored within a project, such as .git and .svn (those are not in regexp form!).

    projectile-ignored-projects lists directories that should be excluded as projects entirely.

    – Win Dec 08 '23 at 15:51