Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143171675
D54238.id168079.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D54238.id168079.diff
View Options
diff --git a/devel/janet-lsp/Makefile b/devel/janet-lsp/Makefile
new file mode 100644
--- /dev/null
+++ b/devel/janet-lsp/Makefile
@@ -0,0 +1,55 @@
+PORTNAME= janet-lsp
+PORTVERSION= 0.0.11
+DISTVERSIONPREFIX= v
+CATEGORIES= devel
+
+MAINTAINER= dave@freedave.net
+COMMENT= LSP for lang/janet
+WWW= https://github.com/CFiggers/janet-lsp
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+# Technically jpm should depend on janet.
+BUILD_DEPENDS= janet>=1.17.2:lang/janet \
+ jpm>=1.1.0:lang/jpm
+
+USE_GITHUB= yes
+GH_ACCOUNT= CFiggers
+
+# These are a little more recent than latest releases. But there is no lockfile
+# so by default jpm(1) would use HEAD. There is also a conflict for cmd and the
+# CFiggers version is more recent (and required by janet-lsp).
+# Alphabetical order by project works but is coincidental and only because the
+# sole depenedency is 'judge' on 'cmd'.
+#
+# This ordering is respected in do-build.
+GH_TUPLE= CFiggers:cmd:b0a34d6:cmd \
+ CFiggers:jayson:4f54041:jayson \
+ ianthehenry:judge:3b92185:judge \
+ janet-lang:spork:7b780cc:spork
+
+PLIST_FILES= bin/janet-lsp
+
+# To trick `portlint -A`, we use "install" (with quotes).
+#
+# `jpm install` does not actually install anyway. This does a build (with no
+# dependency checking, which is why order matters) and install to the work
+# "jpm_tree". Which is where all the dependencies and the project expect to find
+# any of their build dependencies.
+#
+# Use GH_TUPLE project-hash as directory to avoid an unnecessary copy.
+do-build:
+. for dep in ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*):([^:]*)@\2-\3@}
+ cd ${WRKDIR}/${dep} && jpm --tree=${WRKSRC}/jpm_tree "install"
+. endfor
+ cd ${WRKSRC} && jpm --tree=${WRKSRC}/jpm_tree build
+
+do-install:
+ ${MKDIR} ${STAGEDIR}/bin
+ ${INSTALL_PROGRAM} ${WRKSRC}/build/janet-lsp ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+do-test:
+ cd ${WRKSRC} && jpm test -l
+
+.include <bsd.port.mk>
diff --git a/devel/janet-lsp/distinfo b/devel/janet-lsp/distinfo
new file mode 100644
--- /dev/null
+++ b/devel/janet-lsp/distinfo
@@ -0,0 +1,11 @@
+TIMESTAMP = 1765654720
+SHA256 (CFiggers-janet-lsp-v0.0.11_GH0.tar.gz) = 6dec1d75547cb99097415822605dc9d4bccd897bb1e206264b1280f38bbe824f
+SIZE (CFiggers-janet-lsp-v0.0.11_GH0.tar.gz) = 33575
+SHA256 (CFiggers-cmd-b0a34d6_GH0.tar.gz) = e5ed4f760d2d0beb607e554ed928232d908643bf5d1051a3d8e12fe9160e561c
+SIZE (CFiggers-cmd-b0a34d6_GH0.tar.gz) = 22306
+SHA256 (CFiggers-jayson-4f54041_GH0.tar.gz) = 2f88178be3f8cb44dad5cda8f140c85f010acb28820400998208ea3d292883c8
+SIZE (CFiggers-jayson-4f54041_GH0.tar.gz) = 3864843
+SHA256 (ianthehenry-judge-3b92185_GH0.tar.gz) = 904208053f675844d3e7cc18d21d893ecef356603df4ce1bdf6cd0933090163b
+SIZE (ianthehenry-judge-3b92185_GH0.tar.gz) = 31792
+SHA256 (janet-lang-spork-7b780cc_GH0.tar.gz) = 34cb553a153fa328b8e792435a2194700c822935baf184e9864d4fdabf50c37a
+SIZE (janet-lang-spork-7b780cc_GH0.tar.gz) = 267805
diff --git a/devel/janet-lsp/files/patch-project.janet b/devel/janet-lsp/files/patch-project.janet
new file mode 100644
--- /dev/null
+++ b/devel/janet-lsp/files/patch-project.janet
@@ -0,0 +1,29 @@
+--- project.janet.orig 2025-09-05 00:00:02 UTC
++++ project.janet
+@@ -7,16 +7,17 @@
+ "https://github.com/ianthehenry/judge.git"
+ "https://github.com/CFiggers/cmd.git"])
+
+-# (def cflags
+-# (case (os/which)
+-# :windows []
+-# ["-s"]))
++(def cflags
++ (case (os/which)
++ :windows []
++ :freebsd []
++ ["-s"]))
+
+-# (declare-executable
+-# :name "janet-lsp"
+-# :entry "src/main.janet"
+-# :cflags cflags
+-# :install true)
++(declare-executable
++ :name "janet-lsp"
++ :entry "src/main.janet"
++ :cflags cflags
++ :install true)
+
+ (declare-archive
+ :name "janet-lsp"
diff --git a/devel/janet-lsp/files/patch-src_main.janet b/devel/janet-lsp/files/patch-src_main.janet
new file mode 100644
--- /dev/null
+++ b/devel/janet-lsp/files/patch-src_main.janet
@@ -0,0 +1,19 @@
+--- src/main.janet.orig 2025-12-15 16:13:59 UTC
++++ src/main.janet
+@@ -16,12 +16,10 @@
+ (use judge)
+
+ (def version "0.0.11")
+-(def commit
+- (with [proc (os/spawn ["git" "rev-parse" "--short" "HEAD"] :xp {:out :pipe})]
+- (let [[out] (ev/gather
+- (ev/read (proc :out) :all)
+- (os/proc-wait proc))]
+- (if out (string/trimr out) ""))))
++
++# `git rev-parse --short HEAD` is going to find the revision of the ports tree.
++# The tag should be enough so just supply a string for commit.
++(def commit "FreeBSD")
+
+ (def jpm-defs (require "../libs/jpm-defs"))
+
diff --git a/devel/janet-lsp/pkg-descr b/devel/janet-lsp/pkg-descr
new file mode 100644
--- /dev/null
+++ b/devel/janet-lsp/pkg-descr
@@ -0,0 +1,8 @@
+A Language Server (LSP) for the Janet programming language (lang/janet).
+
+Current features:
+* Auto-completion based on symbols in the Janet Standard Library and defined in
+ user code
+* On-hover definition of symbols as returned by (doc ,symbol)
+* Inline compiler errors
+* Pop-up signature help
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jan 27, 10:16 PM (18 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28060690
Default Alt Text
D54238.id168079.diff (4 KB)
Attached To
Mode
D54238: [NEW PORT] devel/janet-lsp
Attached
Detach File
Event Timeline
Log In to Comment