Browse Source

implement jump to target

Signed-off-by: RainMark <rain.by.zhou@gmail.com>
pull/2/head
RainMark 5 years ago
parent
commit
ae92f78f84
  1. 60
      opengrok-restful.el

60
opengrok-restful.el

@ -39,6 +39,7 @@
(defconst opengrok-restful-url "http://127.0.0.1:8080/api/v1/search") (defconst opengrok-restful-url "http://127.0.0.1:8080/api/v1/search")
(defconst opengrok-restful-buffer "*opengrok-restful*") (defconst opengrok-restful-buffer "*opengrok-restful*")
(defconst opengrok-restful-source-directory "~/opengrok-src")
(setq opengrok-restful-highlights (setq opengrok-restful-highlights
'(("/.+:[0-9]+" . font-lock-constant-face))) '(("/.+:[0-9]+" . font-lock-constant-face)))
@ -52,24 +53,34 @@
(defun opengrok-restful-current-line () (defun opengrok-restful-current-line ()
(buffer-substring-no-properties (line-beginning-position) (line-end-position))) (buffer-substring-no-properties (line-beginning-position) (line-end-position)))
(defvar opengrok-restful-keymap (defun opengrok-restful-jump-to-target (line-content)
(let ((map (make-sparse-keymap))) (cl-multiple-value-bind (path linum)
(define-key map (kbd "RET") (save-match-data
(lambda () (string-match "/.+:[0-9]+" line-content)
(interactive "r") (split-string (match-string 0 line-content) ":"))
(message "%s" (opengrok-restful-current-line)))) (find-file (concat
map)) (file-name-as-directory opengrok-restful-source-directory)
(substring path 1)))
(put-text-property (point-min) (point-max) 'keymap opengrok-restful-keymap) (goto-char (point-min))
;; (defun property-test (begin end) (forward-line (1- (string-to-number linum)))
;; (interactive "r") (kill-buffer opengrok-restful-buffer)
;; (put-text-property begin end 'font-lock-face '(:foreground "red")) ))
;; (put-text-property begin end 'keymap opengrok-restful-keymap)
;; ) (setq opengrok-restful-keymap
(let ((map (make-sparse-keymap)))
(define-key map (kbd "RET")
(lambda ()
(interactive)
(opengrok-restful-jump-to-target (opengrok-restful-current-line))))
(define-key map (kbd "<escape>")
(lambda ()
(interactive)
(kill-current-buffer)))
map))
(defun opengrok-restful-parse-response (data) (defun opengrok-restful-parse-response (data)
(with-current-buffer (get-buffer-create opengrok-restful-buffer) (with-current-buffer (get-buffer-create opengrok-restful-buffer)
;; (setq buffer-read-only nil) (setq buffer-read-only nil)
(erase-buffer) (erase-buffer)
(opengrok-restful-mode) (opengrok-restful-mode)
(mapcar (lambda (file) (mapcar (lambda (file)
@ -78,12 +89,19 @@
(mapcar (lambda (line) (mapcar (lambda (line)
(let ((line-number (cdr (assoc 'lineNumber line))) (let ((line-number (cdr (assoc 'lineNumber line)))
(line-content (cdr (assoc 'line line)))) (line-content (cdr (assoc 'line line))))
(when (string= "" line-number) (setq line-number "1"))
(println line-number)
(insert file-name ":" line-number ": ") (insert file-name ":" line-number ": ")
(insert (opengrok-restful-cleanup line-content) "\n"))) (insert (opengrok-restful-cleanup line-content) "\n")))
file-lines))) 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)
;; (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."))
)) ))
(defun opengrok-restful-project-lookup (project type value) (defun opengrok-restful-project-lookup (project type value)
@ -110,14 +128,8 @@
(global-set-key (kbd "M-d") 'opengrok-restful-lookup-def) (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-f") 'opengrok-restful-lookup-full)
(global-set-key (kbd "M-s") 'opengrok-restful-lookup-symbol) (global-set-key (kbd "M-s") 'opengrok-restful-lookup-symbol)
(global-set-key (kbd "M-p") 'opengrok-restful-lookup-path)
(provide 'opengrok-restful) (provide 'opengrok-restful)
(message "%s" (opengrok-restful-current-line))
(what-line)
(println (point-min))
(println (point-max))
;; (println (key-binding "M-n"))
;;; opengrok-restful.el ends here ;;; opengrok-restful.el ends here

Loading…
Cancel
Save