abingham / emacs-ycmd

Emacs client for ycmd, the code completion system.
MIT License
384 stars 46 forks source link

TRAMP issue in Emacs 26 #439

Closed Alexander-Shukaev closed 7 years ago

Alexander-Shukaev commented 7 years ago

Heads up, an issue identical to magit/with-editor#29 detected on Emacs 26:

Debugger entered--Lisp error: (wrong-number-of-arguments (6 . 7) 5)
  tramp-make-tramp-file-name("sudo" "root" "host" "~/" nil)
  request--curl("http://127.0.0.1:35419/event_notification" :type "POST" :params nil :data "{\"event_name\":\"BufferUnload\",\"file_data\":{\"/sudo:root@host:/tmp/xxx.cpp\":{\"contents\":\"\",\"filetypes\":[\"cpp\"]}},\"filepath\":\"/sudo:root@host:/tmp/xxx.cpp\",\"line_num\":5,\"column_num\":5}" :parser #[0 "\301\302 )\207" [json-array-type list json-read] 1] :headers (("Content-Type" . "application/json") ("X-Ycm-Hmac" . "gbCfMfOGglPjTYJ8FCQKY2AIOUOImiRkN2HJdmo6Uys=")) :complete #[128 "\302\300\303\301\"\"\207" [#[385 "\300\301\302\"\"\207" [deferred:callback-post plist-get :response] 7 "\n\n(fn D &rest ARGS)"] (#s(deferred identity deferred:default-errorback deferred:default-cancel nil nil nil)) apply append] 6 "\n\n(fn &rest ARGS2)"] :error #[128 "\302\300\303\301\"\"\207" [request-default-error-callback ("http://127.0.0.1:35419/event_notification") apply append] 6 "\n\n(fn &rest ARGS2)"] :url "http://127.0.0.1:35419/event_notification" :response #s(request-response nil nil nil nil nil "http://127.0.0.1:35419/event_notification" nil (:type "POST" :params nil :data "{\"event_name\":\"BufferUnload\",\"file_data\":{\"/sudo:root@host:/tmp/xxx.cpp\":{\"contents\":\"\",\"filetypes\":[\"cpp\"]}},\"filepath\":\"/sudo:root@host:/tmp/xxx.cpp\",\"line_num\":5,\"column_num\":5}" :parser #[0 "\301\302 )\207" [json-array-type list json-read] 1] :headers (("Content-Type" . "application/json") ("X-Ycm-Hmac" . "gbCfMfOGglPjTYJ8FCQKY2AIOUOImiRkN2HJdmo6Uys=")) :complete #[128 "\302\300\303\301\"\"\207" [#[385 "\300\301\302\"\"\207" [deferred:callback-post plist-get :response] 7 "\n\n(fn D &rest ARGS)"] (#s(deferred identity deferred:default-errorback deferred:default-cancel nil nil nil)) apply append] 6 "\n\n(fn &rest ARGS2)"] :error #[128 "\302\300\303\301\"\"\207" [request-default-error-callback ("http://127.0.0.1:35419/event_notification") apply append] 6 "\n\n(fn &rest ARGS2)"] :url "http://127.0.0.1:35419/event_notification" :response #1) nil nil nil curl nil))
  apply(request--curl "http://127.0.0.1:35419/event_notification" (:type "POST" :params nil :data "{\"event_name\":\"BufferUnload\",\"file_data\":{\"/sudo:root@host:/tmp/xxx.cpp\":{\"contents\":\"\",\"filetypes\":[\"cpp\"]}},\"filepath\":\"/sudo:root@host:/tmp/xxx.cpp\",\"line_num\":5,\"column_num\":5}" :parser #[0 "\301\302 )\207" [json-array-type list json-read] 1] :headers (("Content-Type" . "application/json") ("X-Ycm-Hmac" . "gbCfMfOGglPjTYJ8FCQKY2AIOUOImiRkN2HJdmo6Uys=")) :complete #[128 "\302\300\303\301\"\"\207" [#[385 "\300\301\302\"\"\207" [deferred:callback-post plist-get :response] 7 "\n\n(fn D &rest ARGS)"] (#s(deferred identity deferred:default-errorback deferred:default-cancel nil nil nil)) apply append] 6 "\n\n(fn &rest ARGS2)"] :error #[128 "\302\300\303\301\"\"\207" [request-default-error-callback ("http://127.0.0.1:35419/event_notification") apply append] 6 "\n\n(fn &rest ARGS2)"] :url "http://127.0.0.1:35419/event_notification" :response #s(request-response nil nil nil nil nil "http://127.0.0.1:35419/event_notification" nil #1 nil nil nil curl nil)))
  request("http://127.0.0.1:35419/event_notification" :type "POST" :params nil :data "{\"event_name\":\"BufferUnload\",\"file_data\":{\"/sudo:root@host:/tmp/xxx.cpp\":{\"contents\":\"\",\"filetypes\":[\"cpp\"]}},\"filepath\":\"/sudo:root@host:/tmp/xxx.cpp\",\"line_num\":5,\"column_num\":5}" :parser #[0 "\301\302 )\207" [json-array-type list json-read] 1] :headers (("Content-Type" . "application/json") ("X-Ycm-Hmac" . "gbCfMfOGglPjTYJ8FCQKY2AIOUOImiRkN2HJdmo6Uys=")) :complete #[128 "\302\300\303\301\"\"\207" [#[385 "\300\301\302\"\"\207" [deferred:callback-post plist-get :response] 7 "\n\n(fn D &rest ARGS)"] (#s(deferred identity deferred:default-errorback deferred:default-cancel nil nil nil)) apply append] 6 "\n\n(fn &rest ARGS2)"])
  apply(request "http://127.0.0.1:35419/event_notification" (:type "POST" :params nil :data "{\"event_name\":\"BufferUnload\",\"file_data\":{\"/sudo:root@host:/tmp/xxx.cpp\":{\"contents\":\"\",\"filetypes\":[\"cpp\"]}},\"filepath\":\"/sudo:root@host:/tmp/xxx.cpp\",\"line_num\":5,\"column_num\":5}" :parser #[0 "\301\302 )\207" [json-array-type list json-read] 1] :headers (("Content-Type" . "application/json") ("X-Ycm-Hmac" . "gbCfMfOGglPjTYJ8FCQKY2AIOUOImiRkN2HJdmo6Uys=")) :complete #[128 "\302\300\303\301\"\"\207" [#[385 "\300\301\302\"\"\207" [deferred:callback-post plist-get :response] 7 "\n\n(fn D &rest ARGS)"] (#s(deferred identity deferred:default-errorback deferred:default-cancel nil nil nil)) apply append] 6 "\n\n(fn &rest ARGS2)"]))
  request-deferred("http://127.0.0.1:35419/event_notification" :type "POST" :params nil :data "{\"event_name\":\"BufferUnload\",\"file_data\":{\"/sudo:root@host:/tmp/xxx.cpp\":{\"contents\":\"\",\"filetypes\":[\"cpp\"]}},\"filepath\":\"/sudo:root@host:/tmp/xxx.cpp\",\"line_num\":5,\"column_num\":5}" :parser #[0 "\301\302 )\207" [json-array-type list json-read] 1] :headers (("Content-Type" . "application/json") ("X-Ycm-Hmac" . "gbCfMfOGglPjTYJ8FCQKY2AIOUOImiRkN2HJdmo6Uys=")))
  ycmd--request(#s(ycmd-request-data "event_notification" (("event_name" . "BufferUnload") ("file_data" ("/sudo:root@host:/tmp/xxx.cpp" ("contents" . "") ("filetypes" "cpp"))) ("filepath" . "/sudo:root@host:/tmp/xxx.cpp") ("line_num" . 5) ("column_num" . 5))))
  ycmd--event-notification("BufferUnload")
  ycmd--on-close-buffer()
  kill-buffer()
  evil-delete-buffer(nil nil)
  funcall-interactively(evil-delete-buffer nil nil)
  call-interactively(evil-delete-buffer nil nil)
  command-execute(evil-delete-buffer)

because the signature of tramp-make-tramp-file-name now accepts port at the previous position of localname:

(defun tramp-make-tramp-file-name
    (method user domain host port localname &optional hop)
  "Constructs a Tramp file name from METHOD, USER, HOST and LOCALNAME.
When not nil, optional DOMAIN, PORT and HOP are used."
  ...)

Please, adapt.

ptrv commented 7 years ago

This is not an emacs-ycmd issue. We don't use tramp-make-tramp-file-name. The error comes from the request package. See pull request https://github.com/tkf/emacs-request/pull/82