# HG changeset patch # User Oleksandr Gavenko # Date 1489049594 -7200 # Node ID 24fcc4c42be4d8e8844fc3128c1845bfcfe36022 # Parent 72c63cea35d34b09978908171a76f13f1b1b8cc2 Open file in Intellij Idea. Common interface for IDE. diff -r 72c63cea35d3 -r 24fcc4c42be4 .emacs-my --- 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")