|
|
@ -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>" . "") ("<" . "<") (">" . ">") ("&" . "&")) 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 |
|
|
|