1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 rustPlatform,
6 cargo,
7 rustc,
8 setuptools,
9 tree-sitter,
10 pytestCheckHook,
11}:
12
13buildPythonPackage rec {
14 pname = "tree-sitter-embedded-template";
15 version = "0.25.0";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "tree-sitter";
20 repo = "tree-sitter-embedded-template";
21 tag = "v${version}";
22 hash = "sha256-nBQain0Lc21jOgQFfvkyq615ZmT8qdMxtqIoUcOcO3A=";
23 };
24
25 cargoDeps = rustPlatform.fetchCargoVendor {
26 inherit src;
27 hash = "sha256-C+P/fALEmRDrX59diXS/cdzffvJyn0qnCUD5nFsW+ww=";
28 };
29
30 build-system = [
31 cargo
32 rustPlatform.cargoSetupHook
33 rustc
34 setuptools
35 ];
36
37 optional-dependencies = {
38 core = [
39 tree-sitter
40 ];
41 };
42
43 pythonImportsCheck = [ "tree_sitter_embedded_template" ];
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 tree-sitter
48 ];
49
50 meta = {
51 description = "Tree-sitter grammar for embedded template languages like ERB, EJS";
52 homepage = "https://github.com/tree-sitter/tree-sitter-embedded-template";
53 license = lib.licenses.mit;
54 maintainers = with lib.maintainers; [ yzx9 ];
55 };
56}