Собственно вот примитивный код
use std:: !!!Место вызова!!!
fn main() {
}
Debugger entered--Lisp error: (error "<Полный путь до директории>/racer exited with status 1")
signal(error ("<Полный путь до директории>/racer exited with status 1"))
error("%s exited with status %s" "<Полный путь до директории>/racer" 1)
process-lines("<Полный путь до директории>/racer" "complete" "1" "9" "/tmp/test.rs" "/tmp/racer6430vfh")
apply(process-lines "<Полный путь до директории>/racer" "complete" ("1" "9" "/tmp/test.rs" "/tmp/racer6430vfh"))
racer--call("complete" "1" "9" "/tmp/test.rs" "/tmp/racer6430vfh")
(prog1 (racer--call command (number-to-string (line-number-at-pos)) (number-to-string (current-column)) (buffer-file-name) tmp-file) (delete-file tmp-file))
(let ((tmp-file (make-temp-file "racer"))) (write-region nil nil tmp-file nil (quote silent)) (prog1 (racer--call command (number-to-string (line-number-at-pos)) (number-to-string (current-column)) (buffer-file-name) tmp-file) (delete-file tmp-file)))
racer--call-at-point("complete")
(let ((list (racer--call-at-point "complete")) (it-index 0)) (while list (let ((it (car list))) (if (s-starts-with\? "MATCH" it) (progn (setq result (cons it result))))) (setq it-index (1+ it-index)) (setq list (cdr list))))
(let (result) (let ((list (racer--call-at-point "complete")) (it-index 0)) (while list (let ((it (car list))) (if (s-starts-with\? "MATCH" it) (progn (setq result (cons it result))))) (setq it-index (1+ it-index)) (setq list (cdr list)))) (nreverse result))
(mapcar (function (lambda (it) (let* ((--dash-source-1-- (s-split-up-to "," (s-chop-prefix "MATCH " it) 5)) (name (car-safe (prog1 --dash-source-1-- ...))) (line (car-safe (prog1 --dash-source-1-- ...))) (col (car-safe (prog1 --dash-source-1-- ...))) (file (car-safe (prog1 --dash-source-1-- ...))) (matchtype (car-safe (prog1 --dash-source-1-- ...))) (ctx (car --dash-source-1--))) (put-text-property 0 1 (quote line) (string-to-number line) name) (put-text-property 0 1 (quote col) (string-to-number col) name) (put-text-property 0 1 (quote file) file name) (put-text-property 0 1 (quote matchtype) matchtype name) (put-text-property 0 1 (quote ctx) ctx name) name))) (let (result) (let ((list (racer--call-at-point "complete")) (it-index 0)) (while list (let ((it (car list))) (if (s-starts-with\? "MATCH" it) (progn (setq result ...)))) (setq it-index (1+ it-index)) (setq list (cdr list)))) (nreverse result)))
racer-complete("")
...
Вызываю код, который emacs использовал для попытки автокомплита в терминале
<Полный путь до директории>/racer" "complete" "1" "9" "/tmp/test.rs" "/tmp/racer6430vfh"
Получаю
PREFIX 9,9,
MATCH core_collections,1,0,/home/deterok/.local/src/rustc-1.2.0/src/libcollections/lib.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcollections/lib.rs
MATCH core_rand,1,0,<Путь до исходников>/rustc-1.2.0/src/librand/lib.rs,Module,<Путь до исходников>/rustc-1.2.0/src/librand/lib.rs
MATCH any,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/any.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/any.rs
MATCH cell,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/cell.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/cell.rs
MATCH clone,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/clone.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/clone.rs
MATCH cmp,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/cmp.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/cmp.rs
MATCH convert,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/convert.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/convert.rs
MATCH default,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/default.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/default.rs
MATCH hash,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/hash/mod.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/hash/mod.rs
MATCH intrinsics,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/intrinsics.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/intrinsics.rs
MATCH iter,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/iter.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/iter.rs
MATCH marker,1,0,<Путь до исходников>/rustc-1.2.0/src/libcore/marker.rs,Module,<Путь до исходников>/rustc-1.2.0/src/libcore/marker.rs
...
END
$ echo $?
0