diff options
Diffstat (limited to 'src/tooling')
-rw-r--r-- | src/tooling/build.pk | 2 | ||||
-rw-r--r-- | src/tooling/check.pk | 2 | ||||
-rw-r--r-- | src/tooling/doc.pk | 2 | ||||
-rw-r--r-- | src/tooling/fmt.pk | 2 | ||||
-rw-r--r-- | src/tooling/init.pk | 7 | ||||
-rw-r--r-- | src/tooling/lsp.pk | 2 | ||||
-rw-r--r-- | src/tooling/pkg.pk | 2 | ||||
-rw-r--r-- | src/tooling/test.pk | 1 | ||||
-rw-r--r-- | src/tooling/toolchain.pk | 12 |
9 files changed, 32 insertions, 0 deletions
diff --git a/src/tooling/build.pk b/src/tooling/build.pk new file mode 100644 index 0000000..7bd5da0 --- /dev/null +++ b/src/tooling/build.pk @@ -0,0 +1,2 @@ +# Builds a puck project. +# Subcommands: --clean, --fetch, ... diff --git a/src/tooling/check.pk b/src/tooling/check.pk new file mode 100644 index 0000000..96d04d1 --- /dev/null +++ b/src/tooling/check.pk @@ -0,0 +1,2 @@ +# Syntactically and semantically checks code without compiling. +# This is a good test for Rust interop. diff --git a/src/tooling/doc.pk b/src/tooling/doc.pk new file mode 100644 index 0000000..89db169 --- /dev/null +++ b/src/tooling/doc.pk @@ -0,0 +1,2 @@ +# Produces documentation of a codebase. +# This is a good test for Rust interop: both to call into the parser, and to call into `rustdoc`. diff --git a/src/tooling/fmt.pk b/src/tooling/fmt.pk new file mode 100644 index 0000000..352d0d7 --- /dev/null +++ b/src/tooling/fmt.pk @@ -0,0 +1,2 @@ +# Standard formatter. Uses the main compiler as a library, pulls in the parsing functions, etc. +# This is a good test for Rust interop. diff --git a/src/tooling/init.pk b/src/tooling/init.pk new file mode 100644 index 0000000..1e7c189 --- /dev/null +++ b/src/tooling/init.pk @@ -0,0 +1,7 @@ +# Initializes a new Puck project in the current or passed directory. + +pub func main(args: varargs[str]) = + # Check if the directory is non-empty, and prompt the user + ... + +func init(path: Path): Result[Unit, ref Err] = ... diff --git a/src/tooling/lsp.pk b/src/tooling/lsp.pk new file mode 100644 index 0000000..dd999a9 --- /dev/null +++ b/src/tooling/lsp.pk @@ -0,0 +1,2 @@ +# The language server implementation. Calls into `puck check`. +# This is a good test for non-trivial code written in Puck. diff --git a/src/tooling/pkg.pk b/src/tooling/pkg.pk new file mode 100644 index 0000000..95df0d6 --- /dev/null +++ b/src/tooling/pkg.pk @@ -0,0 +1,2 @@ +# The standard Puck package manager. +# Subcommands: install, remove, search, update (lockfile) diff --git a/src/tooling/test.pk b/src/tooling/test.pk new file mode 100644 index 0000000..f1912b1 --- /dev/null +++ b/src/tooling/test.pk @@ -0,0 +1 @@ +# Runs tests inline and in the `tests/` directory of a project. diff --git a/src/tooling/toolchain.pk b/src/tooling/toolchain.pk new file mode 100644 index 0000000..c0f6e7e --- /dev/null +++ b/src/tooling/toolchain.pk @@ -0,0 +1,12 @@ +# Helper for switching between distro-provided versions of `puckc` and locally-managed toolchains. +# Hopefully, this helps eliminate the problems with distros packaging languages. +# Subcommands: install (nightly beta stable hash), default, show + +type Toolchain = union + Nightly, Stable, Beta, Hash(str) + +func main = ... + +func install(toolchain: Toolchain): Success[ref Err] +func default(toolchain: Toolchain): Success[ref Err] +func show(): str |