summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix86
1 files changed, 82 insertions, 4 deletions
diff --git a/flake.nix b/flake.nix
index d17ff6f..19f3b33 100644
--- a/flake.nix
+++ b/flake.nix
@@ -4,6 +4,9 @@
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
ocaml.url = "github:nix-ocaml/nix-overlays";
ocaml.inputs.nixpkgs.follows = "nixpkgs";
+ # it's broken wtf
+ # lsp.url = "github:ocaml/ocaml-lsp";
+ # lsp.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = {
@@ -88,6 +91,79 @@
writeShellApplication
;
};
+ mlx-repo = pkgs.fetchFromGitHub {
+ owner = "ocaml-mlx";
+ repo = "mlx";
+ rev = "aa59db58c948f93ab960c63e127f0f5c41d8530c";
+ sha256 = "g2v6U4lubYIVKUkU0j+OwtPxK9tKvleuX+vA4ljJ1bA=";
+ };
+ mlx = pkgs.ocamlPackages.buildDunePackage {
+ pname = "mlx";
+ version = "0.9.0";
+ src = mlx-repo;
+ propagatedBuildInputs = with pkgs.ocamlPackages; [
+ ppxlib
+ ocaml-compiler-libs
+ ];
+ };
+ ocamlmerlinmlx = pkgs.ocamlPackages.buildDunePackage {
+ pname = "ocamlmerlin-mlx";
+ version = "0.9.0";
+ src = mlx-repo;
+
+ nativeBuildInputs = with pkgs.ocamlPackages; [
+ cppo
+ ];
+ propagatedBuildInputs = with pkgs.ocamlPackages; [
+ ppxlib
+ merlin-lib
+ csexp
+ ];
+ };
+ # lsp-repo = pkgs.fetchFromGitHub {
+ # owner = "ocaml";
+ # repo = "ocaml-lsp";
+ # rev = "4483b5b9cb3c58d09cfd113394f3ced8fea11f50";
+ # sha256 = "+h8XzJutCT587XrLg/rC/c7TXsnm84BEtvUj4CfFqaM=";
+ # };
+ # jsonrpc = pkgs.ocamlPackages.buildDunePackage {
+ # pname = "jsonrpc";
+ # version = "1.23.0";
+ # src = lsp-repo;
+ # };
+ # lsp = pkgs.ocamlPackages.buildDunePackage {
+ # pname = "lsp";
+ # version = "1.23.0";
+ # src = lsp-repo;
+ # propagatedBuildInputs = with pkgs.ocamlPackages; [
+ # yojson
+ # uutf
+ # ppx_yojson_conv
+ # jsonrpc
+ # ];
+ # };
+ # ocaml-lsp = pkgs.ocamlPackages.buildDunePackage {
+ # pname = "ocaml-lsp-server";
+ # version = "1.23.0";
+ # src = lsp-repo;
+ # nativeBuildInputs = with pkgs.ocamlPackages; [merlin-lib];
+ # propagatedBuildInputs = with pkgs.ocamlPackages; [
+ # lsp
+ # jsonrpc
+ # stdune
+ # dune-build-info
+ # ocamlc-loc
+ # ocamlformat-rpc-lib
+ # dune-rpc
+ # re
+ # merlin-lib
+ # spawn
+ # chrome-trace
+ # fiber
+ # camlp-streams
+ # astring
+ # ];
+ # };
in {
devShells.default = pkgs.mkShell rec {
packages = [gemini-cli];
@@ -103,10 +179,12 @@
pkgs.opam
findlib
- ocaml-lsp
ocamlformat
+ #
+ ocaml-lsp
mlx
- ocamlmerlin-mlx
+ ocamlmerlinmlx
+ #
ocamlformat-mlx
melange-json-native
ppx_rapper
@@ -115,8 +193,8 @@
eio_main
piaf
routes
- caqti-dynload
- caqti-driver-postgresql
+ # caqti-dynload
+ # caqti-driver-postgresql
caqti-driver-sqlite3
ppx_expect
logs