Browse Source

implement lookup symbol ops

Signed-off-by: bingyu.zby <bingyu.zby@alibaba-inc.com>
pull/2/head
Bingyu Zhou 5 years ago
parent
commit
a3f5e1ca6e
  1. 67
      opengrok-restful.el

67
opengrok-restful.el

@ -30,54 +30,53 @@
;;; Code: ;;; Code:
(add-to-list 'load-path "~/.emacs.d/elpa/request-20200219.2257/") (defmacro println (x)
`(message (prin1-to-string ,x)))
(require 'json) (require 'json)
(require 'request) (require 'request)
;; (add-to-list 'load-path "~/.emacs.d/elpa/request-20200219.2257/")
(defconst opengrok-restful-search-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*")
(defmacro println (x) (setq opengrok-restful-highlights
`(message (prin1-to-string ,x))) '(("/.+:[0-9]+" . font-lock-constant-face)))
(define-derived-mode opengrok-restful-mode text-mode "opengrok-restful-mode"
(setq font-lock-defaults '(opengrok-restful-highlights)))
(defun opengrok-restful-process-result (data) (defun opengrok-restful-cleanup (text)
;; (println data) (s-replace-all '(("<b>" . "") ("</b>" . "") ("&lt;" . "<") ("&gt;" . ">") ("&amp;" . "&")) text))
;; (setq rr (cdr r))
;; (println r)
;; (loop for (k . v) in r
;; (println k)
;; (println v)
;; )
(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 resp (cdr (assoc 'results data))) (erase-buffer)
(mapcar (lambda (item) (opengrok-restful-mode)
;; (println item) (mapcar (lambda (file)
(setq k (car item)) (let* ((file-name (symbol-name (car file)))
(setq v (cdr item)) (file-lines (cdr file)))
(insert (prin1-to-string k)) (mapcar (lambda (line)
(insert (prin1-to-string v)) (let* ((line-number (cdr (assoc 'lineNumber line)))
(line-context (cdr (assoc 'line line))))
) resp) (insert file-name ":" line-number ": ")
) (insert (opengrok-restful-cleanup line-context) "\n")))
) file-lines)))
(cdr (assoc 'results data)))))
(defun opengrok-restful-lookup-symbol (sym)
;; (println (type-of symbol)) (defun opengrok-restful-project-lookup (project type value)
(request opengrok-restful-search-url (request opengrok-restful-url
:type "GET" :type "GET"
:params '(("projects" . "anet") ("full" . "epoll")) :params `(("projects" . ,project) (,type . ,value))
:parser 'json-read :parser 'json-read
:sync t :sync t
:complete (cl-function (lambda (&key data &allow-other-keys) :complete (cl-function (lambda (&key data &allow-other-keys)
(opengrok-restful-process-result data) (opengrok-restful-parse-response data)))))
))
))
(opengrok-restful-lookup-symbol "epoll") (defun do-lookup-def ()
;; (with-current-buffer (get-buffer-create opengrok-restful-buffer) (interactive)
;; (insert "ok")) (opengrok-restful-project-lookup (read-string "Project: ") "def" (read-string "Symbol: ")))
(global-set-key (kbd "M-s") 'do-lookup-def)
;;; opengrok-restful.el ends here ;;; opengrok-restful.el ends here

Loading…
Cancel
Save