Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions src/clojure_mcp/nrepl_launcher.clj
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,10 @@
Returns the port number as an integer or nil if not found."
[output]
(when output
(let [patterns [#"(?i)nrepl.*?port[^\d]*(\d+)" ; nREPL server started on port 12345
#"(?i)port[^\d]*(\d+)" ; port 12345, port: 12345
#":(\d{4,5})\b" ; :12345 (4-5 digit ports)
#"Started.*?(\d{4,5})\b" ; Started on 12345
#"Listening.*?(\d{4,5})\b"] ; Listening on 12345
(let [patterns [#"(?i)port\s{1,10}(\d+)\b" ; port 12345
#":\s?(\d{4,5})\b" ; :12345 or : 12345 (4-5 digit ports)
#"(?i)Started on\s{1,10}(\d{4,5})\b" ; Started on 12345
#"(?i)Listening on\s{1,10}(\d{4,5})\b"] ; Listening on 12345
line (str/trim output)]
(some (fn [pattern]
(when-let [match (re-find pattern line)]
Expand Down
4 changes: 3 additions & 1 deletion test/clojure_mcp/nrepl_launcher_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"port abc" ; non-numeric
"port 123" ; too small (below 1024)
"port 999999" ; too large (above 65535)
"random text"))
"random text"
;; FlowStorm output should not match (issue #109)
"flow_storm.jobs$run_jobs$mem_reporter__4628@348137e8 function scheduled every 1000 millis"))

(testing "handles case insensitive matching"
(are [output expected] (= expected (launcher/parse-port-from-output output))
Expand Down