branch: elpa/projectile
commit 6a11eff0a66cd35c3dce761125a07fa9e2805795
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>

    Document previously undocumented configuration options
    
    - fd integration: projectile-git-use-fd, projectile-fd-executable,
      projectile-git-fd-args
    - Known projects: projectile-known-projects-file,
      projectile-ignored-projects, projectile-ignored-project-function,
      projectile-track-known-projects-automatically
    - Buffer filtering: projectile-buffers-filter-function,
      projectile-kill-buffers-filter
    - Test/impl toggling: projectile-default-src-directory,
      projectile-default-test-directory, projectile-test-prefix-function,
      projectile-test-suffix-function, projectile-create-missing-test-files
---
 doc/modules/ROOT/pages/configuration.adoc | 61 ++++++++++++++++++++++++++++
 doc/modules/ROOT/pages/projects.adoc      | 66 +++++++++++++++++++++++++++++++
 2 files changed, 127 insertions(+)

diff --git a/doc/modules/ROOT/pages/configuration.adoc 
b/doc/modules/ROOT/pages/configuration.adoc
index 4e7cac7543..f16d4cf3b1 100644
--- a/doc/modules/ROOT/pages/configuration.adoc
+++ b/doc/modules/ROOT/pages/configuration.adoc
@@ -82,6 +82,27 @@ find . -type f -print0
 TIP: It's a great idea to install https://github.com/sharkdp/fd[fd] which is 
much faster than `find`.
  If `fd` is found, projectile will use it as a replacement for `find`.
 
+By default, `fd` is also used inside Git repositories (instead of `git 
ls-files`),
+because `git ls-files` has the limitation that it lists deleted files until the
+deletions are staged. You can control this with `projectile-git-use-fd`:
+
+[source,elisp]
+----
+;; Disable fd in git repos (use git ls-files instead)
+(setq projectile-git-use-fd nil)
+----
+
+You can also customize the path to the `fd` executable and the arguments 
passed to it:
+
+[source,elisp]
+----
+;; Use a custom fd path
+(setq projectile-fd-executable "/usr/local/bin/fd")
+
+;; Customize the fd arguments used in git repos
+(setq projectile-git-fd-args "-H -0 -E .git -tf --strip-cwd-prefix -c never")
+----
+
 == Sorting
 
 You can choose how Projectile sorts files by customizing 
`projectile-sort-order`.
@@ -398,6 +419,46 @@ want to set
 in order to allow for the occasions where you want to select the
 top-level directory.
 
+== Known Projects
+
+Projectile stores the list of known projects in a file on disk.  You can
+customize its location:
+
+[source,elisp]
+----
+(setq projectile-known-projects-file "~/.emacs.d/projectile-bookmarks.eld")
+----
+
+=== Ignoring projects
+
+You can prevent certain projects from being added to the known projects list:
+
+[source,elisp]
+----
+;; A list of projects to ignore
+(setq projectile-ignored-projects '("/tmp/" "~/.emacs.d/"))
+----
+
+For more flexible filtering, set `projectile-ignored-project-function` to a
+predicate that receives a project root and returns non-nil if the project 
should
+be ignored:
+
+[source,elisp]
+----
+;; Ignore all remote (TRAMP) projects
+(setq projectile-ignored-project-function #'file-remote-p)
+----
+
+=== Automatic tracking
+
+By default, Projectile automatically adds projects to the known projects list
+whenever you visit a file in a project.  You can disable this:
+
+[source,elisp]
+----
+(setq projectile-track-known-projects-automatically nil)
+----
+
 == Completion Options
 
 Projectile supports all major minibuffer completion packages that
diff --git a/doc/modules/ROOT/pages/projects.adoc 
b/doc/modules/ROOT/pages/projects.adoc
index 4a07aca001..abb3a19b82 100644
--- a/doc/modules/ROOT/pages/projects.adoc
+++ b/doc/modules/ROOT/pages/projects.adoc
@@ -681,6 +681,40 @@ could be:
 In fact this is a lot more flexible in terms of finding test files in different
 locations, but will not create test files for you.
 
+=== Default source and test directories
+
+When a project type doesn't specify `:src-dir` or `:test-dir`, Projectile falls
+back to these defaults:
+
+[source,elisp]
+----
+(setq projectile-default-src-directory "src/")
+(setq projectile-default-test-directory "test/")
+----
+
+=== Custom test prefix/suffix functions
+
+For advanced use cases you can replace the functions that determine the test
+file prefix and suffix.  These receive the project type and should return the
+appropriate prefix or suffix string:
+
+[source,elisp]
+----
+(setq projectile-test-prefix-function #'my-test-prefix)
+(setq projectile-test-suffix-function #'my-test-suffix)
+----
+
+=== Creating missing test files
+
+By default, when you toggle to a test file that doesn't exist, Projectile will
+signal an error.  If you'd like Projectile to create the missing test file
+automatically:
+
+[source,elisp]
+----
+(setq projectile-create-missing-test-files t)
+----
+
 == Customizing Project Detection
 
 Project detection is pretty simple - Projectile just runs a list of
@@ -979,6 +1013,38 @@ Here are a couple of examples:
     "occur-mode"))
 ----
 
+=== Buffer filtering
+
+You can supply a custom filter function for `projectile-project-buffers` via
+`projectile-buffers-filter-function`.  Projectile ships with two built-in
+filters you can use:
+
+[source,elisp]
+----
+;; Only include file-backed buffers
+(setq projectile-buffers-filter-function #'projectile-buffers-with-file)
+
+;; Include file-backed buffers and process buffers (e.g. REPLs, shells)
+(setq projectile-buffers-filter-function 
#'projectile-buffers-with-file-or-process)
+----
+
+=== Killing project buffers
+
+When you run `projectile-kill-buffers` (kbd:[s-p k]), the variable
+`projectile-kill-buffers-filter` controls which buffers get killed:
+
+[source,elisp]
+----
+;; Kill all project buffers (the default)
+(setq projectile-kill-buffers-filter 'kill-all)
+
+;; Kill only file-visiting buffers (keep shells, REPLs, etc.)
+(setq projectile-kill-buffers-filter 'kill-only-files)
+----
+
+You can also set it to a custom predicate function that receives a buffer and
+returns non-nil if the buffer should be killed.
+
 == Configure a Project's Lifecycle Commands and Other Attributes
 
 There are a few variables that are intended to be customized via 
`.dir-locals.el`.

Reply via email to