conditional load removed from cproject plugin.

This commit is contained in:
Sameer Rahmani 2011-01-04 22:54:41 +03:30
parent 8d46774a79
commit 7209be7dd6
1 changed files with 117 additions and 122 deletions

View File

@ -39,143 +39,138 @@
;; ---------------------------------------------------------------------- ;; ----------------------------------------------------------------------
;; If user dont want the plug in so it should not loaded ;; If user dont want the plug in so it should not loaded
(if c-plugin ;; -------------------------------------------------------------------
;; Hooks
;; -------------------------------------------------------------------
(defvar kuso-cplug-preinit-hook '()
"This hook runs before initializing the Kuso c-plugin minor mode."
)
(progn (defvar kuso-cplug-postinit-hook '()
;; ------------------------------------------------------------------- "This hook runs after Kuso c-plugin minor mode initialized."
;; Hooks )
;; -------------------------------------------------------------------
(defvar kuso-cplug-preinit-hook '()
"This hook runs before initializing the Kuso c-plugin minor mode."
)
(defvar kuso-cplug-postinit-hook '()
"This hook runs after Kuso c-plugin minor mode initialized."
)
(defvar kuso-cplug-prerm--hook '()
"This hook runs before deactivating Kuso c-plugin minor mode."
)
(defvar kuso-cplug-postrm-hook '()
"This hook runs after Kuso c-plugin minor mode deactivated."
)
;; --------------------------------------------------------------------- (defvar kuso-cplug-prerm--hook '()
;; Keymaps "This hook runs before deactivating Kuso c-plugin minor mode."
;; --------------------------------------------------------------------- )
(defvar kuso-cplugin-map (make-sparse-keymap)
"Default keymap for Kuso c-plugin minor mode that hold the global key (defvar kuso-cplug-postrm-hook '()
"This hook runs after Kuso c-plugin minor mode deactivated."
)
;; ---------------------------------------------------------------------
;; Keymaps
;; ---------------------------------------------------------------------
(defvar kuso-cplugin-map (make-sparse-keymap)
"Default keymap for Kuso c-plugin minor mode that hold the global key
binding for Kuso IDE C projects section." binding for Kuso IDE C projects section."
) )
;; --------------------------------------------------------------------- ;; ---------------------------------------------------------------------
;; Functions ;; Functions
;; --------------------------------------------------------------------- ;; ---------------------------------------------------------------------
(defun init-menus () "Draw required menu for C mode" (defun init-menus () "Draw required menu for C mode"
(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")))
;; (define-key global-map (kbd "\C-x n k") 'kmodule) ;; (define-key global-map (kbd "\C-x n k") 'kmodule)
;; (define-key global-map [menu-bar file new-proj cproj kmodule] '("Kernel Module" . kmodule)) ;; (define-key global-map [menu-bar file new-proj cproj kmodule] '("Kernel Module" . kmodule))
;; (define-key global-map [menu-bar file new-proj cproj separator2] '("--")) ;; (define-key global-map [menu-bar file new-proj cproj separator2] '("--"))
; (define-key global-map [Ctrl-x p c n ] 'make-cpp) ; (define-key global-map [Ctrl-x p c n ] 'make-cpp)
;; (define-key global-map [menu-bar file new-proj cproj cpp-make] '("Make project (C++)" . make-cpp)) ;; (define-key global-map [menu-bar file new-proj cproj cpp-make] '("Make project (C++)" . make-cpp))
;; (define-key global-map [Ctrl-x p c m ] 'make-c) ;; (define-key global-map [Ctrl-x p c m ] 'make-c)
;; (define-key global-map [menu-bar file new-proj cproj c-make] '("Make project (C)" . make-c)) ;; (define-key global-map [menu-bar file new-proj cproj c-make] '("Make project (C)" . make-c))
;; (define-key global-map [menu-bar file new-proj cproj separator1] '("--")) ;; (define-key global-map [menu-bar file new-proj cproj separator1] '("--"))
(define-key global-map (kbd "\C-x n \C-c") 'generic-cpp) (define-key global-map (kbd "\C-x n \C-c") 'generic-cpp)
(define-key global-map [menu-bar file new-proj cproj cppgeneric] '("Generic project (C++)" . generic-cpp)) (define-key global-map [menu-bar file new-proj cproj cppgeneric] '("Generic project (C++)" . generic-cpp))
(define-key global-map (kbd "\C-x n c") 'generic-c) (define-key global-map (kbd "\C-x n c") 'generic-c)
(define-key global-map [menu-bar file new-proj cproj cgeneric] '("Generic project (C)" . generic-c)) (define-key global-map [menu-bar file new-proj cproj cgeneric] '("Generic project (C)" . generic-c))
) )
;; Thsi function exists because maybe Kuso needs more information ;; Thsi function exists because maybe Kuso needs more information
;; about new project in the feature the new-prject function did not ;; about new project in the feature the new-prject function did not
;; cover ;; cover
(defun c-new-project () "Create a new C/C++ project" (defun c-new-project () "Create a new C/C++ project"
(new-project) (new-project)
) )
(defun compile () (defun compile ()
"Run the make command and return the putput" "Run the make command and return the putput"
(interactive) (interactive)
(let (output) (let (output)
(setq output (shell-command-to-string "make")) (setq output (shell-command-to-string "make"))
(message output) (message output)
) )
) )
(defun generic-c () "Create a generic type C project" (defun generic-c () "Create a generic type C project"
(interactive) (interactive)
(c-new-project) (c-new-project)
(project/copying-license-copy) (project/copying-license-copy)
(let (template-file-regexp license-data filelist cur template-data) (let (template-file-regexp license-data filelist cur template-data)
(setq template-file-regexp (concat TEMPLATESPATH "c/generic_c/*.tmpl")) (setq template-file-regexp (concat TEMPLATESPATH "c/generic_c/*.tmpl"))
(setq filelist (file-expand-wildcards template-file-regexp)) (setq filelist (file-expand-wildcards template-file-regexp))
(while filelist (while filelist
(setq cur (pop filelist)) (setq cur (pop filelist))
(setq template-data (project/render-template cur)) (setq template-data (project/render-template cur))
(setq template-data (replace-regexp-in-string "::unixname::" unix-project-name template-data)) (setq template-data (replace-regexp-in-string "::unixname::" unix-project-name template-data))
(setq template-data (replace-regexp-in-string "::UNIXNAME::" unix-project-name template-data)) (setq template-data (replace-regexp-in-string "::UNIXNAME::" unix-project-name template-data))
(project/write-dest-file cur template-data) (project/write-dest-file cur template-data)
)
)
(cd project-path)
(find-file (concat unix-project-name ".c"))
(kuso-cplugin-mode)
)
(defun initial-keymap ()
"Set the key binding for C project."
(define-key kuso-cplugin-map (kbd "\C-c \C-c") 'compile)
)
;; Initializing c menus at the load time
(add-hook 'kuso-postinit-mode-hook 'init-menus)
;; ----------------------------------------------------------------------
;; Minor Modes
;; ----------------------------------------------------------------------
(define-minor-mode kuso-cplugin-mode
"Toggle Kuso C plugin mode.
This mode provide C language plugin for Kuso IDE."
:lighter " kuso-c"
:keymap kuso-cplugin-map
:global t
:group 'kuso-group
(if kuso-cplugin-mode
;; kuso-cplugin-mode is not loaded
(let ()
;; before initiazing mode
(run-hooks 'kuso-cplug-preinit-hook)
(initial-keymap)
;; after mode was initialized
(run-hooks 'kuso-cplug-postinit-hook)
)
;; kuso-mode already loaded
(let ()
;; before deactivating mode
(run-hooks 'kuso-cplug-prerm-hook)
;; after deactivating mode
(run-hooks 'kuso-cplug-postrm-hook)
)
)
)
) )
)
(cd project-path)
(find-file (concat unix-project-name ".c"))
(kuso-cplugin-mode)
)
(defun initial-keymap ()
"Set the key binding for C project."
(define-key kuso-cplugin-map (kbd "\C-c \C-c") 'compile)
)
;; Initializing c menus at the load time
(add-hook 'kuso-postinit-mode-hook 'init-menus)
;; ----------------------------------------------------------------------
;; Minor Modes
;; ----------------------------------------------------------------------
(define-minor-mode kuso-cplugin-mode
"Toggle Kuso C plugin mode.
This mode provide C language plugin for Kuso IDE."
:lighter " kuso-c"
:keymap kuso-cplugin-map
:global t
:group 'kuso-group
(if kuso-cplugin-mode
;; kuso-cplugin-mode is not loaded
(let ()
;; before initiazing mode
(run-hooks 'kuso-cplug-preinit-hook)
(initial-keymap)
;; after mode was initialized
(run-hooks 'kuso-cplug-postinit-hook)
)
;; kuso-mode already loaded
(let ()
;; before deactivating mode
(run-hooks 'kuso-cplug-prerm-hook)
;; after deactivating mode
(run-hooks 'kuso-cplug-postrm-hook)
)
)
) )