From d92b1beba8f0e48245b42a97e0a39b3aed5a9aa4 Mon Sep 17 00:00:00 2001 From: RainMark Date: Wed, 18 Nov 2020 22:04:38 +0800 Subject: [PATCH] add opengrok-restful-lookup-define Signed-off-by: RainMark --- opengrok-restful.el | 61 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/opengrok-restful.el b/opengrok-restful.el index 9bfaf56..1040c0d 100644 --- a/opengrok-restful.el +++ b/opengrok-restful.el @@ -49,20 +49,42 @@ (defun opengrok-restful-cleanup (text) (s-replace-all '(("" . "") ("" . "") ("<" . "<") (">" . ">") ("&" . "&")) text)) +(defun opengrok-restful-current-line () + (buffer-substring-no-properties (line-beginning-position) (line-end-position))) + +(defvar opengrok-restful-keymap + (let ((map (make-sparse-keymap))) + (define-key map (kbd "RET") + (lambda () + (interactive "r") + (message "%s" (opengrok-restful-current-line)))) + map)) + +(put-text-property (point-min) (point-max) 'keymap opengrok-restful-keymap) +;; (defun property-test (begin end) +;; (interactive "r") +;; (put-text-property begin end 'font-lock-face '(:foreground "red")) +;; (put-text-property begin end 'keymap opengrok-restful-keymap) +;; ) + (defun opengrok-restful-parse-response (data) (with-current-buffer (get-buffer-create opengrok-restful-buffer) + ;; (setq buffer-read-only nil) (erase-buffer) (opengrok-restful-mode) (mapcar (lambda (file) - (let* ((file-name (symbol-name (car file))) - (file-lines (cdr file))) + (let ((file-name (symbol-name (car file))) + (file-lines (cdr file))) (mapcar (lambda (line) - (let* ((line-number (cdr (assoc 'lineNumber line))) - (line-context (cdr (assoc 'line line)))) + (let ((line-number (cdr (assoc 'lineNumber line))) + (line-content (cdr (assoc 'line line)))) (insert file-name ":" line-number ": ") - (insert (opengrok-restful-cleanup line-context) "\n"))) + (insert (opengrok-restful-cleanup line-content) "\n"))) file-lines))) - (cdr (assoc 'results data))))) + (cdr (assoc 'results data))) + ;; (setq buffer-read-only t) + ;; (put-text-property (point-min) (point-max) 'keymap opengrok-restful-keymap) + )) (defun opengrok-restful-project-lookup (project type value) (request opengrok-restful-url @@ -73,10 +95,29 @@ :complete (cl-function (lambda (&key data &allow-other-keys) (opengrok-restful-parse-response data))))) -(defun do-lookup-def () - (interactive) - (opengrok-restful-project-lookup (read-string "Project: ") "def" (read-string "Symbol: "))) +(defmacro opengrok-restful-define-lookup (type) + (let ((fun (intern (format "opengrok-restful-lookup-%s" type)))) + `(defun ,fun () + (interactive) + (opengrok-restful-project-lookup (read-string "Project: ") ,(symbol-name type) (read-string "Symbol: "))) + )) + +(opengrok-restful-define-lookup full) +(opengrok-restful-define-lookup def) +(opengrok-restful-define-lookup symbol) +(opengrok-restful-define-lookup path) + +(global-set-key (kbd "M-d") 'opengrok-restful-lookup-def) +(global-set-key (kbd "M-f") 'opengrok-restful-lookup-full) +(global-set-key (kbd "M-s") 'opengrok-restful-lookup-symbol) + + +(provide 'opengrok-restful) -(global-set-key (kbd "M-s") 'do-lookup-def) +(message "%s" (opengrok-restful-current-line)) +(what-line) +(println (point-min)) +(println (point-max)) +;; (println (key-binding "M-n")) ;;; opengrok-restful.el ends here