Home
Softono
disproject

disproject

Open source Emacs Lisp
84
Stars
3
Forks
0
Issues
1
Watchers
5 months
Last Commit

About disproject

Transient interface for managing and interacting with projects

Platforms

Web Self-hosted

Languages

Emacs Lisp

Links

  • Disproject

Disproject is a [[https://www.gnu.org/software/emacs/][GNU Emacs]] package that implements [[https://github.com/magit/transient][Transient]] menus for managing and interacting with project files. It aims to provide a featureful, yet extensible interface from which users can intuitively dispatch commands on projects.

Some of its notable features include:

  • a main menu with access to many of the built-in project library's commands and other project-aware commands;
  • auto-detection of current project as the default project to act on from the menu;
  • options for switching to other projects from the menu in order to execute commands elsewhere;
  • a menu for finding common "special" project files, like the dir-locals file;
  • a menu for custom project-local suffix commands;
  • and display-buffer override options, to control where commands should display buffers to.

An Info manual is included with this program under the name =disproject=, which can also be viewed in the Org format at [[file:doc/disproject.org]].

This package was inspired by the ~project-switch-project~ command, from the built-in project library. Users may also draw similarities to the Projectile library's ~projectile-commander~.

[[file:images/disproject-dispatch.png]]

See [[file:images/][images]] for more screenshots of Disproject menus.

** Installation

[[https://melpa.org/#/disproject][file:https://melpa.org/packages/disproject-badge.svg]] [[https://stable.melpa.org/#/disproject][file:https://stable.melpa.org/packages/disproject-badge.svg]] [[https://packages.guix.gnu.org/packages/emacs-disproject][file:https://packages.guix.gnu.org/packages/emacs-disproject/badges/latest-version.svg]]

*** MELPA

Disproject is available in [[https://melpa.org/#/disproject][MELPA]] and [[https://stable.melpa.org/#/disproject][MELPA Stable]]. See [[https://melpa.org/#/getting-started][Getting Started]] instructions for using MELPA.

*** Guix

Disproject is also available as a [[https://guix.gnu.org/][GNU Guix]] package.

The stable version can be found in the ~(gnu packages emacs-xyz)~ module under the name ~emacs-disproject~. It may be installed in the user profile like so:

+begin_src sh

guix install emacs-disproject

+end_src

Alternatively, one may use the package definition in =./guix.scm= to install a development version of Disproject from the repository. For example, to install in the user profile, run the following in this repository's root directory:

+begin_src sh

guix package --install-from-file=guix.scm

+end_src

** Usage

BEGIN Copied text from Getting Started section of manual.

Disproject is usable out of the box. After it is loaded, the only command that needs to be known is ~disproject-dispatch~, which opens a transient interface - referred to as the "main menu" - with access to a collection of commands that the user can choose from to execute on projects.

The following configuration is a suggested minimal setup that can be added to the user's init file:

+begin_src emacs-lisp

(use-package disproject ;; Replace project-prefix-map' withdisproject-dispatch'. :bind ( :map ctl-x-map ("p" . disproject-dispatch)))

+end_src

END Copied text.

See [[file:doc/disproject.org][the manual]] for more information on using and configuring Disproject.