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
|
||||
;; 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
|
||||
;; ---------------------------------------------------------------------
|
||||
|
@ -40,12 +50,39 @@
|
|||
(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"
|
||||
;; New Project Menu
|
||||
(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 load-session] '("Load Session" . desktop-change-dir) '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 load-session] '("Load Session" . my-desktop-read) 'new-proj)
|
||||
(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
|
||||
(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