Got some network processes working.

This commit is contained in:
dominik martinez 2023-06-13 23:36:37 -04:00
parent 8e8ddb4db7
commit 9dcc285d8d

View file

@ -85,7 +85,15 @@
(cl-defmethod connection-live-p ((connection dap-connection)) (cl-defmethod connection-live-p ((connection dap-connection))
(process-live-p (dap-process connection))) (process-live-p (dap-process connection)))
(defvar gudap-server-programs '(((elixir-mode elixir-ts-mode) . ("elixir-ls-debug")))) (defvar gudap-server-programs
'(((elixir-mode elixir-ts-mode) . ("elixir-ls-debug"))
((java-mode java-ts-mode) . (lambda (_inter)
(let ((port (eglot-execute-command
(eglot-current-server)
"vscode.java.startDebugSession"
'())))
`("localhost" ,port))))))
(defvar gudap-launch-args (defvar gudap-launch-args
`(((elixir-mode elixir-ts-mode) . (("phx" . ,(lambda (project) `(((elixir-mode elixir-ts-mode) . (("phx" . ,(lambda (project)
@ -137,14 +145,21 @@
(defun gudap--connect (managed-modes project class contact language-id) (defun gudap--connect (managed-modes project class contact language-id)
(let* ((nickname (project-name project)) (let* ((nickname (project-name project))
(readable-name (format "GUDAP (%s/%s)" nickname managed-modes)) (readable-name (format "GUDAP (%s/%s)" nickname managed-modes))
(dap-proc (make-process :name readable-name (dap-proc (if (integerp (cadr contact))
(open-network-stream
readable-name
(generate-new-buffer readable-name)
(car contact)
(cadr contact)
:sentinel 'dap--server-sentinel
:noquery t)
(make-process :name readable-name
:buffer (generate-new-buffer readable-name) :buffer (generate-new-buffer readable-name)
:command contact :command contact
:filter 'dap--process-filter
:sentinel 'dap--server-sentinel :sentinel 'dap--server-sentinel
:noquery t :noquery t
:connection-type 'pipe :connection-type 'pipe
:coding 'utf-8-emacs-unix)) :coding 'utf-8-emacs-unix)))
(comint-name (format "%s SHELL" readable-name)) (comint-name (format "%s SHELL" readable-name))
(comint-proc (make-process :name comint-name (comint-proc (make-process :name comint-name
:buffer (generate-new-buffer comint-name) :buffer (generate-new-buffer comint-name)
@ -157,6 +172,7 @@
:response-dispatcher 'gudap-response-dispatcher :response-dispatcher 'gudap-response-dispatcher
:comint-process comint-proc :comint-process comint-proc
:launch-args (alist-get managed-modes gudap-launch-args nil nil #'equal)))) :launch-args (alist-get managed-modes gudap-launch-args nil nil #'equal))))
(set-process-filter dap-proc 'dap--process-filter)
(setq gudap--cached-connection conn) (setq gudap--cached-connection conn)
(process-put dap-proc 'dap-connection conn) (process-put dap-proc 'dap-connection conn)
(process-put comint-proc 'dap-connection conn) (process-put comint-proc 'dap-connection conn)