Skip to content

Commit

Permalink
Don't need set port manually.
Browse files Browse the repository at this point in the history
  • Loading branch information
manateelazycat committed Oct 11, 2022
1 parent 3067a97 commit 0809235
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 5 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -45,11 +45,11 @@ I write a demo to show you how simple write app base on deno-brige:
```elisp
(require 'deno-bridge)
(setq deno-bridge-demo-ts-path (concat (file-name-directory load-file-name) "deno-bridge-demo.ts"))
(deno-bridge-start "demo" deno-bridge-demo-ts-path "8686" "8687")
(deno-bridge-start "demo" deno-bridge-demo-ts-path)
(deno-bridge-call "demo" "ping" "Hello from Emacs.")
```

1. Start Deno process: `(deno-bridge-start "demo" deno-bridge-demo-ts-path "8686" "8687")`
1. Start Deno process: `(deno-bridge-start "demo" deno-bridge-demo-ts-path)`
2. Call TypeScript function from Emacs: `(deno-bridge-call "demo" "ping" "Hello from Emacs.")`
3. Clean Deno process: execute command `deno-bridge-exit` and select application name

Expand Down
22 changes: 20 additions & 2 deletions deno-bridge.el
Expand Up @@ -86,10 +86,28 @@

(defvar deno-bridge-app-list (list))

(cl-defmacro deno-bridge-start (app-name ts-path deno-port emacs-port)
(defun deno-bridge-get-free-port ()
(save-excursion
(let* ((process-buffer " *temp*")
(process (make-network-process
:name process-buffer
:buffer process-buffer
:family 'ipv4
:server t
:host "127.0.0.1"
:service t))
port)
(setq port (process-contact process))
(delete-process process)
(kill-buffer process-buffer)
(format "%s" (cadr port)))))

(cl-defmacro deno-bridge-start (app-name ts-path)
(if (member app-name deno-bridge-app-list)
(message "[DenoBridge] Application %s has start." app-name)
(let* ((server (intern (format "deno-bridge-server-%s" app-name)))
(let* ((deno-port (deno-bridge-get-free-port))
(emacs-port (deno-bridge-get-free-port))
(server (intern (format "deno-bridge-server-%s" app-name)))
(process (intern (format "deno-bridge-process-%s" app-name)))
(process-buffer (format " *deno-bridge-app-%s*" app-name))
(client (intern (format "deno-bridge-client-%s" app-name))))
Expand Down
2 changes: 1 addition & 1 deletion example/deno-bridge-demo.el
Expand Up @@ -86,7 +86,7 @@

(setq deno-bridge-demo-ts-path (concat (file-name-directory load-file-name) "deno-bridge-demo.ts"))

;; (deno-bridge-start "demo" deno-bridge-demo-ts-path "8686" "8687")
;; (deno-bridge-start "demo" deno-bridge-demo-ts-path)
;; (deno-bridge-call "demo" "ping" "Hello from Emacs.")

(provide 'deno-bridge-demo)
Expand Down

0 comments on commit 0809235

Please sign in to comment.