Archived
1
0
Fork 0

Compare commits

..

No commits in common. "2e9149f2c718602ce411c7df01dcbccaf5d473c6" and "4f1e9b2dd958117dd2f34433007c48fa2bf017a7" have entirely different histories.

30 changed files with 23478 additions and 1 deletions

View file

@ -0,0 +1,59 @@
;;; transpose-frame-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "transpose-frame" "transpose-frame.el" (0 0
;;;;;; 0 0))
;;; Generated autoloads from transpose-frame.el
(autoload 'transpose-frame "transpose-frame" "\
Transpose windows arrangement at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'flip-frame "transpose-frame" "\
Flip windows arrangement vertically at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'flop-frame "transpose-frame" "\
Flop windows arrangement horizontally at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame "transpose-frame" "\
Rotate windows arrangement 180 degrees at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame-clockwise "transpose-frame" "\
Rotate windows arrangement 90 degrees clockwise at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame-anticlockwise "transpose-frame" "\
Rotate windows arrangement 90 degrees anti-clockwise at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(register-definition-prefixes "transpose-frame" '("transpose-frame-"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; transpose-frame-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from transpose-frame.el -*- no-byte-compile: t -*-
(define-package "transpose-frame" "20220913.1749" "Transpose windows arrangement in a frame" 'nil :commit "7b7f8a1582436749a57ebbba6ead716b5a0edddc" :authors '(("S. Irie")) :maintainer '("S. Irie") :keywords '("window"))

View file

@ -0,0 +1,237 @@
;;; transpose-frame.el --- Transpose windows arrangement in a frame
;; Copyright (c) 2011 S. Irie
;; Author: S. Irie
;; Keywords: window
;; Package-Version: 20220913.1749
;; Package-Commit: 7b7f8a1582436749a57ebbba6ead716b5a0edddc
;; This program is free software.
;; Redistribution and use in source and binary forms, with or without
;; modification, are permitted provided that the following conditions
;; are met:
;; 1. Redistributions of source code must retain the above copyright
;; notice, this list of conditions and the following disclaimer.
;; 2. Redistributions in binary form must reproduce the above copyright
;; notice, this list of conditions and the following disclaimer in the
;; documentation and/or other materials provided with the distribution.
;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;;; Commentary:
;; This program provides some interactive functions which allows users
;; to transpose windows arrangement in currently selected frame:
;;
;; `transpose-frame' ... Swap x-direction and y-direction
;;
;; +------------+------------+ +----------------+--------+
;; | | B | | A | |
;; | A +------------+ | | |
;; | | C | => +--------+-------+ D |
;; +------------+------------+ | B | C | |
;; | D | | | | |
;; +-------------------------+ +--------+-------+--------+
;;
;; `flip-frame' ... Flip vertically
;;
;; +------------+------------+ +------------+------------+
;; | | B | | D |
;; | A +------------+ +------------+------------+
;; | | C | => | | C |
;; +------------+------------+ | A +------------+
;; | D | | | B |
;; +-------------------------+ +------------+------------+
;;
;; `flop-frame' ... Flop horizontally
;;
;; +------------+------------+ +------------+------------+
;; | | B | | B | |
;; | A +------------+ +------------+ A |
;; | | C | => | C | |
;; +------------+------------+ +------------+------------+
;; | D | | D |
;; +-------------------------+ +-------------------------+
;;
;; `rotate-frame' ... Rotate 180 degrees
;;
;; +------------+------------+ +-------------------------+
;; | | B | | D |
;; | A +------------+ +------------+------------+
;; | | C | => | C | |
;; +------------+------------+ +------------+ A |
;; | D | | B | |
;; +-------------------------+ +------------+------------+
;;
;; `rotate-frame-clockwise' ... Rotate 90 degrees clockwise
;;
;; +------------+------------+ +-------+-----------------+
;; | | B | | | A |
;; | A +------------+ | | |
;; | | C | => | D +--------+--------+
;; +------------+------------+ | | B | C |
;; | D | | | | |
;; +-------------------------+ +-------+--------+--------+
;;
;; `rotate-frame-anticlockwise' ... Rotate 90 degrees anti-clockwise
;;
;; +------------+------------+ +--------+--------+-------+
;; | | B | | B | C | |
;; | A +------------+ | | | |
;; | | C | => +--------+--------+ D |
;; +------------+------------+ | A | |
;; | D | | | |
;; +-------------------------+ +-----------------+-------+
;;
;; This program is tested on GNU Emacs 22, 23.
;;; Code:
;;; Internal functions
(defun transpose-frame-get-arrangement (&optional frame subtree)
(let ((tree (or subtree
(car (window-tree frame)))))
(if (windowp tree)
(list (window-buffer tree)
(window-start tree)
(window-point tree)
(window-hscroll tree)
(window-margins tree)
(window-fringes tree)
(window-dedicated-p tree)
(jit-lock-register tree)
tree
(eq tree (frame-selected-window frame)))
(let* ((vertical (car tree))
(edges (cadr tree))
(length (float (if vertical
(- (nth 3 edges) (cadr edges))
(- (nth 2 edges) (car edges))))))
(cons vertical
(mapcar (lambda (subtree)
(cons (transpose-frame-get-arrangement frame subtree)
(/ (let ((edges (if (windowp subtree)
(window-edges subtree)
(cadr subtree))))
(if vertical
(- (nth 3 edges) (cadr edges))
(- (nth 2 edges) (car edges))))
length)))
(cddr tree)))))))
(defun transpose-frame-set-arrangement (config &optional window-or-frame &rest how)
(let ((window (if (windowp window-or-frame)
window-or-frame
(frame-selected-window window-or-frame))))
(unless (windowp window-or-frame)
(delete-other-windows window))
(if (bufferp (car config))
(let ((buffer (pop config)))
(set-window-buffer window buffer)
(set-window-start window (pop config))
(set-window-point window (pop config))
(set-window-hscroll window (pop config))
(set-window-margins window (caar config) (cdr (pop config)))
(apply 'set-window-fringes window (pop config))
(set-window-dedicated-p window (pop config))
(jit-lock-register window (pop config))
(let* ((orig-window (pop config))
(ol-func (lambda (ol)
(when (eq (overlay-get ol 'window) orig-window)
(overlay-put ol 'window window))))
(ol-lists (with-current-buffer buffer
(overlay-lists))))
(mapc ol-func (car ol-lists))
(mapc ol-func (cdr ol-lists)))
(if (car config) (select-window window)))
(let* ((horizontal (if (memq 'transpose how)
(pop config)
(not (pop config))))
(edges (window-edges window))
(length (if horizontal
(- (nth 2 edges) (car edges))
(- (nth 3 edges) (cadr edges)))))
(if (memq (if horizontal 'flop 'flip) how)
(setq config (reverse config)))
(while (cdr config)
(setq window (prog1
(split-window window (round (* length (cdar config)))
horizontal)
(apply 'transpose-frame-set-arrangement
(caar config) window how))
config (cdr config)))
(apply 'transpose-frame-set-arrangement
(caar config) window how)))))
;;; User commands
;;;###autoload
(defun transpose-frame (&optional frame)
"Transpose windows arrangement at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose)
(when (called-interactively-p 'any) (recenter)))
;;;###autoload
(defun flip-frame (&optional frame)
"Flip windows arrangement vertically at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flip))
;;;###autoload
(defun flop-frame (&optional frame)
"Flop windows arrangement horizontally at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flop))
;;;###autoload
(defun rotate-frame (&optional frame)
"Rotate windows arrangement 180 degrees at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flip 'flop))
;;;###autoload
(defun rotate-frame-clockwise (&optional frame)
"Rotate windows arrangement 90 degrees clockwise at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose 'flop)
(when (called-interactively-p 'any) (recenter)))
;;;###autoload
(defun rotate-frame-anticlockwise (&optional frame)
"Rotate windows arrangement 90 degrees anti-clockwise at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose 'flip)
(when (called-interactively-p 'any) (recenter)))
;;; _
;; Local Variables:
;; indent-tabs-mode: nil
;; End:
(provide 'transpose-frame)
;;; transpose-frame.el ends here

View file

@ -0,0 +1,59 @@
;;; transpose-frame-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "transpose-frame" "transpose-frame.el" (0 0
;;;;;; 0 0))
;;; Generated autoloads from transpose-frame.el
(autoload 'transpose-frame "transpose-frame" "\
Transpose windows arrangement at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'flip-frame "transpose-frame" "\
Flip windows arrangement vertically at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'flop-frame "transpose-frame" "\
Flop windows arrangement horizontally at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame "transpose-frame" "\
Rotate windows arrangement 180 degrees at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame-clockwise "transpose-frame" "\
Rotate windows arrangement 90 degrees clockwise at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame-anticlockwise "transpose-frame" "\
Rotate windows arrangement 90 degrees anti-clockwise at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(register-definition-prefixes "transpose-frame" '("transpose-frame-"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; transpose-frame-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from transpose-frame.el -*- no-byte-compile: t -*-
(define-package "transpose-frame" "20221109.2053" "Transpose windows arrangement in a frame" 'nil :commit "94c87794d53883a2358d13da264ad8dab9a52daa" :authors '(("S. Irie")) :maintainer '("S. Irie") :keywords '("window"))

View file

@ -0,0 +1,235 @@
;;; transpose-frame.el --- Transpose windows arrangement in a frame
;; Copyright (c) 2011 S. Irie
;; Author: S. Irie
;; Keywords: window
;; Package-Version: 20221109.2053
;; Package-Commit: 94c87794d53883a2358d13da264ad8dab9a52daa
;; This program is free software.
;; Redistribution and use in source and binary forms, with or without
;; modification, are permitted provided that the following conditions
;; are met:
;; 1. Redistributions of source code must retain the above copyright
;; notice, this list of conditions and the following disclaimer.
;; 2. Redistributions in binary form must reproduce the above copyright
;; notice, this list of conditions and the following disclaimer in the
;; documentation and/or other materials provided with the distribution.
;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;;; Commentary:
;; This program provides some interactive functions which allows users
;; to transpose windows arrangement in currently selected frame:
;;
;; `transpose-frame' ... Swap x-direction and y-direction
;;
;; +------------+------------+ +----------------+--------+
;; | | B | | A | |
;; | A +------------+ | | |
;; | | C | => +--------+-------+ D |
;; +------------+------------+ | B | C | |
;; | D | | | | |
;; +-------------------------+ +--------+-------+--------+
;;
;; `flip-frame' ... Flip vertically
;;
;; +------------+------------+ +------------+------------+
;; | | B | | D |
;; | A +------------+ +------------+------------+
;; | | C | => | | C |
;; +------------+------------+ | A +------------+
;; | D | | | B |
;; +-------------------------+ +------------+------------+
;;
;; `flop-frame' ... Flop horizontally
;;
;; +------------+------------+ +------------+------------+
;; | | B | | B | |
;; | A +------------+ +------------+ A |
;; | | C | => | C | |
;; +------------+------------+ +------------+------------+
;; | D | | D |
;; +-------------------------+ +-------------------------+
;;
;; `rotate-frame' ... Rotate 180 degrees
;;
;; +------------+------------+ +-------------------------+
;; | | B | | D |
;; | A +------------+ +------------+------------+
;; | | C | => | C | |
;; +------------+------------+ +------------+ A |
;; | D | | B | |
;; +-------------------------+ +------------+------------+
;;
;; `rotate-frame-clockwise' ... Rotate 90 degrees clockwise
;;
;; +------------+------------+ +-------+-----------------+
;; | | B | | | A |
;; | A +------------+ | | |
;; | | C | => | D +--------+--------+
;; +------------+------------+ | | B | C |
;; | D | | | | |
;; +-------------------------+ +-------+--------+--------+
;;
;; `rotate-frame-anticlockwise' ... Rotate 90 degrees anti-clockwise
;;
;; +------------+------------+ +--------+--------+-------+
;; | | B | | B | C | |
;; | A +------------+ | | | |
;; | | C | => +--------+--------+ D |
;; +------------+------------+ | A | |
;; | D | | | |
;; +-------------------------+ +-----------------+-------+
;;
;; This program is tested on GNU Emacs 22, 23.
;;; Code:
;;; Internal functions
(defun transpose-frame-get-arrangement (&optional frame subtree)
(let ((tree (or subtree
(car (window-tree frame)))))
(if (windowp tree)
(list (window-buffer tree)
(window-start tree)
(window-point tree)
(window-hscroll tree)
(window-margins tree)
(window-fringes tree)
(window-dedicated-p tree)
tree
(eq tree (frame-selected-window frame)))
(let* ((vertical (car tree))
(edges (cadr tree))
(length (float (if vertical
(- (nth 3 edges) (cadr edges))
(- (nth 2 edges) (car edges))))))
(cons vertical
(mapcar (lambda (subtree)
(cons (transpose-frame-get-arrangement frame subtree)
(/ (let ((edges (if (windowp subtree)
(window-edges subtree)
(cadr subtree))))
(if vertical
(- (nth 3 edges) (cadr edges))
(- (nth 2 edges) (car edges))))
length)))
(cddr tree)))))))
(defun transpose-frame-set-arrangement (config &optional window-or-frame &rest how)
(let ((window (if (windowp window-or-frame)
window-or-frame
(frame-selected-window window-or-frame))))
(unless (windowp window-or-frame)
(delete-other-windows window))
(if (bufferp (car config))
(let ((buffer (pop config)))
(set-window-buffer window buffer)
(set-window-start window (pop config))
(set-window-point window (pop config))
(set-window-hscroll window (pop config))
(set-window-margins window (caar config) (cdr (pop config)))
(apply 'set-window-fringes window (pop config))
(set-window-dedicated-p window (pop config))
(let* ((orig-window (pop config))
(ol-func (lambda (ol)
(when (eq (overlay-get ol 'window) orig-window)
(overlay-put ol 'window window))))
(ol-lists (with-current-buffer buffer
(overlay-lists))))
(mapc ol-func (car ol-lists))
(mapc ol-func (cdr ol-lists)))
(if (car config) (select-window window)))
(let* ((horizontal (if (memq 'transpose how)
(pop config)
(not (pop config))))
(edges (window-edges window))
(length (if horizontal
(- (nth 2 edges) (car edges))
(- (nth 3 edges) (cadr edges)))))
(if (memq (if horizontal 'flop 'flip) how)
(setq config (reverse config)))
(while (cdr config)
(setq window (prog1
(split-window window (round (* length (cdar config)))
horizontal)
(apply 'transpose-frame-set-arrangement
(caar config) window how))
config (cdr config)))
(apply 'transpose-frame-set-arrangement
(caar config) window how)))))
;;; User commands
;;;###autoload
(defun transpose-frame (&optional frame)
"Transpose windows arrangement at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose)
(when (called-interactively-p 'any) (recenter)))
;;;###autoload
(defun flip-frame (&optional frame)
"Flip windows arrangement vertically at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flip))
;;;###autoload
(defun flop-frame (&optional frame)
"Flop windows arrangement horizontally at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flop))
;;;###autoload
(defun rotate-frame (&optional frame)
"Rotate windows arrangement 180 degrees at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flip 'flop))
;;;###autoload
(defun rotate-frame-clockwise (&optional frame)
"Rotate windows arrangement 90 degrees clockwise at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose 'flop)
(when (called-interactively-p 'any) (recenter)))
;;;###autoload
(defun rotate-frame-anticlockwise (&optional frame)
"Rotate windows arrangement 90 degrees anti-clockwise at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose 'flip)
(when (called-interactively-p 'any) (recenter)))
;;; _
;; Local Variables:
;; indent-tabs-mode: nil
;; End:
(provide 'transpose-frame)
;;; transpose-frame.el ends here

View file

@ -76,6 +76,17 @@
; activate helm after its fully configured (may be configured beyond global defaults in other profiles so we have to activate locally)
(helm-mode 1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; projectile
(projectile-mode +1)
(define-key projectile-mode-map (kbd "C-c j") 'projectile-command-map)
(setq projectile-mode-line-function '(lambda () (format " [%s]" (projectile-project-name))))
;(setq projectile-project-search-path '("~/../src/"))
(require 'helm-projectile)
(helm-projectile-on)
(diminish 'projectile-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; programming
; code folding

View file

@ -8,7 +8,7 @@
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) ; this goes in chemacs2 init -- DO NOT UNCOMMENT
(package-initialize) ; this goes in chemacs2 init -- DO NOT UNCOMMENT
(add-to-list 'package-selected-packages
'(rainbow-mode rainbow-delimiters markdown-mode devdocs devdocs-browser focus zoom popwin dired-single diredfl xclip doominhibitinhibit-modeline magit helpful helm helm-org helm-ls-git dired-rainbow dired-rainbow-listing dired-single dash s origami modus-themes use-package)
'(rainbow-mode rainbow-delimiters markdown-mode devdocs devdocs-browser focus zoom popwin dired-single diredfl xclip doominhibitinhibit-modeline magit helpful helm helm-org helm-ls-git projectile helm-projectile dired-rainbow dired-rainbow-listing dired-single dash s origami persp-mode persp-mode-projectile-bridge modus-themes transpose-frame use-package)
)
(require 'use-package)
@ -177,6 +177,7 @@ position between last non-whitespace and `end-of-line'."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Setup global keys
(require 'transpose-frame)
(cua-mode 1)
(windmove-default-keybindings 'meta)
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
@ -202,6 +203,8 @@ position between last non-whitespace and `end-of-line'."
(global-set-key (kbd "M-k") 'delete-window)
(global-set-key (kbd "M-\"") 'split-window-below)
(global-set-key (kbd "M-#") 'split-window-right)
(global-set-key (kbd "M-.") 'rotate-frame-clockwise)
(global-set-key (kbd "M-,") 'rotate-frame-anticlockwise)
;; Lookup the current symbol at point. C-c C-d is a common keybinding
;; for this in lisp modes.
@ -385,6 +388,15 @@ position between last non-whitespace and `end-of-line'."
; activate helm after its fully configured
;(helm-mode 1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; persp-mode
(setq persp-auto-resume-time 0.25)
(setq persp-add-buffer-on-find-file nil)
(with-eval-after-load "persp-mode-autoloads"
(setq wg-morph-on nil) ;; switch off animation
(setq persp-autokill-buffer-on-remove 'kill-weak)
(add-hook 'window-setup-hook #'(lambda () (persp-mode 1))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; diminish config
; https://melpa.org/#/manage-minor-mode

View file

@ -0,0 +1,69 @@
;;; persp-mode-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "persp-mode" "persp-mode.el" (0 0 0 0))
;;; Generated autoloads from persp-mode.el
(autoload 'persp-def-auto-persp "persp-mode" "\
\(fn NAME &rest KEYARGS &key BUFFER-NAME FILE-NAME MODE MODE-NAME MINOR-MODE MINOR-MODE-NAME PREDICATE HOOKS DYN-ENV GET-NAME GET-BUFFER GET-PERSP SWITCH PARAMETERS NOAUTO WEAK USER-DATA ON-MATCH AFTER-MATCH DONT-PICK-UP-BUFFERS DELETE)" nil nil)
(define-obsolete-function-alias 'def-auto-persp 'persp-def-auto-persp "persp-mode 2.9.6")
(autoload 'persp-def-buffer-save/load "persp-mode" "\
\(fn &rest KEYARGS &key BUFFER-NAME FILE-NAME MODE MODE-NAME MINOR-MODE MINOR-MODE-NAME PREDICATE TAG-SYMBOL SAVE-VARS SAVE-FUNCTION LOAD-FUNCTION AFTER-LOAD-FUNCTION MODE-RESTORE-FUNCTION APPEND)" nil nil)
(define-obsolete-function-alias 'def-persp-buffer-save/load 'persp-def-buffer-save/load "persp-mode 2.9.6")
(defvar persp-mode nil "\
Non-nil if Persp mode is enabled.
See the `persp-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `persp-mode'.")
(custom-autoload 'persp-mode "persp-mode" nil)
(autoload 'persp-mode "persp-mode" "\
Toggle the persp-mode.
When active, keeps track of multiple 'perspectives',
named collections of buffers and window configurations.
Here is a keymap of this minor mode:
\\{persp-mode-map}
This is a minor mode. If called interactively, toggle the `Persp
mode' mode. If the prefix argument is positive, enable the mode,
and if it is zero or negative, disable the mode.
If called from Lisp, toggle the mode if ARG is `toggle'. Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.
To check whether the minor mode is enabled in the current buffer,
evaluate `(default-value \\='persp-mode)'.
The mode's hook is called both when the mode is enabled and when
it is disabled.
\(fn &optional ARG)" t nil)
(register-definition-prefixes "persp-mode" '("*persp-" "clear-window-persp" "def-" "get-" "ido-toggle-persp-filter" "persp" "safe-persp-" "set-" "window-persp-set-p" "with-persp-ido-hooks"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; persp-mode-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from persp-mode.el -*- no-byte-compile: t -*-
(define-package "persp-mode" "20220909.836" "windows/buffers sets shared among frames + save/load." '((emacs "24.3")) :commit "67be9feeb02613ea97f0de9eb5b792b193f073bc" :authors '(("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com")) :maintainer '("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com") :keywords '("perspectives" "session" "workspace" "persistence" "windows" "buffers" "convenience") :url "https://github.com/Bad-ptr/persp-mode.el")

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,69 @@
;;; persp-mode-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "persp-mode" "persp-mode.el" (0 0 0 0))
;;; Generated autoloads from persp-mode.el
(autoload 'persp-def-auto-persp "persp-mode" "\
\(fn NAME &rest KEYARGS &key BUFFER-NAME FILE-NAME MODE MODE-NAME MINOR-MODE MINOR-MODE-NAME PREDICATE HOOKS DYN-ENV GET-NAME GET-BUFFER GET-PERSP SWITCH PARAMETERS NOAUTO WEAK USER-DATA ON-MATCH AFTER-MATCH DONT-PICK-UP-BUFFERS DELETE)" nil nil)
(define-obsolete-function-alias 'def-auto-persp 'persp-def-auto-persp "persp-mode 2.9.6")
(autoload 'persp-def-buffer-save/load "persp-mode" "\
\(fn &rest KEYARGS &key BUFFER-NAME FILE-NAME MODE MODE-NAME MINOR-MODE MINOR-MODE-NAME PREDICATE TAG-SYMBOL SAVE-VARS SAVE-FUNCTION LOAD-FUNCTION AFTER-LOAD-FUNCTION MODE-RESTORE-FUNCTION APPEND)" nil nil)
(define-obsolete-function-alias 'def-persp-buffer-save/load 'persp-def-buffer-save/load "persp-mode 2.9.6")
(defvar persp-mode nil "\
Non-nil if Persp mode is enabled.
See the `persp-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `persp-mode'.")
(custom-autoload 'persp-mode "persp-mode" nil)
(autoload 'persp-mode "persp-mode" "\
Toggle the persp-mode.
When active, keeps track of multiple 'perspectives',
named collections of buffers and window configurations.
Here is a keymap of this minor mode:
\\{persp-mode-map}
This is a minor mode. If called interactively, toggle the `Persp
mode' mode. If the prefix argument is positive, enable the mode,
and if it is zero or negative, disable the mode.
If called from Lisp, toggle the mode if ARG is `toggle'. Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.
To check whether the minor mode is enabled in the current buffer,
evaluate `(default-value \\='persp-mode)'.
The mode's hook is called both when the mode is enabled and when
it is disabled.
\(fn &optional ARG)" t nil)
(register-definition-prefixes "persp-mode" '("*persp-" "clear-window-persp" "def-" "get-" "ido-toggle-persp-filter" "persp" "safe-persp-" "set-" "window-persp-set-p" "with-persp-ido-hooks"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; persp-mode-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from persp-mode.el -*- no-byte-compile: t -*-
(define-package "persp-mode" "20230110.1045" "windows/buffers sets shared among frames + save/load." '((emacs "24.3")) :commit "df95ea710e2a72f7a88293b72137acb0ca024d90" :authors '(("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com")) :maintainer '("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com") :keywords '("perspectives" "session" "workspace" "persistence" "windows" "buffers" "convenience") :url "https://github.com/Bad-ptr/persp-mode.el")

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,54 @@
;;; persp-mode-projectile-bridge-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "persp-mode-projectile-bridge" "persp-mode-projectile-bridge.el"
;;;;;; (0 0 0 0))
;;; Generated autoloads from persp-mode-projectile-bridge.el
(defvar persp-mode-projectile-bridge-mode nil "\
Non-nil if Persp-Mode-Projectile-Bridge mode is enabled.
See the `persp-mode-projectile-bridge-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `persp-mode-projectile-bridge-mode'.")
(custom-autoload 'persp-mode-projectile-bridge-mode "persp-mode-projectile-bridge" nil)
(autoload 'persp-mode-projectile-bridge-mode "persp-mode-projectile-bridge" "\
`persp-mode' and `projectile-mode' integration.
Creates perspectives for projectile projects.
This is a minor mode. If called interactively, toggle the
`Persp-Mode-Projectile-Bridge mode' mode. If the prefix argument
is positive, enable the mode, and if it is zero or negative,
disable the mode.
If called from Lisp, toggle the mode if ARG is `toggle'. Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.
To check whether the minor mode is enabled in the current buffer,
evaluate `(default-value \\='persp-mode-projectile-bridge-mode)'.
The mode's hook is called both when the mode is enabled and when
it is disabled.
\(fn &optional ARG)" t nil)
(register-definition-prefixes "persp-mode-projectile-bridge" '("persp-mode-projectile-bridge-"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; persp-mode-projectile-bridge-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from persp-mode-projectile-bridge.el -*- no-byte-compile: t -*-
(define-package "persp-mode-projectile-bridge" "20170315.1120" "persp-mode + projectile integration." '((persp-mode "2.9") (projectile "0.13.0") (cl-lib "0.5")) :commit "f6453cd7b8b4352c06e771706f2c5b7e2cdff1ce" :authors '(("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com")) :maintainer '("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com") :keywords '("persp-mode" "projectile") :url "https://github.com/Bad-ptr/persp-mode-projectile-bridge.el")

View file

@ -0,0 +1,211 @@
;;; persp-mode-projectile-bridge.el --- persp-mode + projectile integration. -*- lexical-binding: t -*-
;; Copyright (C) 2017 Constantin Kulikov
;;
;; Author: Constantin Kulikov (Bad_ptr) <zxnotdead@gmail.com>
;; Version: 0.1
;; Package-Version: 20170315.1120
;; Package-Commit: f6453cd7b8b4352c06e771706f2c5b7e2cdff1ce
;; Package-Requires: ((persp-mode "2.9") (projectile "0.13.0") (cl-lib "0.5"))
;; Date: 2017/03/04 10:10:41
;; License: GPL either version 3 or any later version
;; Keywords: persp-mode, projectile
;; URL: https://github.com/Bad-ptr/persp-mode-projectile-bridge.el
;;; License:
;; This file is not part of GNU Emacs.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3, or (at your option)
;; any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; if not, write to the Free Software
;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
;;; Commentary:
;; Creates a perspective for each projectile project.
;;; Usage:
;; Installation:
;; M-x package-install-file RET persp-mode-projectile-bridge.el RET
;; Example configuration:
;; (with-eval-after-load "persp-mode-projectile-bridge-autoloads"
;; (add-hook 'persp-mode-projectile-bridge-mode-hook
;; #'(lambda ()
;; (if persp-mode-projectile-bridge-mode
;; (persp-mode-projectile-bridge-find-perspectives-for-all-buffers)
;; (persp-mode-projectile-bridge-kill-perspectives))))
;; (add-hook 'after-init-hook
;; #'(lambda ()
;; (persp-mode-projectile-bridge-mode 1))
;; t))
;;; Code:
(require 'persp-mode)
(require 'projectile)
(require 'cl-lib)
(defvar persp-mode-projectile-bridge-mode nil)
(defgroup persp-mode-projectile-bridge nil
"persp-mode projectile integration."
:group 'persp-mode
:group 'projectile
:prefix "persp-mode-projectile-bridge-"
:link
'(url-link
:tag "Github" "https://github.com/Bad-ptr/persp-mode-projectile-bridge.el"))
(defcustom persp-mode-projectile-bridge-persp-name-prefix "[p] "
"Prefix to use for projectile perspective names."
:group 'persp-mode-projectile-bridge
:type 'string
:set #'(lambda (sym val)
(if persp-mode-projectile-bridge-mode
(let ((old-prefix (symbol-value sym)))
(custom-set-default sym val)
(let (old-name)
(mapc #'(lambda (p)
(when (and
p (persp-parameter
'persp-mode-projectile-bridge p))
(setq old-name
(substring (persp-name p)
(string-width old-prefix)))
(persp-rename (concat val old-name) p)))
(persp-persps))))
(custom-set-default sym val))))
(defun persp-mode-projectile-bridge-add-new-persp (name)
(let ((persp (persp-get-by-name name *persp-hash* :nil)))
(if (eq :nil persp)
(prog1
(setq persp (persp-add-new name))
(when persp
(set-persp-parameter 'persp-mode-projectile-bridge t persp)
(set-persp-parameter 'dont-save-to-file t persp)
(persp-add-buffer (projectile-project-buffers)
persp nil nil)))
persp)))
(defun persp-mode-projectile-bridge-find-perspective-for-buffer (b)
(when (buffer-live-p b)
(with-current-buffer b
(when (and persp-mode-projectile-bridge-mode
(buffer-file-name b) (projectile-project-p))
(let ((persp (persp-mode-projectile-bridge-add-new-persp
(concat persp-mode-projectile-bridge-persp-name-prefix
(projectile-project-name)))))
(when persp
(persp-add-buffer b persp nil nil)
persp))))))
(defvar persp-mode-projectile-bridge-before-switch-selected-window-buffer nil)
(defun persp-mode-projectile-bridge-hook-before-switch (&rest _args)
(let ((win (if (minibuffer-window-active-p (selected-window))
(minibuffer-selected-window)
(selected-window))))
(when (window-live-p win)
(setq persp-mode-projectile-bridge-before-switch-selected-window-buffer
(window-buffer win)))))
(defun persp-mode-projectile-bridge-hook-switch (&rest _args)
(let ((persp
(persp-mode-projectile-bridge-find-perspective-for-buffer
(current-buffer))))
(when persp
(when (buffer-live-p
persp-mode-projectile-bridge-before-switch-selected-window-buffer)
(let ((win (selected-window)))
(unless (eq (window-buffer win)
persp-mode-projectile-bridge-before-switch-selected-window-buffer)
(set-window-buffer
win persp-mode-projectile-bridge-before-switch-selected-window-buffer)
(setq persp-mode-projectile-bridge-before-switch-selected-window-buffer nil))))
(persp-frame-switch (persp-name persp)))))
(defun persp-mode-projectile-bridge-hook-find-file (&rest _args)
(let ((persp
(persp-mode-projectile-bridge-find-perspective-for-buffer
(current-buffer))))
(when persp
(persp-add-buffer (current-buffer) persp nil nil))))
(defun persp-mode-projectile-bridge-find-perspectives-for-all-buffers ()
(when (and persp-mode-projectile-bridge-mode)
(mapc #'persp-mode-projectile-bridge-find-perspective-for-buffer
(buffer-list))))
(defun persp-mode-projectile-bridge-kill-perspectives ()
(when (and persp-mode projectile-mode)
(mapc #'persp-kill
(mapcar #'persp-name
(cl-delete-if-not
(apply-partially
#'persp-parameter
'persp-mode-projectile-bridge)
(persp-persps))))))
;;;###autoload
(define-minor-mode persp-mode-projectile-bridge-mode
"`persp-mode' and `projectile-mode' integration.
Creates perspectives for projectile projects."
:require 'persp-mode-projectile-bridge
:group 'persp-mode-projectile-bridge
:init-value nil
:global t
(if persp-mode-projectile-bridge-mode
(if (and persp-mode projectile-mode)
(progn
(add-hook 'find-file-hook
#'persp-mode-projectile-bridge-hook-find-file)
(add-hook 'projectile-mode-hook
#'(lambda ()
(unless projectile-mode
(persp-mode-projectile-bridge-mode -1))))
(add-hook 'persp-mode-hook
#'(lambda ()
(unless persp-mode
(persp-mode-projectile-bridge-mode -1))))
(add-hook 'projectile-before-switch-project-hook
#'persp-mode-projectile-bridge-hook-before-switch)
(add-hook 'projectile-after-switch-project-hook
#'persp-mode-projectile-bridge-hook-switch)
(add-hook 'projectile-find-file-hook
#'persp-mode-projectile-bridge-hook-switch))
(message "You can not enable persp-mode-projectile-bridge-mode \
unless persp-mode and projectile-mode are active.")
(setq persp-mode-projectile-bridge-mode nil))
(remove-hook 'find-file-hook
#'persp-mode-projectile-bridge-hook-find-file)
(remove-hook 'projectile-before-switch-project-hook
#'persp-mode-projectile-bridge-hook-before-switch)
(remove-hook 'projectile-after-switch-project-hook
#'persp-mode-projectile-bridge-hook-switch)
(remove-hook 'projectile-find-file-hook
#'persp-mode-projectile-bridge-hook-switch)))
(provide 'persp-mode-projectile-bridge)
;;; persp-mode-projectile-bridge.el ends here

View file

@ -0,0 +1,640 @@
;;; projectile-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "projectile" "projectile.el" (0 0 0 0))
;;; Generated autoloads from projectile.el
(autoload 'projectile-version "projectile" "\
Get the Projectile version as string.
If called interactively or if SHOW-VERSION is non-nil, show the
version in the echo area and the messages buffer.
The returned string includes both, the version from package.el
and the library version, if both a present and different.
If the version number could not be determined, signal an error,
if called interactively, or if SHOW-VERSION is non-nil, otherwise
just return nil.
\(fn &optional SHOW-VERSION)" t nil)
(autoload 'projectile-invalidate-cache "projectile" "\
Remove the current project's files from `projectile-projects-cache'.
With a prefix argument PROMPT prompts for the name of the project whose cache
to invalidate.
\(fn PROMPT)" t nil)
(autoload 'projectile-purge-file-from-cache "projectile" "\
Purge FILE from the cache of the current project.
\(fn FILE)" t nil)
(autoload 'projectile-purge-dir-from-cache "projectile" "\
Purge DIR from the cache of the current project.
\(fn DIR)" t nil)
(autoload 'projectile-cache-current-file "projectile" "\
Add the currently visited file to the cache." t nil)
(autoload 'projectile-discover-projects-in-directory "projectile" "\
Discover any projects in DIRECTORY and add them to the projectile cache.
If DEPTH is non-nil recursively descend exactly DEPTH levels below DIRECTORY and
discover projects there.
\(fn DIRECTORY &optional DEPTH)" t nil)
(autoload 'projectile-discover-projects-in-search-path "projectile" "\
Discover projects in `projectile-project-search-path'.
Invoked automatically when `projectile-mode' is enabled." t nil)
(autoload 'projectile-switch-to-buffer "projectile" "\
Switch to a project buffer." t nil)
(autoload 'projectile-switch-to-buffer-other-window "projectile" "\
Switch to a project buffer and show it in another window." t nil)
(autoload 'projectile-switch-to-buffer-other-frame "projectile" "\
Switch to a project buffer and show it in another frame." t nil)
(autoload 'projectile-display-buffer "projectile" "\
Display a project buffer in another window without selecting it." t nil)
(autoload 'projectile-project-buffers-other-buffer "projectile" "\
Switch to the most recently selected buffer project buffer.
Only buffers not visible in windows are returned." t nil)
(autoload 'projectile-multi-occur "projectile" "\
Do a `multi-occur' in the project's buffers.
With a prefix argument, show NLINES of context.
\(fn &optional NLINES)" t nil)
(autoload 'projectile-find-other-file "projectile" "\
Switch between files with the same name but different extensions.
With FLEX-MATCHING, match any file that contains the base name of current file.
Other file extensions can be customized with the variable
`projectile-other-file-alist'.
\(fn &optional FLEX-MATCHING)" t nil)
(autoload 'projectile-find-other-file-other-window "projectile" "\
Switch between files with different extensions in other window.
Switch between files with the same name but different extensions in other
window. With FLEX-MATCHING, match any file that contains the base name of
current file. Other file extensions can be customized with the variable
`projectile-other-file-alist'.
\(fn &optional FLEX-MATCHING)" t nil)
(autoload 'projectile-find-other-file-other-frame "projectile" "\
Switch between files with different extensions in other frame.
Switch between files with the same name but different extensions in other frame.
With FLEX-MATCHING, match any file that contains the base name of current
file. Other file extensions can be customized with the variable
`projectile-other-file-alist'.
\(fn &optional FLEX-MATCHING)" t nil)
(autoload 'projectile-find-file-dwim "projectile" "\
Jump to a project's files using completion based on context.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
If point is on a filename, Projectile first tries to search for that
file in project:
- If it finds just a file, it switches to that file instantly. This works
even if the filename is incomplete, but there's only a single file in the
current project that matches the filename at point. For example, if
there's only a single file named \"projectile/projectile.el\" but the
current filename is \"projectile/proj\" (incomplete),
`projectile-find-file-dwim' still switches to \"projectile/projectile.el\"
immediately because this is the only filename that matches.
- If it finds a list of files, the list is displayed for selecting. A list
of files is displayed when a filename appears more than one in the project
or the filename at point is a prefix of more than two files in a project.
For example, if `projectile-find-file-dwim' is executed on a filepath like
\"projectile/\", it lists the content of that directory. If it is executed
on a partial filename like \"projectile/a\", a list of files with character
\"a\" in that directory is presented.
- If it finds nothing, display a list of all files in project for selecting.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file-dwim-other-window "projectile" "\
Jump to a project's files using completion based on context in other window.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
If point is on a filename, Projectile first tries to search for that
file in project:
- If it finds just a file, it switches to that file instantly. This works
even if the filename is incomplete, but there's only a single file in the
current project that matches the filename at point. For example, if
there's only a single file named \"projectile/projectile.el\" but the
current filename is \"projectile/proj\" (incomplete),
`projectile-find-file-dwim-other-window' still switches to
\"projectile/projectile.el\" immediately because this is the only filename
that matches.
- If it finds a list of files, the list is displayed for selecting. A list
of files is displayed when a filename appears more than one in the project
or the filename at point is a prefix of more than two files in a project.
For example, if `projectile-find-file-dwim-other-window' is executed on a
filepath like \"projectile/\", it lists the content of that directory. If
it is executed on a partial filename like \"projectile/a\", a list of files
with character \"a\" in that directory is presented.
- If it finds nothing, display a list of all files in project for selecting.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file-dwim-other-frame "projectile" "\
Jump to a project's files using completion based on context in other frame.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
If point is on a filename, Projectile first tries to search for that
file in project:
- If it finds just a file, it switches to that file instantly. This works
even if the filename is incomplete, but there's only a single file in the
current project that matches the filename at point. For example, if
there's only a single file named \"projectile/projectile.el\" but the
current filename is \"projectile/proj\" (incomplete),
`projectile-find-file-dwim-other-frame' still switches to
\"projectile/projectile.el\" immediately because this is the only filename
that matches.
- If it finds a list of files, the list is displayed for selecting. A list
of files is displayed when a filename appears more than one in the project
or the filename at point is a prefix of more than two files in a project.
For example, if `projectile-find-file-dwim-other-frame' is executed on a
filepath like \"projectile/\", it lists the content of that directory. If
it is executed on a partial filename like \"projectile/a\", a list of files
with character \"a\" in that directory is presented.
- If it finds nothing, display a list of all files in project for selecting.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file "projectile" "\
Jump to a project's file using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file-other-window "projectile" "\
Jump to a project's file using completion and show it in another window.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file-other-frame "projectile" "\
Jump to a project's file using completion and show it in another frame.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-toggle-project-read-only "projectile" "\
Toggle project read only." t nil)
(autoload 'projectile-add-dir-local-variable "projectile" "\
Run `add-dir-local-variable' with .dir-locals.el in root of project.
Parameters MODE VARIABLE VALUE are passed directly to `add-dir-local-variable'.
\(fn MODE VARIABLE VALUE)" nil nil)
(autoload 'projectile-delete-dir-local-variable "projectile" "\
Run `delete-dir-local-variable' with .dir-locals.el in root of project.
Parameters MODE VARIABLE VALUE are passed directly to
`delete-dir-local-variable'.
\(fn MODE VARIABLE)" nil nil)
(autoload 'projectile-find-dir "projectile" "\
Jump to a project's directory using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-dir-other-window "projectile" "\
Jump to a project's directory in other window using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-dir-other-frame "projectile" "\
Jump to a project's directory in other frame using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-test-file "projectile" "\
Jump to a project's test file using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-related-file-other-window "projectile" "\
Open related file in other window." t nil)
(autoload 'projectile-find-related-file-other-frame "projectile" "\
Open related file in other frame." t nil)
(autoload 'projectile-find-related-file "projectile" "\
Open related file." t nil)
(autoload 'projectile-related-files-fn-groups "projectile" "\
Generate a related-files-fn which relates as KIND for files in each of GROUPS.
\(fn KIND GROUPS)" nil nil)
(autoload 'projectile-related-files-fn-extensions "projectile" "\
Generate a related-files-fn which relates as KIND for files having EXTENSIONS.
\(fn KIND EXTENSIONS)" nil nil)
(autoload 'projectile-related-files-fn-test-with-prefix "projectile" "\
Generate a related-files-fn which relates tests and impl.
Use files with EXTENSION based on TEST-PREFIX.
\(fn EXTENSION TEST-PREFIX)" nil nil)
(autoload 'projectile-related-files-fn-test-with-suffix "projectile" "\
Generate a related-files-fn which relates tests and impl.
Use files with EXTENSION based on TEST-SUFFIX.
\(fn EXTENSION TEST-SUFFIX)" nil nil)
(autoload 'projectile-project-info "projectile" "\
Display info for current project." t nil)
(autoload 'projectile-find-implementation-or-test-other-window "projectile" "\
Open matching implementation or test file in other window.
See the documentation of `projectile--find-matching-file' and
`projectile--find-matching-test' for how implementation and test files
are determined." t nil)
(autoload 'projectile-find-implementation-or-test-other-frame "projectile" "\
Open matching implementation or test file in other frame.
See the documentation of `projectile--find-matching-file' and
`projectile--find-matching-test' for how implementation and test files
are determined." t nil)
(autoload 'projectile-toggle-between-implementation-and-test "projectile" "\
Toggle between an implementation file and its test file.
See the documentation of `projectile--find-matching-file' and
`projectile--find-matching-test' for how implementation and test files
are determined." t nil)
(autoload 'projectile-grep "projectile" "\
Perform rgrep in the project.
With a prefix ARG asks for files (globbing-aware) which to grep in.
With prefix ARG of `-' (such as `M--'), default the files (without prompt),
to `projectile-grep-default-files'.
With REGEXP given, don't query the user for a regexp.
\(fn &optional REGEXP ARG)" t nil)
(autoload 'projectile-ag "projectile" "\
Run an ag search with SEARCH-TERM in the project.
With an optional prefix argument ARG SEARCH-TERM is interpreted as a
regular expression.
\(fn SEARCH-TERM &optional ARG)" t nil)
(autoload 'projectile-ripgrep "projectile" "\
Run a ripgrep (rg) search with `SEARCH-TERM' at current project root.
With an optional prefix argument ARG SEARCH-TERM is interpreted as a
regular expression.
This command depends on of the Emacs packages ripgrep or rg being
installed to work.
\(fn SEARCH-TERM &optional ARG)" t nil)
(autoload 'projectile-regenerate-tags "projectile" "\
Regenerate the project's [e|g]tags." t nil)
(autoload 'projectile-find-tag "projectile" "\
Find tag in project." t nil)
(autoload 'projectile-run-command-in-root "projectile" "\
Invoke `execute-extended-command' in the project's root." t nil)
(autoload 'projectile-run-shell-command-in-root "projectile" "\
Invoke `shell-command' in the project's root.
\(fn COMMAND &optional OUTPUT-BUFFER ERROR-BUFFER)" t nil)
(autoload 'projectile-run-async-shell-command-in-root "projectile" "\
Invoke `async-shell-command' in the project's root.
\(fn COMMAND &optional OUTPUT-BUFFER ERROR-BUFFER)" t nil)
(autoload 'projectile-run-gdb "projectile" "\
Invoke `gdb' in the project's root." t nil)
(autoload 'projectile-run-shell "projectile" "\
Invoke `shell' in the project's root.
Switch to the project specific shell buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-run-eshell "projectile" "\
Invoke `eshell' in the project's root.
Switch to the project specific eshell buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-run-ielm "projectile" "\
Invoke `ielm' in the project's root.
Switch to the project specific ielm buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-run-term "projectile" "\
Invoke `term' in the project's root.
Switch to the project specific term buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-run-vterm "projectile" "\
Invoke `vterm' in the project's root.
Switch to the project specific term buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-replace "projectile" "\
Replace literal string in project using non-regexp `tags-query-replace'.
With a prefix argument ARG prompts you for a directory and file name patterns
on which to run the replacement.
\(fn &optional ARG)" t nil)
(autoload 'projectile-replace-regexp "projectile" "\
Replace a regexp in the project using `tags-query-replace'.
With a prefix argument ARG prompts you for a directory on which
to run the replacement.
\(fn &optional ARG)" t nil)
(autoload 'projectile-kill-buffers "projectile" "\
Kill project buffers.
The buffer are killed according to the value of
`projectile-kill-buffers-filter'." t nil)
(autoload 'projectile-save-project-buffers "projectile" "\
Save all project buffers." t nil)
(autoload 'projectile-dired "projectile" "\
Open `dired' at the root of the project." t nil)
(autoload 'projectile-dired-other-window "projectile" "\
Open `dired' at the root of the project in another window." t nil)
(autoload 'projectile-dired-other-frame "projectile" "\
Open `dired' at the root of the project in another frame." t nil)
(autoload 'projectile-vc "projectile" "\
Open `vc-dir' at the root of the project.
For git projects `magit-status-internal' is used if available.
For hg projects `monky-status' is used if available.
If PROJECT-ROOT is given, it is opened instead of the project
root directory of the current buffer file. If interactively
called with a prefix argument, the user is prompted for a project
directory to open.
\(fn &optional PROJECT-ROOT)" t nil)
(autoload 'projectile-recentf "projectile" "\
Show a list of recently visited files in a project." t nil)
(autoload 'projectile-configure-project "projectile" "\
Run project configure command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-compile-project "projectile" "\
Run project compilation command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-test-project "projectile" "\
Run project test command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-install-project "projectile" "\
Run project install command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-package-project "projectile" "\
Run project package command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-run-project "projectile" "\
Run project run command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-repeat-last-command "projectile" "\
Run last projectile external command.
External commands are: `projectile-configure-project',
`projectile-compile-project', `projectile-test-project',
`projectile-install-project', `projectile-package-project',
and `projectile-run-project'.
If the prefix argument SHOW_PROMPT is non nil, the command can be edited.
\(fn SHOW-PROMPT)" t nil)
(autoload 'projectile-switch-project "projectile" "\
Switch to a project we have visited before.
Invokes the command referenced by `projectile-switch-project-action' on switch.
With a prefix ARG invokes `projectile-commander' instead of
`projectile-switch-project-action.'
\(fn &optional ARG)" t nil)
(autoload 'projectile-switch-open-project "projectile" "\
Switch to a project we have currently opened.
Invokes the command referenced by `projectile-switch-project-action' on switch.
With a prefix ARG invokes `projectile-commander' instead of
`projectile-switch-project-action.'
\(fn &optional ARG)" t nil)
(autoload 'projectile-find-file-in-directory "projectile" "\
Jump to a file in a (maybe regular) DIRECTORY.
This command will first prompt for the directory the file is in.
\(fn &optional DIRECTORY)" t nil)
(autoload 'projectile-find-file-in-known-projects "projectile" "\
Jump to a file in any of the known projects." t nil)
(autoload 'projectile-cleanup-known-projects "projectile" "\
Remove known projects that don't exist anymore." t nil)
(autoload 'projectile-clear-known-projects "projectile" "\
Clear both `projectile-known-projects' and `projectile-known-projects-file'." t nil)
(autoload 'projectile-reset-known-projects "projectile" "\
Clear known projects and rediscover." t nil)
(autoload 'projectile-remove-known-project "projectile" "\
Remove PROJECT from the list of known projects.
\(fn &optional PROJECT)" t nil)
(autoload 'projectile-remove-current-project-from-known-projects "projectile" "\
Remove the current project from the list of known projects." t nil)
(autoload 'projectile-add-known-project "projectile" "\
Add PROJECT-ROOT to the list of known projects.
\(fn PROJECT-ROOT)" t nil)
(autoload 'projectile-ibuffer "projectile" "\
Open an IBuffer window showing all buffers in the current project.
Let user choose another project when PROMPT-FOR-PROJECT is supplied.
\(fn PROMPT-FOR-PROJECT)" t nil)
(autoload 'projectile-commander "projectile" "\
Execute a Projectile command with a single letter.
The user is prompted for a single character indicating the action to invoke.
The `?' character describes then
available actions.
See `def-projectile-commander-method' for defining new methods." t nil)
(autoload 'projectile-browse-dirty-projects "projectile" "\
Browse dirty version controlled projects.
With a prefix argument, or if CACHED is non-nil, try to use the cached
dirty project list.
\(fn &optional CACHED)" t nil)
(autoload 'projectile-edit-dir-locals "projectile" "\
Edit or create a .dir-locals.el file of the project." t nil)
(defvar projectile-mode nil "\
Non-nil if Projectile mode is enabled.
See the `projectile-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `projectile-mode'.")
(custom-autoload 'projectile-mode "projectile" nil)
(autoload 'projectile-mode "projectile" "\
Minor mode to assist project management and navigation.
When called interactively, toggle `projectile-mode'. With prefix
ARG, enable `projectile-mode' if ARG is positive, otherwise disable
it.
When called from Lisp, enable `projectile-mode' if ARG is omitted,
nil or positive. If ARG is `toggle', toggle `projectile-mode'.
Otherwise behave as if called interactively.
\\{projectile-mode-map}
\(fn &optional ARG)" t nil)
(define-obsolete-function-alias 'projectile-global-mode 'projectile-mode "1.0")
(register-definition-prefixes "projectile" '("??" "compilation-find-file-projectile-find-compilation-buffer" "def-projectile-commander-method" "delete-file-projectile-remove-from-cache" "project"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; projectile-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from projectile.el -*- no-byte-compile: t -*-
(define-package "projectile" "20221105.1641" "Manage and navigate projects in Emacs easily" '((emacs "25.1")) :commit "3de6bdc2ae6c5ce08bce3726cec936e4da5d9bad" :authors '(("Bozhidar Batsov" . "bozhidar@batsov.dev")) :maintainer '("Bozhidar Batsov" . "bozhidar@batsov.dev") :keywords '("project" "convenience") :url "https://github.com/bbatsov/projectile")

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,640 @@
;;; projectile-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "projectile" "projectile.el" (0 0 0 0))
;;; Generated autoloads from projectile.el
(autoload 'projectile-version "projectile" "\
Get the Projectile version as string.
If called interactively or if SHOW-VERSION is non-nil, show the
version in the echo area and the messages buffer.
The returned string includes both, the version from package.el
and the library version, if both a present and different.
If the version number could not be determined, signal an error,
if called interactively, or if SHOW-VERSION is non-nil, otherwise
just return nil.
\(fn &optional SHOW-VERSION)" t nil)
(autoload 'projectile-invalidate-cache "projectile" "\
Remove the current project's files from `projectile-projects-cache'.
With a prefix argument PROMPT prompts for the name of the project whose cache
to invalidate.
\(fn PROMPT)" t nil)
(autoload 'projectile-purge-file-from-cache "projectile" "\
Purge FILE from the cache of the current project.
\(fn FILE)" t nil)
(autoload 'projectile-purge-dir-from-cache "projectile" "\
Purge DIR from the cache of the current project.
\(fn DIR)" t nil)
(autoload 'projectile-cache-current-file "projectile" "\
Add the currently visited file to the cache." t nil)
(autoload 'projectile-discover-projects-in-directory "projectile" "\
Discover any projects in DIRECTORY and add them to the projectile cache.
If DEPTH is non-nil recursively descend exactly DEPTH levels below DIRECTORY and
discover projects there.
\(fn DIRECTORY &optional DEPTH)" t nil)
(autoload 'projectile-discover-projects-in-search-path "projectile" "\
Discover projects in `projectile-project-search-path'.
Invoked automatically when `projectile-mode' is enabled." t nil)
(autoload 'projectile-switch-to-buffer "projectile" "\
Switch to a project buffer." t nil)
(autoload 'projectile-switch-to-buffer-other-window "projectile" "\
Switch to a project buffer and show it in another window." t nil)
(autoload 'projectile-switch-to-buffer-other-frame "projectile" "\
Switch to a project buffer and show it in another frame." t nil)
(autoload 'projectile-display-buffer "projectile" "\
Display a project buffer in another window without selecting it." t nil)
(autoload 'projectile-project-buffers-other-buffer "projectile" "\
Switch to the most recently selected buffer project buffer.
Only buffers not visible in windows are returned." t nil)
(autoload 'projectile-multi-occur "projectile" "\
Do a `multi-occur' in the project's buffers.
With a prefix argument, show NLINES of context.
\(fn &optional NLINES)" t nil)
(autoload 'projectile-find-other-file "projectile" "\
Switch between files with the same name but different extensions.
With FLEX-MATCHING, match any file that contains the base name of current file.
Other file extensions can be customized with the variable
`projectile-other-file-alist'.
\(fn &optional FLEX-MATCHING)" t nil)
(autoload 'projectile-find-other-file-other-window "projectile" "\
Switch between files with different extensions in other window.
Switch between files with the same name but different extensions in other
window. With FLEX-MATCHING, match any file that contains the base name of
current file. Other file extensions can be customized with the variable
`projectile-other-file-alist'.
\(fn &optional FLEX-MATCHING)" t nil)
(autoload 'projectile-find-other-file-other-frame "projectile" "\
Switch between files with different extensions in other frame.
Switch between files with the same name but different extensions in other frame.
With FLEX-MATCHING, match any file that contains the base name of current
file. Other file extensions can be customized with the variable
`projectile-other-file-alist'.
\(fn &optional FLEX-MATCHING)" t nil)
(autoload 'projectile-find-file-dwim "projectile" "\
Jump to a project's files using completion based on context.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
If point is on a filename, Projectile first tries to search for that
file in project:
- If it finds just a file, it switches to that file instantly. This works
even if the filename is incomplete, but there's only a single file in the
current project that matches the filename at point. For example, if
there's only a single file named \"projectile/projectile.el\" but the
current filename is \"projectile/proj\" (incomplete),
`projectile-find-file-dwim' still switches to \"projectile/projectile.el\"
immediately because this is the only filename that matches.
- If it finds a list of files, the list is displayed for selecting. A list
of files is displayed when a filename appears more than one in the project
or the filename at point is a prefix of more than two files in a project.
For example, if `projectile-find-file-dwim' is executed on a filepath like
\"projectile/\", it lists the content of that directory. If it is executed
on a partial filename like \"projectile/a\", a list of files with character
\"a\" in that directory is presented.
- If it finds nothing, display a list of all files in project for selecting.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file-dwim-other-window "projectile" "\
Jump to a project's files using completion based on context in other window.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
If point is on a filename, Projectile first tries to search for that
file in project:
- If it finds just a file, it switches to that file instantly. This works
even if the filename is incomplete, but there's only a single file in the
current project that matches the filename at point. For example, if
there's only a single file named \"projectile/projectile.el\" but the
current filename is \"projectile/proj\" (incomplete),
`projectile-find-file-dwim-other-window' still switches to
\"projectile/projectile.el\" immediately because this is the only filename
that matches.
- If it finds a list of files, the list is displayed for selecting. A list
of files is displayed when a filename appears more than one in the project
or the filename at point is a prefix of more than two files in a project.
For example, if `projectile-find-file-dwim-other-window' is executed on a
filepath like \"projectile/\", it lists the content of that directory. If
it is executed on a partial filename like \"projectile/a\", a list of files
with character \"a\" in that directory is presented.
- If it finds nothing, display a list of all files in project for selecting.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file-dwim-other-frame "projectile" "\
Jump to a project's files using completion based on context in other frame.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
If point is on a filename, Projectile first tries to search for that
file in project:
- If it finds just a file, it switches to that file instantly. This works
even if the filename is incomplete, but there's only a single file in the
current project that matches the filename at point. For example, if
there's only a single file named \"projectile/projectile.el\" but the
current filename is \"projectile/proj\" (incomplete),
`projectile-find-file-dwim-other-frame' still switches to
\"projectile/projectile.el\" immediately because this is the only filename
that matches.
- If it finds a list of files, the list is displayed for selecting. A list
of files is displayed when a filename appears more than one in the project
or the filename at point is a prefix of more than two files in a project.
For example, if `projectile-find-file-dwim-other-frame' is executed on a
filepath like \"projectile/\", it lists the content of that directory. If
it is executed on a partial filename like \"projectile/a\", a list of files
with character \"a\" in that directory is presented.
- If it finds nothing, display a list of all files in project for selecting.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file "projectile" "\
Jump to a project's file using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file-other-window "projectile" "\
Jump to a project's file using completion and show it in another window.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-file-other-frame "projectile" "\
Jump to a project's file using completion and show it in another frame.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-toggle-project-read-only "projectile" "\
Toggle project read only." t nil)
(autoload 'projectile-add-dir-local-variable "projectile" "\
Run `add-dir-local-variable' with .dir-locals.el in root of project.
Parameters MODE VARIABLE VALUE are passed directly to `add-dir-local-variable'.
\(fn MODE VARIABLE VALUE)" nil nil)
(autoload 'projectile-delete-dir-local-variable "projectile" "\
Run `delete-dir-local-variable' with .dir-locals.el in root of project.
Parameters MODE VARIABLE VALUE are passed directly to
`delete-dir-local-variable'.
\(fn MODE VARIABLE)" nil nil)
(autoload 'projectile-find-dir "projectile" "\
Jump to a project's directory using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-dir-other-window "projectile" "\
Jump to a project's directory in other window using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-dir-other-frame "projectile" "\
Jump to a project's directory in other frame using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-test-file "projectile" "\
Jump to a project's test file using completion.
With a prefix arg INVALIDATE-CACHE invalidates the cache first.
\(fn &optional INVALIDATE-CACHE)" t nil)
(autoload 'projectile-find-related-file-other-window "projectile" "\
Open related file in other window." t nil)
(autoload 'projectile-find-related-file-other-frame "projectile" "\
Open related file in other frame." t nil)
(autoload 'projectile-find-related-file "projectile" "\
Open related file." t nil)
(autoload 'projectile-related-files-fn-groups "projectile" "\
Generate a related-files-fn which relates as KIND for files in each of GROUPS.
\(fn KIND GROUPS)" nil nil)
(autoload 'projectile-related-files-fn-extensions "projectile" "\
Generate a related-files-fn which relates as KIND for files having EXTENSIONS.
\(fn KIND EXTENSIONS)" nil nil)
(autoload 'projectile-related-files-fn-test-with-prefix "projectile" "\
Generate a related-files-fn which relates tests and impl.
Use files with EXTENSION based on TEST-PREFIX.
\(fn EXTENSION TEST-PREFIX)" nil nil)
(autoload 'projectile-related-files-fn-test-with-suffix "projectile" "\
Generate a related-files-fn which relates tests and impl.
Use files with EXTENSION based on TEST-SUFFIX.
\(fn EXTENSION TEST-SUFFIX)" nil nil)
(autoload 'projectile-project-info "projectile" "\
Display info for current project." t nil)
(autoload 'projectile-find-implementation-or-test-other-window "projectile" "\
Open matching implementation or test file in other window.
See the documentation of `projectile--find-matching-file' and
`projectile--find-matching-test' for how implementation and test files
are determined." t nil)
(autoload 'projectile-find-implementation-or-test-other-frame "projectile" "\
Open matching implementation or test file in other frame.
See the documentation of `projectile--find-matching-file' and
`projectile--find-matching-test' for how implementation and test files
are determined." t nil)
(autoload 'projectile-toggle-between-implementation-and-test "projectile" "\
Toggle between an implementation file and its test file.
See the documentation of `projectile--find-matching-file' and
`projectile--find-matching-test' for how implementation and test files
are determined." t nil)
(autoload 'projectile-grep "projectile" "\
Perform rgrep in the project.
With a prefix ARG asks for files (globbing-aware) which to grep in.
With prefix ARG of `-' (such as `M--'), default the files (without prompt),
to `projectile-grep-default-files'.
With REGEXP given, don't query the user for a regexp.
\(fn &optional REGEXP ARG)" t nil)
(autoload 'projectile-ag "projectile" "\
Run an ag search with SEARCH-TERM in the project.
With an optional prefix argument ARG SEARCH-TERM is interpreted as a
regular expression.
\(fn SEARCH-TERM &optional ARG)" t nil)
(autoload 'projectile-ripgrep "projectile" "\
Run a ripgrep (rg) search with `SEARCH-TERM' at current project root.
With an optional prefix argument ARG SEARCH-TERM is interpreted as a
regular expression.
This command depends on of the Emacs packages ripgrep or rg being
installed to work.
\(fn SEARCH-TERM &optional ARG)" t nil)
(autoload 'projectile-regenerate-tags "projectile" "\
Regenerate the project's [e|g]tags." t nil)
(autoload 'projectile-find-tag "projectile" "\
Find tag in project." t nil)
(autoload 'projectile-run-command-in-root "projectile" "\
Invoke `execute-extended-command' in the project's root." t nil)
(autoload 'projectile-run-shell-command-in-root "projectile" "\
Invoke `shell-command' in the project's root.
\(fn COMMAND &optional OUTPUT-BUFFER ERROR-BUFFER)" t nil)
(autoload 'projectile-run-async-shell-command-in-root "projectile" "\
Invoke `async-shell-command' in the project's root.
\(fn COMMAND &optional OUTPUT-BUFFER ERROR-BUFFER)" t nil)
(autoload 'projectile-run-gdb "projectile" "\
Invoke `gdb' in the project's root." t nil)
(autoload 'projectile-run-shell "projectile" "\
Invoke `shell' in the project's root.
Switch to the project specific shell buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-run-eshell "projectile" "\
Invoke `eshell' in the project's root.
Switch to the project specific eshell buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-run-ielm "projectile" "\
Invoke `ielm' in the project's root.
Switch to the project specific ielm buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-run-term "projectile" "\
Invoke `term' in the project's root.
Switch to the project specific term buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-run-vterm "projectile" "\
Invoke `vterm' in the project's root.
Switch to the project specific term buffer if it already exists.
Use a prefix argument ARG to indicate creation of a new process instead.
\(fn &optional ARG)" t nil)
(autoload 'projectile-replace "projectile" "\
Replace literal string in project using non-regexp `tags-query-replace'.
With a prefix argument ARG prompts you for a directory and file name patterns
on which to run the replacement.
\(fn &optional ARG)" t nil)
(autoload 'projectile-replace-regexp "projectile" "\
Replace a regexp in the project using `tags-query-replace'.
With a prefix argument ARG prompts you for a directory on which
to run the replacement.
\(fn &optional ARG)" t nil)
(autoload 'projectile-kill-buffers "projectile" "\
Kill project buffers.
The buffer are killed according to the value of
`projectile-kill-buffers-filter'." t nil)
(autoload 'projectile-save-project-buffers "projectile" "\
Save all project buffers." t nil)
(autoload 'projectile-dired "projectile" "\
Open `dired' at the root of the project." t nil)
(autoload 'projectile-dired-other-window "projectile" "\
Open `dired' at the root of the project in another window." t nil)
(autoload 'projectile-dired-other-frame "projectile" "\
Open `dired' at the root of the project in another frame." t nil)
(autoload 'projectile-vc "projectile" "\
Open `vc-dir' at the root of the project.
For git projects `magit-status-internal' is used if available.
For hg projects `monky-status' is used if available.
If PROJECT-ROOT is given, it is opened instead of the project
root directory of the current buffer file. If interactively
called with a prefix argument, the user is prompted for a project
directory to open.
\(fn &optional PROJECT-ROOT)" t nil)
(autoload 'projectile-recentf "projectile" "\
Show a list of recently visited files in a project." t nil)
(autoload 'projectile-configure-project "projectile" "\
Run project configure command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-compile-project "projectile" "\
Run project compilation command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-test-project "projectile" "\
Run project test command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-install-project "projectile" "\
Run project install command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-package-project "projectile" "\
Run project package command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-run-project "projectile" "\
Run project run command.
Normally you'll be prompted for a compilation command, unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG.
\(fn ARG)" t nil)
(autoload 'projectile-repeat-last-command "projectile" "\
Run last projectile external command.
External commands are: `projectile-configure-project',
`projectile-compile-project', `projectile-test-project',
`projectile-install-project', `projectile-package-project',
and `projectile-run-project'.
If the prefix argument SHOW_PROMPT is non nil, the command can be edited.
\(fn SHOW-PROMPT)" t nil)
(autoload 'projectile-switch-project "projectile" "\
Switch to a project we have visited before.
Invokes the command referenced by `projectile-switch-project-action' on switch.
With a prefix ARG invokes `projectile-commander' instead of
`projectile-switch-project-action.'
\(fn &optional ARG)" t nil)
(autoload 'projectile-switch-open-project "projectile" "\
Switch to a project we have currently opened.
Invokes the command referenced by `projectile-switch-project-action' on switch.
With a prefix ARG invokes `projectile-commander' instead of
`projectile-switch-project-action.'
\(fn &optional ARG)" t nil)
(autoload 'projectile-find-file-in-directory "projectile" "\
Jump to a file in a (maybe regular) DIRECTORY.
This command will first prompt for the directory the file is in.
\(fn &optional DIRECTORY)" t nil)
(autoload 'projectile-find-file-in-known-projects "projectile" "\
Jump to a file in any of the known projects." t nil)
(autoload 'projectile-cleanup-known-projects "projectile" "\
Remove known projects that don't exist anymore." t nil)
(autoload 'projectile-clear-known-projects "projectile" "\
Clear both `projectile-known-projects' and `projectile-known-projects-file'." t nil)
(autoload 'projectile-reset-known-projects "projectile" "\
Clear known projects and rediscover." t nil)
(autoload 'projectile-remove-known-project "projectile" "\
Remove PROJECT from the list of known projects.
\(fn &optional PROJECT)" t nil)
(autoload 'projectile-remove-current-project-from-known-projects "projectile" "\
Remove the current project from the list of known projects." t nil)
(autoload 'projectile-add-known-project "projectile" "\
Add PROJECT-ROOT to the list of known projects.
\(fn PROJECT-ROOT)" t nil)
(autoload 'projectile-ibuffer "projectile" "\
Open an IBuffer window showing all buffers in the current project.
Let user choose another project when PROMPT-FOR-PROJECT is supplied.
\(fn PROMPT-FOR-PROJECT)" t nil)
(autoload 'projectile-commander "projectile" "\
Execute a Projectile command with a single letter.
The user is prompted for a single character indicating the action to invoke.
The `?' character describes then
available actions.
See `def-projectile-commander-method' for defining new methods." t nil)
(autoload 'projectile-browse-dirty-projects "projectile" "\
Browse dirty version controlled projects.
With a prefix argument, or if CACHED is non-nil, try to use the cached
dirty project list.
\(fn &optional CACHED)" t nil)
(autoload 'projectile-edit-dir-locals "projectile" "\
Edit or create a .dir-locals.el file of the project." t nil)
(defvar projectile-mode nil "\
Non-nil if Projectile mode is enabled.
See the `projectile-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `projectile-mode'.")
(custom-autoload 'projectile-mode "projectile" nil)
(autoload 'projectile-mode "projectile" "\
Minor mode to assist project management and navigation.
When called interactively, toggle `projectile-mode'. With prefix
ARG, enable `projectile-mode' if ARG is positive, otherwise disable
it.
When called from Lisp, enable `projectile-mode' if ARG is omitted,
nil or positive. If ARG is `toggle', toggle `projectile-mode'.
Otherwise behave as if called interactively.
\\{projectile-mode-map}
\(fn &optional ARG)" t nil)
(define-obsolete-function-alias 'projectile-global-mode 'projectile-mode "1.0")
(register-definition-prefixes "projectile" '("??" "compilation-find-file-projectile-find-compilation-buffer" "def-projectile-commander-method" "delete-file-projectile-remove-from-cache" "project"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; projectile-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from projectile.el -*- no-byte-compile: t -*-
(define-package "projectile" "20230219.647" "Manage and navigate projects in Emacs easily" '((emacs "25.1")) :commit "fd257811c46f89f53143dd0ccbc134fc9459d6bb" :authors '(("Bozhidar Batsov" . "bozhidar@batsov.dev")) :maintainer '("Bozhidar Batsov" . "bozhidar@batsov.dev") :keywords '("project" "convenience") :url "https://github.com/bbatsov/projectile")

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,59 @@
;;; transpose-frame-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "transpose-frame" "transpose-frame.el" (0 0
;;;;;; 0 0))
;;; Generated autoloads from transpose-frame.el
(autoload 'transpose-frame "transpose-frame" "\
Transpose windows arrangement at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'flip-frame "transpose-frame" "\
Flip windows arrangement vertically at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'flop-frame "transpose-frame" "\
Flop windows arrangement horizontally at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame "transpose-frame" "\
Rotate windows arrangement 180 degrees at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame-clockwise "transpose-frame" "\
Rotate windows arrangement 90 degrees clockwise at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame-anticlockwise "transpose-frame" "\
Rotate windows arrangement 90 degrees anti-clockwise at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(register-definition-prefixes "transpose-frame" '("transpose-frame-"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; transpose-frame-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from transpose-frame.el -*- no-byte-compile: t -*-
(define-package "transpose-frame" "20220913.1749" "Transpose windows arrangement in a frame" 'nil :commit "7b7f8a1582436749a57ebbba6ead716b5a0edddc" :authors '(("S. Irie")) :maintainer '("S. Irie") :keywords '("window"))

View file

@ -0,0 +1,237 @@
;;; transpose-frame.el --- Transpose windows arrangement in a frame
;; Copyright (c) 2011 S. Irie
;; Author: S. Irie
;; Keywords: window
;; Package-Version: 20220913.1749
;; Package-Commit: 7b7f8a1582436749a57ebbba6ead716b5a0edddc
;; This program is free software.
;; Redistribution and use in source and binary forms, with or without
;; modification, are permitted provided that the following conditions
;; are met:
;; 1. Redistributions of source code must retain the above copyright
;; notice, this list of conditions and the following disclaimer.
;; 2. Redistributions in binary form must reproduce the above copyright
;; notice, this list of conditions and the following disclaimer in the
;; documentation and/or other materials provided with the distribution.
;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;;; Commentary:
;; This program provides some interactive functions which allows users
;; to transpose windows arrangement in currently selected frame:
;;
;; `transpose-frame' ... Swap x-direction and y-direction
;;
;; +------------+------------+ +----------------+--------+
;; | | B | | A | |
;; | A +------------+ | | |
;; | | C | => +--------+-------+ D |
;; +------------+------------+ | B | C | |
;; | D | | | | |
;; +-------------------------+ +--------+-------+--------+
;;
;; `flip-frame' ... Flip vertically
;;
;; +------------+------------+ +------------+------------+
;; | | B | | D |
;; | A +------------+ +------------+------------+
;; | | C | => | | C |
;; +------------+------------+ | A +------------+
;; | D | | | B |
;; +-------------------------+ +------------+------------+
;;
;; `flop-frame' ... Flop horizontally
;;
;; +------------+------------+ +------------+------------+
;; | | B | | B | |
;; | A +------------+ +------------+ A |
;; | | C | => | C | |
;; +------------+------------+ +------------+------------+
;; | D | | D |
;; +-------------------------+ +-------------------------+
;;
;; `rotate-frame' ... Rotate 180 degrees
;;
;; +------------+------------+ +-------------------------+
;; | | B | | D |
;; | A +------------+ +------------+------------+
;; | | C | => | C | |
;; +------------+------------+ +------------+ A |
;; | D | | B | |
;; +-------------------------+ +------------+------------+
;;
;; `rotate-frame-clockwise' ... Rotate 90 degrees clockwise
;;
;; +------------+------------+ +-------+-----------------+
;; | | B | | | A |
;; | A +------------+ | | |
;; | | C | => | D +--------+--------+
;; +------------+------------+ | | B | C |
;; | D | | | | |
;; +-------------------------+ +-------+--------+--------+
;;
;; `rotate-frame-anticlockwise' ... Rotate 90 degrees anti-clockwise
;;
;; +------------+------------+ +--------+--------+-------+
;; | | B | | B | C | |
;; | A +------------+ | | | |
;; | | C | => +--------+--------+ D |
;; +------------+------------+ | A | |
;; | D | | | |
;; +-------------------------+ +-----------------+-------+
;;
;; This program is tested on GNU Emacs 22, 23.
;;; Code:
;;; Internal functions
(defun transpose-frame-get-arrangement (&optional frame subtree)
(let ((tree (or subtree
(car (window-tree frame)))))
(if (windowp tree)
(list (window-buffer tree)
(window-start tree)
(window-point tree)
(window-hscroll tree)
(window-margins tree)
(window-fringes tree)
(window-dedicated-p tree)
(jit-lock-register tree)
tree
(eq tree (frame-selected-window frame)))
(let* ((vertical (car tree))
(edges (cadr tree))
(length (float (if vertical
(- (nth 3 edges) (cadr edges))
(- (nth 2 edges) (car edges))))))
(cons vertical
(mapcar (lambda (subtree)
(cons (transpose-frame-get-arrangement frame subtree)
(/ (let ((edges (if (windowp subtree)
(window-edges subtree)
(cadr subtree))))
(if vertical
(- (nth 3 edges) (cadr edges))
(- (nth 2 edges) (car edges))))
length)))
(cddr tree)))))))
(defun transpose-frame-set-arrangement (config &optional window-or-frame &rest how)
(let ((window (if (windowp window-or-frame)
window-or-frame
(frame-selected-window window-or-frame))))
(unless (windowp window-or-frame)
(delete-other-windows window))
(if (bufferp (car config))
(let ((buffer (pop config)))
(set-window-buffer window buffer)
(set-window-start window (pop config))
(set-window-point window (pop config))
(set-window-hscroll window (pop config))
(set-window-margins window (caar config) (cdr (pop config)))
(apply 'set-window-fringes window (pop config))
(set-window-dedicated-p window (pop config))
(jit-lock-register window (pop config))
(let* ((orig-window (pop config))
(ol-func (lambda (ol)
(when (eq (overlay-get ol 'window) orig-window)
(overlay-put ol 'window window))))
(ol-lists (with-current-buffer buffer
(overlay-lists))))
(mapc ol-func (car ol-lists))
(mapc ol-func (cdr ol-lists)))
(if (car config) (select-window window)))
(let* ((horizontal (if (memq 'transpose how)
(pop config)
(not (pop config))))
(edges (window-edges window))
(length (if horizontal
(- (nth 2 edges) (car edges))
(- (nth 3 edges) (cadr edges)))))
(if (memq (if horizontal 'flop 'flip) how)
(setq config (reverse config)))
(while (cdr config)
(setq window (prog1
(split-window window (round (* length (cdar config)))
horizontal)
(apply 'transpose-frame-set-arrangement
(caar config) window how))
config (cdr config)))
(apply 'transpose-frame-set-arrangement
(caar config) window how)))))
;;; User commands
;;;###autoload
(defun transpose-frame (&optional frame)
"Transpose windows arrangement at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose)
(when (called-interactively-p 'any) (recenter)))
;;;###autoload
(defun flip-frame (&optional frame)
"Flip windows arrangement vertically at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flip))
;;;###autoload
(defun flop-frame (&optional frame)
"Flop windows arrangement horizontally at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flop))
;;;###autoload
(defun rotate-frame (&optional frame)
"Rotate windows arrangement 180 degrees at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flip 'flop))
;;;###autoload
(defun rotate-frame-clockwise (&optional frame)
"Rotate windows arrangement 90 degrees clockwise at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose 'flop)
(when (called-interactively-p 'any) (recenter)))
;;;###autoload
(defun rotate-frame-anticlockwise (&optional frame)
"Rotate windows arrangement 90 degrees anti-clockwise at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose 'flip)
(when (called-interactively-p 'any) (recenter)))
;;; _
;; Local Variables:
;; indent-tabs-mode: nil
;; End:
(provide 'transpose-frame)
;;; transpose-frame.el ends here

View file

@ -0,0 +1,59 @@
;;; transpose-frame-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "transpose-frame" "transpose-frame.el" (0 0
;;;;;; 0 0))
;;; Generated autoloads from transpose-frame.el
(autoload 'transpose-frame "transpose-frame" "\
Transpose windows arrangement at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'flip-frame "transpose-frame" "\
Flip windows arrangement vertically at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'flop-frame "transpose-frame" "\
Flop windows arrangement horizontally at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame "transpose-frame" "\
Rotate windows arrangement 180 degrees at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame-clockwise "transpose-frame" "\
Rotate windows arrangement 90 degrees clockwise at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(autoload 'rotate-frame-anticlockwise "transpose-frame" "\
Rotate windows arrangement 90 degrees anti-clockwise at FRAME.
Omitting FRAME means currently selected frame.
\(fn &optional FRAME)" t nil)
(register-definition-prefixes "transpose-frame" '("transpose-frame-"))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; transpose-frame-autoloads.el ends here

View file

@ -0,0 +1,2 @@
;;; Generated package description from transpose-frame.el -*- no-byte-compile: t -*-
(define-package "transpose-frame" "20221109.2053" "Transpose windows arrangement in a frame" 'nil :commit "94c87794d53883a2358d13da264ad8dab9a52daa" :authors '(("S. Irie")) :maintainer '("S. Irie") :keywords '("window"))

View file

@ -0,0 +1,235 @@
;;; transpose-frame.el --- Transpose windows arrangement in a frame
;; Copyright (c) 2011 S. Irie
;; Author: S. Irie
;; Keywords: window
;; Package-Version: 20221109.2053
;; Package-Commit: 94c87794d53883a2358d13da264ad8dab9a52daa
;; This program is free software.
;; Redistribution and use in source and binary forms, with or without
;; modification, are permitted provided that the following conditions
;; are met:
;; 1. Redistributions of source code must retain the above copyright
;; notice, this list of conditions and the following disclaimer.
;; 2. Redistributions in binary form must reproduce the above copyright
;; notice, this list of conditions and the following disclaimer in the
;; documentation and/or other materials provided with the distribution.
;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;;; Commentary:
;; This program provides some interactive functions which allows users
;; to transpose windows arrangement in currently selected frame:
;;
;; `transpose-frame' ... Swap x-direction and y-direction
;;
;; +------------+------------+ +----------------+--------+
;; | | B | | A | |
;; | A +------------+ | | |
;; | | C | => +--------+-------+ D |
;; +------------+------------+ | B | C | |
;; | D | | | | |
;; +-------------------------+ +--------+-------+--------+
;;
;; `flip-frame' ... Flip vertically
;;
;; +------------+------------+ +------------+------------+
;; | | B | | D |
;; | A +------------+ +------------+------------+
;; | | C | => | | C |
;; +------------+------------+ | A +------------+
;; | D | | | B |
;; +-------------------------+ +------------+------------+
;;
;; `flop-frame' ... Flop horizontally
;;
;; +------------+------------+ +------------+------------+
;; | | B | | B | |
;; | A +------------+ +------------+ A |
;; | | C | => | C | |
;; +------------+------------+ +------------+------------+
;; | D | | D |
;; +-------------------------+ +-------------------------+
;;
;; `rotate-frame' ... Rotate 180 degrees
;;
;; +------------+------------+ +-------------------------+
;; | | B | | D |
;; | A +------------+ +------------+------------+
;; | | C | => | C | |
;; +------------+------------+ +------------+ A |
;; | D | | B | |
;; +-------------------------+ +------------+------------+
;;
;; `rotate-frame-clockwise' ... Rotate 90 degrees clockwise
;;
;; +------------+------------+ +-------+-----------------+
;; | | B | | | A |
;; | A +------------+ | | |
;; | | C | => | D +--------+--------+
;; +------------+------------+ | | B | C |
;; | D | | | | |
;; +-------------------------+ +-------+--------+--------+
;;
;; `rotate-frame-anticlockwise' ... Rotate 90 degrees anti-clockwise
;;
;; +------------+------------+ +--------+--------+-------+
;; | | B | | B | C | |
;; | A +------------+ | | | |
;; | | C | => +--------+--------+ D |
;; +------------+------------+ | A | |
;; | D | | | |
;; +-------------------------+ +-----------------+-------+
;;
;; This program is tested on GNU Emacs 22, 23.
;;; Code:
;;; Internal functions
(defun transpose-frame-get-arrangement (&optional frame subtree)
(let ((tree (or subtree
(car (window-tree frame)))))
(if (windowp tree)
(list (window-buffer tree)
(window-start tree)
(window-point tree)
(window-hscroll tree)
(window-margins tree)
(window-fringes tree)
(window-dedicated-p tree)
tree
(eq tree (frame-selected-window frame)))
(let* ((vertical (car tree))
(edges (cadr tree))
(length (float (if vertical
(- (nth 3 edges) (cadr edges))
(- (nth 2 edges) (car edges))))))
(cons vertical
(mapcar (lambda (subtree)
(cons (transpose-frame-get-arrangement frame subtree)
(/ (let ((edges (if (windowp subtree)
(window-edges subtree)
(cadr subtree))))
(if vertical
(- (nth 3 edges) (cadr edges))
(- (nth 2 edges) (car edges))))
length)))
(cddr tree)))))))
(defun transpose-frame-set-arrangement (config &optional window-or-frame &rest how)
(let ((window (if (windowp window-or-frame)
window-or-frame
(frame-selected-window window-or-frame))))
(unless (windowp window-or-frame)
(delete-other-windows window))
(if (bufferp (car config))
(let ((buffer (pop config)))
(set-window-buffer window buffer)
(set-window-start window (pop config))
(set-window-point window (pop config))
(set-window-hscroll window (pop config))
(set-window-margins window (caar config) (cdr (pop config)))
(apply 'set-window-fringes window (pop config))
(set-window-dedicated-p window (pop config))
(let* ((orig-window (pop config))
(ol-func (lambda (ol)
(when (eq (overlay-get ol 'window) orig-window)
(overlay-put ol 'window window))))
(ol-lists (with-current-buffer buffer
(overlay-lists))))
(mapc ol-func (car ol-lists))
(mapc ol-func (cdr ol-lists)))
(if (car config) (select-window window)))
(let* ((horizontal (if (memq 'transpose how)
(pop config)
(not (pop config))))
(edges (window-edges window))
(length (if horizontal
(- (nth 2 edges) (car edges))
(- (nth 3 edges) (cadr edges)))))
(if (memq (if horizontal 'flop 'flip) how)
(setq config (reverse config)))
(while (cdr config)
(setq window (prog1
(split-window window (round (* length (cdar config)))
horizontal)
(apply 'transpose-frame-set-arrangement
(caar config) window how))
config (cdr config)))
(apply 'transpose-frame-set-arrangement
(caar config) window how)))))
;;; User commands
;;;###autoload
(defun transpose-frame (&optional frame)
"Transpose windows arrangement at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose)
(when (called-interactively-p 'any) (recenter)))
;;;###autoload
(defun flip-frame (&optional frame)
"Flip windows arrangement vertically at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flip))
;;;###autoload
(defun flop-frame (&optional frame)
"Flop windows arrangement horizontally at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flop))
;;;###autoload
(defun rotate-frame (&optional frame)
"Rotate windows arrangement 180 degrees at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'flip 'flop))
;;;###autoload
(defun rotate-frame-clockwise (&optional frame)
"Rotate windows arrangement 90 degrees clockwise at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose 'flop)
(when (called-interactively-p 'any) (recenter)))
;;;###autoload
(defun rotate-frame-anticlockwise (&optional frame)
"Rotate windows arrangement 90 degrees anti-clockwise at FRAME.
Omitting FRAME means currently selected frame."
(interactive)
(transpose-frame-set-arrangement (transpose-frame-get-arrangement frame) frame
'transpose 'flip)
(when (called-interactively-p 'any) (recenter)))
;;; _
;; Local Variables:
;; indent-tabs-mode: nil
;; End:
(provide 'transpose-frame)
;;; transpose-frame.el ends here

View file

@ -177,11 +177,23 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ui tuning
(diminish 'projectile-mode)
(when (eq system-type 'windows-nt)
(load "~/.emacs.d.profiles/org/config-org-desktop.el"))
(when kmn/is-termux
(load "~/.emacs.d.profiles/org/config-org-mobile.el"))
(with-eval-after-load "persp-mode-autoload"
(with-eval-after-load "org"
(persp-def-auto-persp "kmn"
:mode-name ".*org-mode.*"
:noauto
:dyn-env '(after-switch-to-buffer-functions ;; prevent recursion
(persp-add-buffer-on-find-file nil)
persp-add-buffer-on-after-change-major-mode)
:hooks '(after-switch-to-buffer-functions)
:switch 'window)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; origami + super agenda config
(defvar ap/org-super-agenda-auto-hide-groups