Skip to content

Commit 9f23a8b

Browse files
authored
Merge pull request #26 from emacs-php/fix/navigate
Use absolute path
2 parents 7ed0c9f + 47b965b commit 9f23a8b

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

phpactor.el

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,24 @@
7777
;; Utility functions
7878
(defun phpactor-find-executable ()
7979
"Return Phpactor command or path to executable."
80-
(or phpactor-executable
81-
(executable-find phpactor-command-name)))
80+
(or (when phpactor-executable
81+
(php-project--eval-bootstrap-scripts phpactor-executable))
82+
(executable-find phpactor-command-name)
83+
(let ((vendor-executable (f-join (phpactor-get-working-dir) "vendor/bin/phpactor")))
84+
(when (file-exists-p vendor-executable)
85+
vendor-executable))))
8286

8387
(defun phpactor-get-working-dir ()
8488
"Return working directory of Phpactor."
8589
(directory-file-name
8690
(expand-file-name
8791
(or phpactor-working-dir (php-project-get-root-dir)))))
8892

93+
(defun phpactor--expand-local-file-name (name)
94+
"Expand file name by `NAME'."
95+
;; TODO: Support TRAMP
96+
(expand-file-name name))
97+
8998
(defun phpactor--make-command-string (sub-command &rest args)
9099
"Return command string by `SUB-COMMAND' and `ARGS'."
91100
(declare (indent 1))
@@ -199,9 +208,10 @@
199208
(cl-case key
200209
(:source (buffer-substring-no-properties
201210
(point-min) (point-max)))
202-
(:path buffer-file-name)
211+
(:path (phpactor--expand-local-file-name buffer-file-name))
212+
(:source_path (phpactor--expand-local-file-name buffer-file-name))
203213
(:offset (1- (point)))
204-
(:current_path buffer-file-name)
214+
(:current_path (phpactor--expand-local-file-name buffer-file-name))
205215
(t (error "`%s' is unknown argument" key))))
206216

207217
(defun phpactor--command-argments (&rest arg-keys)
@@ -300,14 +310,14 @@
300310
(defun phpactor-copy-class ()
301311
"Execute Phpactor RPC copy_class command."
302312
(interactive)
303-
(let ((arguments (list :source_path (expand-file-name buffer-file-name))))
313+
(let ((arguments (phpactor--command-argments :source_path)))
304314
(apply #'phpactor-action-dispatch (phpactor--rpc "copy_class" arguments))))
305315

306316
;;;###autoload
307317
(defun phpactor-move-class ()
308318
"Execute Phpactor RPC move_class command."
309319
(interactive)
310-
(let ((arguments (list :source_path (expand-file-name buffer-file-name))))
320+
(let ((arguments (phpactor--command-argments :source_path)))
311321
(apply #'phpactor-action-dispatch (phpactor--rpc "move_class" arguments))))
312322

313323
;;;###autoload
@@ -335,8 +345,7 @@
335345
(defun phpactor-navigate ()
336346
"Execute Phpactor RPC navigate command."
337347
(interactive)
338-
(let ((arguments (list :source_path (file-relative-name buffer-file-name
339-
(phpactor-get-working-dir)))))
348+
(let ((arguments (phpactor--command-argments :source_path)))
340349
(apply #'phpactor-action-dispatch (phpactor--rpc "navigate" arguments))))
341350

342351
;;;###autoload

0 commit comments

Comments
 (0)