load and save central session done. (i like this feature)
This commit is contained in:
parent
30e30ddc1e
commit
c51b9f28a9
|
@ -14,6 +14,16 @@
|
||||||
;; You should have received a copy of the GNU General Public License
|
;; You should have received a copy of the GNU General Public License
|
||||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
;; ---------------------------------------------------------------------
|
||||||
|
;; Variables
|
||||||
|
;; ---------------------------------------------------------------------
|
||||||
|
(defvar my-desktop-session-dir
|
||||||
|
(concat (getenv "HOME") "/.tmp/sessions/")
|
||||||
|
"*Directory to save desktop sessions in")
|
||||||
|
|
||||||
|
(defvar my-desktop-session-name-hist nil
|
||||||
|
"Desktop session name history")
|
||||||
|
|
||||||
;; ---------------------------------------------------------------------
|
;; ---------------------------------------------------------------------
|
||||||
;; Functions
|
;; Functions
|
||||||
;; ---------------------------------------------------------------------
|
;; ---------------------------------------------------------------------
|
||||||
|
@ -40,12 +50,39 @@
|
||||||
(desktop-save-in-desktop-dir)
|
(desktop-save-in-desktop-dir)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(defun my-desktop-save (&optional name)
|
||||||
|
"Save desktop with a name."
|
||||||
|
(interactive)
|
||||||
|
(unless name
|
||||||
|
(setq name (my-desktop-get-session-name "Save session as: ")))
|
||||||
|
(make-directory (concat my-desktop-session-dir name) t)
|
||||||
|
(desktop-save (concat my-desktop-session-dir name) t)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun my-desktop-read (&optional name)
|
||||||
|
"Read desktop with a name."
|
||||||
|
(interactive)
|
||||||
|
(unless name
|
||||||
|
(setq name (my-desktop-get-session-name "Load session: ")))
|
||||||
|
(desktop-read (concat my-desktop-session-dir name))
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun my-desktop-get-session-name (prompt)
|
||||||
|
(completing-read prompt (and (file-exists-p my-desktop-session-dir)
|
||||||
|
(directory-files my-desktop-session-dir))
|
||||||
|
nil nil nil my-desktop-session-name-hist)
|
||||||
|
)
|
||||||
|
|
||||||
(defun menu/init-menu () "Initializing Kuso IDE menu"
|
(defun menu/init-menu () "Initializing Kuso IDE menu"
|
||||||
;; New Project Menu
|
;; New Project Menu
|
||||||
(interactive)
|
(interactive)
|
||||||
(define-key-after global-map [menu-bar file new-proj] (cons "New Project" (make-sparse-keymap "new project")) 'new-file)
|
(define-key-after global-map [menu-bar file new-proj] (cons "New Project" (make-sparse-keymap "new project")) 'new-file)
|
||||||
(define-key-after global-map [menu-bar file load-session] '("Load Session" . desktop-change-dir) 'new-proj)
|
(define-key-after global-map [menu-bar file load-session] '("Load Session" . my-desktop-read) 'new-proj)
|
||||||
(define-key-after global-map [menu-bar file save-session] '("Save Session" . save-session) 'load-session)
|
(define-key-after global-map [menu-bar file save-session] '("Save Session" . my-desktop-save) 'load-session)
|
||||||
|
|
||||||
|
(define-key global-map (kbd "<f11>") 'my-desktop-read)
|
||||||
|
(define-key global-map (kbd "<f12>") 'my-desktop-save)
|
||||||
|
|
||||||
;; New Project sub menus
|
;; New Project sub menus
|
||||||
(define-key-after global-map [menu-bar file new-proj cproj] (cons "C/C++" (make-sparse-keymap "c-cpp-proj")))
|
(define-key-after global-map [menu-bar file new-proj cproj] (cons "C/C++" (make-sparse-keymap "c-cpp-proj")))
|
||||||
|
|
Loading…
Reference in New Issue