aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBozhidar Batsov <bozhidar@batsov.dev>2025-02-04 15:45:32 +0200
committerBozhidar Batsov <bozhidar@batsov.dev>2025-02-04 15:45:32 +0200
commit315ffbd00552346feef8b58649560a024bde7610 (patch)
treee14915a4119205311bc234c5c9b85e87549e9396
parent3c60b323172df7afa855a585d8088499300820e7 (diff)
Move the design goals to their own section
-rw-r--r--README.md53
1 files changed, 36 insertions, 17 deletions
diff --git a/README.md b/README.md
index 21ee756..34f61c2 100644
--- a/README.md
+++ b/README.md
@@ -9,24 +9,11 @@
## Synopsis
-**Projectile** is a project interaction library for Emacs. Its goal is to
-provide a nice set of features operating on a project level without
-introducing external dependencies (when feasible). For instance -
-finding project files has a portable implementation written in pure
-Emacs Lisp without the use of GNU `find` (but for performance sake an
-indexing mechanism backed by external commands exists as well).
-
-Projectile tries to be practical - portability is great, but if some
-external tools could speed up some task substantially and the tools
-are available, Projectile will leverage them.
-
-This library provides easy project management and navigation. The concept of a
-project is pretty basic - just a folder containing some special file (e.g. a VCS
-marker or a project descriptor file like `pom.xml` or `Gemfile`). Projectile
-will auto-detect pretty much every popular project type out of the box
-and you can easily extend it with additional project types.
+**Projectile** is a project interaction library for Emacs.
+It provides a powerful set of features operating at the project
+level, as well as simple heuristics to identify projects.
-Here are some of Projectile's features:
+Here are some of essential Projectile's features:
* jump to a file in project
* jump to a project buffer
@@ -124,6 +111,38 @@ of the documentation for more details.
> changed in version 2.3. You may need to enable `ido-mode` in your Emacs
> configuration if updating from an older version of Projectile.
+## Design Goals
+
+In this section you'll find some notes on Projectile's design goals, that
+have been upheld since the earliest days of the project.
+
+### Portability
+
+Projectile provide a nice set of features operating on a project level without
+introducing external dependencies (when feasible). For instance -
+finding project files has a portable implementation written in pure
+Emacs Lisp without the use of GNU `find` (but for performance sake an
+indexing mechanism backed by external commands exists as well).
+
+### Simplicity
+
+This library provides easy project management and navigation. The concept of a
+project is pretty basic - just a folder containing some special file (e.g. a VCS
+marker or a project descriptor file like `pom.xml` or `Gemfile`). Projectile
+will auto-detect pretty much every popular project type out of the box
+and you can easily extend it with additional project types.
+
+### Practical
+
+Projectile tries to be practical - portability is great, but if some
+external tools could speed up some task substantially and the tools
+are available, Projectile will leverage them.
+
+### Super configurable
+
+In the classic spirit of Emacs almost every aspect of Projectile's behavior is
+configurable.
+
## Caveats
* Some operations like search (grep) depend (presently) on external