diff options
Diffstat (limited to 'devel/janet-lsp')
| -rw-r--r-- | devel/janet-lsp/Makefile | 60 | ||||
| -rw-r--r-- | devel/janet-lsp/distinfo | 11 | ||||
| -rw-r--r-- | devel/janet-lsp/files/janet-lsp.in | 11 | ||||
| -rw-r--r-- | devel/janet-lsp/files/patch-src_main.janet | 19 | ||||
| -rw-r--r-- | devel/janet-lsp/pkg-descr | 8 |
5 files changed, 109 insertions, 0 deletions
diff --git a/devel/janet-lsp/Makefile b/devel/janet-lsp/Makefile new file mode 100644 index 000000000000..89feef4d797b --- /dev/null +++ b/devel/janet-lsp/Makefile @@ -0,0 +1,60 @@ +PORTNAME= janet-lsp +PORTVERSION= 0.0.11 +DISTVERSIONPREFIX= v +PORTREVISION= 1 +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 +RUN_DEPENDS= janet>=1.17.2:lang/janet + +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 + +SUB_FILES= janet-lsp + +PLIST_FILES= bin/janet-lsp \ + lib/janet/janet-lsp.jimage \ + lib/janet/.manifests/janet-lsp.jdn + +# 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} && \ + ${LOCALBASE}/bin/jpm --tree=${WRKSRC}/jpm_tree "install" +.endfor + cd ${WRKSRC} && ${LOCALBASE}/bin/jpm --tree=${WRKSRC}/jpm_tree "install" + +do-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/lib/janet/.manifests + ${INSTALL_SCRIPT} ${WRKDIR}/janet-lsp \ + ${STAGEDIR}${PREFIX}/bin/${PORTNAME} + ${INSTALL_DATA} ${WRKSRC}/jpm_tree/lib/janet-lsp.jimage \ + ${STAGEDIR}${PREFIX}/lib/janet/janet-lsp.jimage + ${INSTALL_DATA} ${WRKSRC}/jpm_tree/lib/.manifests/janet-lsp.jdn \ + ${STAGEDIR}${PREFIX}/lib/janet/.manifests/janet-lsp.jdn + +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 index 000000000000..aea5462c51fe --- /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/janet-lsp.in b/devel/janet-lsp/files/janet-lsp.in new file mode 100644 index 000000000000..69eea77d05c3 --- /dev/null +++ b/devel/janet-lsp/files/janet-lsp.in @@ -0,0 +1,11 @@ +@comment | This file is normally created by `jpm install`. The problem is that +@comment | it uses the path from --tree for janet and the full path to that tree +@comment | for the image. Both wrong. +@comment | See work/janet-lsp-*/jpm_tree/bin/janet-lsp for the version with the +@comment | wrong paths that this replaces. It is this small. +#!%%LOCALBASE%%/bin/janet +(import janet-lsp) +(put root-env :syspath "%%LOCALBASE%%/lib") + +(defn main [& args] + (janet-lsp/main ;args)) diff --git a/devel/janet-lsp/files/patch-src_main.janet b/devel/janet-lsp/files/patch-src_main.janet new file mode 100644 index 000000000000..fd9ea4e1dfd2 --- /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 index 000000000000..b5ade15bab58 --- /dev/null +++ b/devel/janet-lsp/pkg-descr @@ -0,0 +1,8 @@ +This is an LSP server for the Janet language, supporting: + +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 |
