Open file in Intellij Idea. Common interface for IDE.
--- a/.emacs-my Mon Mar 06 15:40:53 2017 +0200
+++ b/.emacs-my Thu Mar 09 10:53:14 2017 +0200
@@ -1375,29 +1375,56 @@
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(message "netbeans")
-
-(defun netbeans-find-command ()
+(message "ide, netbeans, idea")
+
+(defun ide-netbeans-find-command ()
"Search for NetBeans executable in PATH, later in '/opt/netbeans*/bin/'."
(or
(executable-find "netbeans")
(car (last (sort (file-expand-wildcards "/opt/[Nn]etbeans*/bin/netbeans" t) 'equal))) ))
-(defvar netbeans-command (netbeans-find-command)
+(defvar ide-netbeans-program (ide-netbeans-find-command)
"Command to run NetBeans.")
-(defun netbeans-open-file (file &optional line)
+
+(defconst ide-netbeans-process-bufname "*ide-netbeans*"
+ "Name used in `start-process'")
+(defun ide-netbeans-open-file (file &optional line)
"Open FILE on LINE in NetBeans."
+ (unless ide-netbeans-program
+ (error "'ide-netbeans-program' is not set"))
(if (integerp line)
- (start-process "netbeans" nil netbeans-command "--open" (format "%s:%d" file line))
- (start-process "netbeans" nil netbeans-command "--open" file)))
-(defun netbeans-open-this-buffer ()
- "Open file for burrent buffer in NetBeans."
+ (start-process ide-netbeans-process-bufname nil ide-netbeans-program "--open" (format "%s:%d" file line))
+ (start-process ide-netbeans-process-bufname nil ide-netbeans-program "--open" file)))
+(defun ide-netbeans-open-this-buffer ()
+ "Open current buffer in NetBeans."
(interactive)
(unless (stringp (buffer-file-name))
(error "Buffer have no association with a file"))
(if (file-regular-p (buffer-file-name))
- (netbeans-open-file (buffer-file-name) (line-number-at-pos))
+ (ide-netbeans-open-file (buffer-file-name) (line-number-at-pos))
(message "Current buffer wasnt' associated with a real file")))
+(defvar ide-idea-program nil
+ "Idea executable or full path, like 'idea64.exe'")
+
+(defconst ide-idea-process-bufname "*ide-idea*"
+ "Name used in `start-process'")
+(defun ide-idea-open-file (file &optional line)
+ "Open FILE on LINE in Intellij Idea."
+ (unless ide-idea-program
+ (error "'ide-idea-program' is not set"))
+ (let ( (default-directory (file-name-directory file)) (fname (file-name-nondirectory file)) )
+ (if (integerp line)
+ (start-process ide-idea-process-bufname nil ide-idea-program "--line" (int-to-string line) fname)
+ (start-process ide-idea-process-bufname nil ide-idea-program fname))))
+(defun ide-idea-open-this-buffer ()
+ "Open current buffer in Intellij Idea."
+ (interactive)
+ (unless (stringp (buffer-file-name))
+ (error "Buffer have no association with a file"))
+ (unless (file-regular-p (buffer-file-name))
+ (error "Current buffer isn't associated with a real file"))
+ (ide-idea-open-file (buffer-file-name) (line-number-at-pos)))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "calendar")