summary refs log tree commit diff
path: root/pkgs/development/tools/misc/texlab
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/misc/texlab')
-rw-r--r--pkgs/development/tools/misc/texlab/citeproc/package.json31
-rwxr-xr-xpkgs/development/tools/misc/texlab/citeproc/update-package.json.sh14
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix39
3 files changed, 84 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/texlab/citeproc/package.json b/pkgs/development/tools/misc/texlab/citeproc/package.json
new file mode 100644
index 00000000000..87e7ccc1c92
--- /dev/null
+++ b/pkgs/development/tools/misc/texlab/citeproc/package.json
@@ -0,0 +1,31 @@
+{
+  "name": "citeproc",
+  "version": "0.1.0",
+  "description": "Render BibTeX citations",
+  "repository": "https://github.com/latex-lsp/citeproc.git",
+  "author": "Eric Förster <efoerster@users.noreply.github.com>",
+  "license": "MIT",
+  "scripts": {
+    "dist": "webpack",
+    "format": "prettier --write \"src/**/*.{js,json}\" \"*.{js,json,yml,md}\" \".vscode/**/*.{json}\""
+  },
+  "dependencies": {
+    "@babel/core": "^7.5.5",
+    "@babel/preset-env": "^7.5.5",
+    "@citation-js/core": "^0.4.8",
+    "@citation-js/plugin-bibtex": "^0.4.8",
+    "@citation-js/plugin-csl": "^0.4.8",
+    "@types/node": "^11.13.17",
+    "@types/webpack": "^4.4.35",
+    "babel-loader": "^8.0.6",
+    "babel-polyfill": "^6.26.0",
+    "null-loader": "^0.1.1",
+    "prettier": "^1.18.2",
+    "ts-loader": "^5.4.5",
+    "ts-node": "^8.3.0",
+    "tslint": "^5.18.0",
+    "tslint-config-prettier": "^1.15.0",
+    "webpack": "^4.35.3",
+    "webpack-cli": "^3.3.6"
+  }
+}
diff --git a/pkgs/development/tools/misc/texlab/citeproc/update-package.json.sh b/pkgs/development/tools/misc/texlab/citeproc/update-package.json.sh
new file mode 100755
index 00000000000..b57e48e10bc
--- /dev/null
+++ b/pkgs/development/tools/misc/texlab/citeproc/update-package.json.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p jq
+
+set -eu -o pipefail
+
+if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
+	echo "Usage: $0 <git release tag>"
+	exit 1
+fi
+
+TEXLAB_WEB_SRC="https://raw.githubusercontent.com/latex-lsp/texlab/$1"
+
+curl --silent "$TEXLAB_WEB_SRC/src/citeproc/js/package.json" | \
+	jq '. + {"dependencies": .devDependencies} | del(.devDependencies)' > package.json
diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
new file mode 100644
index 00000000000..e11c288c1e9
--- /dev/null
+++ b/pkgs/development/tools/misc/texlab/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, nodejs
+, Security
+, texlab-citeproc-build-deps
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "texlab";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "latex-lsp";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0b9lw6cmh7gyzj0pb3ghvqc3q7lzl12bfg9pjhl31lib3mmga8yb";
+  };
+
+  cargoSha256 = "0qnysl0ayc242dgvanqgmx8v4a2cjg0f1lhbyw16qjv61qcsx8y5";
+
+  nativeBuildInputs = [ nodejs ];
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  preBuild = ''
+    rm build.rs
+    ln -s ${texlab-citeproc-build-deps}/lib/node_modules/citeproc/node_modules src/citeproc/js
+    (cd src/citeproc/js && npm run dist)
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An implementation of the Language Server Protocol for LaTeX";
+    homepage = https://texlab.netlify.com/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar metadark ];
+    platforms = platforms.all;
+  };
+}