diff --git a/README.org b/README.org index 84d8280..ffbc21d 100644 --- a/README.org +++ b/README.org @@ -47,6 +47,8 @@ (global-set-key (kbd "M-p") 'opengrok-restful-lookup-path) #+end_src + - When you lookup symbol with opengrok-restful, Input nothing to lookup all projects that indexed, Input 'c' to lookup current project. + [[./opengrok-restful.gif]] [[./opengrok-restful.png]] diff --git a/opengrok-restful.el b/opengrok-restful.el index 2e5c847..5415fb9 100644 --- a/opengrok-restful.el +++ b/opengrok-restful.el @@ -5,7 +5,7 @@ ;; Author: RainMark ;; URL: https://github.com/RainMark/opengrok-restful.el ;; Package-Requires: ((emacs "24.4")) -;; Version: 0.0.1 +;; Version: 0.0.2 ;; This file is NOT part of GNU Emacs. @@ -95,33 +95,45 @@ (cdr (assoc 'results data))) (put-text-property (point-min) (point-max) 'keymap opengrok-restful-keymap) (setq buffer-read-only t) - (if (< 0 (buffer-size)) - (progn - (switch-to-buffer-other-window opengrok-restful-buffer) - (goto-char (point-min))) - (message "Nothing found.")) + (when (< 0 (buffer-size)) + (progn + (switch-to-buffer-other-window opengrok-restful-buffer) + (goto-char (point-min)))) )) -(defun opengrok-restful-project-lookup (project type value) +(defun opengrok-restful-project-lookup (request-params) (request opengrok-restful-url - :type "GET" - :params `(("projects" . ,project) (,type . ,value)) - :parser 'json-read - :sync t - :complete (cl-function (lambda (&key data &allow-other-keys) - (opengrok-restful-parse-response data))))) + :type "GET" + :params request-params + :parser 'json-read + :sync t + :complete (cl-function (lambda (&key data &allow-other-keys) + (opengrok-restful-parse-response data))))) + +(defun opengrok-restful-current-project-name () + (file-name-nondirectory (directory-file-name (projectile-project-root)))) + +(defun opengrok-restful-make-params (project type value) + (let ((params `((,type ,value)))) + (if (not (string= "" project)) + (cons `("projects" . ,(if (string= "c" project) + (opengrok-restful-current-project-name) + project)) + params) + params))) (defmacro opengrok-restful-define-lookup (type) (let ((fun (intern (format "opengrok-restful-lookup-%s" type)))) `(defun ,fun () (interactive) - (let ((default-project (file-name-nondirectory (directory-file-name (projectile-project-root)))) + (let ((default-project ) (default-symbol (thing-at-point 'symbol))) (opengrok-restful-project-lookup - (read-string (format "Project (%s): " default-project) nil nil default-project) - ,(symbol-name type) - (read-string (format "Symbol (%s): " default-symbol) nil nil default-symbol)))) - )) + (opengrok-restful-make-params + (read-string "Project> ") + ,(symbol-name type) + (read-string (format "Symbol (%s)> " default-symbol) nil nil default-symbol))) + )))) (opengrok-restful-define-lookup full) (opengrok-restful-define-lookup def) diff --git a/opengrok-restful.gif b/opengrok-restful.gif index 907ad61..0279805 100644 Binary files a/opengrok-restful.gif and b/opengrok-restful.gif differ diff --git a/opengrok-restful.png b/opengrok-restful.png index 345ffb9..ef3c994 100644 Binary files a/opengrok-restful.png and b/opengrok-restful.png differ