marshalyyx2000 / protogg

Emacs package to remap project functions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Protogg

Protogg remapps the project.el functions to their non-project related functions while also providing a minbuffer keybinding to toggle between the two.

Getting Started

Here is a basic configuration using use-package.

(use-package protogg
  :ensure nil
  :vc (protogg :url "https://github.com/nehrbash/protogg"
               :branch "main")
  :custom (protogg-minibuffer-toggle-key "M-g")
  :bind (([remap async-shell-command] . protogg-async-shell-command) ;; M-&
         ("C-c x" . protogg-compile)
         ([remap dired] . protogg-dired) ;; C-x d
         ("C-c e" . protogg-eshell)
         ("M-s d" . protogg-find-dired)
         ([remap find-file] . protogg-find-file) ;; C-x C-f
         ([remap list-buffers] . protogg-list-buffers) ;; type C-x C-b
         ([remap shell-command] . protogg-shell-command) ;; M-!
         ("C-c s" . protogg-shell)
         ([remap switch-to-buffer] . sn/consult-buffer) ;; C-x b
         ("M-s i" . sn/imenu))
  :config
  ;; example adding your own
  (protogg-define 'consult-project-buffer 'consult-buffer sn/consult-buffer)
  (protogg-define 'consult-imenu-multi 'consult-imenu sn/imenu)) ;; C-x b

Usage

The project-* commands will be called instead of the typical command if a project is detected. An example of this is calling find-file. It will actually call project-find-file. However, you may not always want the project version. To solve this, while in the minibuffer you may switch between the two command with the protogg-switch-minibuffer Bounded to M-q by default but can be customized with protogg-minibuffer-toggle-key .

Recommend Packages

  • ibuffer-project - to easily switch between project buffers
  • consult - for the enhanced filtering and previewing as shown in the example config.
  • embark for embark-become which can either replace this package or complement it by allowing you to turn any minbuffer command into a diffrent one.

About

Emacs package to remap project functions.

License:GNU General Public License v3.0


Languages

Language:Emacs Lisp 100.0%