mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 01:16:18 +04:00
fetch and compile tree-sitter grammars in helix-term build
This restores much of the behavior that existed before this PR: helix will build the grammars when compiling. The difference is that now fetching is also done during the build phase and is done much more quickly - both shallow and in parallel.
This commit is contained in:
parent
6fcab90d16
commit
b157c5a8a4
21
.github/workflows/build.yml
vendored
21
.github/workflows/build.yml
vendored
@ -77,27 +77,14 @@ jobs:
|
|||||||
path: target
|
path: target
|
||||||
key: ${{ runner.os }}-v2-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
key: ${{ runner.os }}-v2-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
|
||||||
|
- name: Copy minimal languages config
|
||||||
|
run: cp .github/workflows/languages.toml ./languages.toml
|
||||||
|
|
||||||
- name: Cache test tree-sitter grammar
|
- name: Cache test tree-sitter grammar
|
||||||
uses: actions/cache@v2.1.7
|
uses: actions/cache@v2.1.7
|
||||||
with:
|
with:
|
||||||
path: runtime/grammars
|
path: runtime/grammars
|
||||||
key: ${{ runner.os }}-v2-tree-sitter-grammars-${{ hashFiles('**/Cargo.lock') }}
|
key: ${{ runner.os }}-v2-tree-sitter-grammars-${{ hashFiles('languages.toml') }}
|
||||||
|
|
||||||
- run: cp .github/workflows/languages.toml ./languages.toml
|
|
||||||
|
|
||||||
- name: Download test tree-sitter grammar
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
use-cross: ${{ matrix.cross }}
|
|
||||||
command: run
|
|
||||||
args: -- --fetch-grammars
|
|
||||||
|
|
||||||
- name: Build test tree-sitter grammar
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
use-cross: ${{ matrix.cross }}
|
|
||||||
command: run
|
|
||||||
args: -- --build-grammars
|
|
||||||
|
|
||||||
- name: Run cargo test
|
- name: Run cargo test
|
||||||
uses: actions-rs/cargo@v1
|
uses: actions-rs/cargo@v1
|
||||||
|
14
.github/workflows/release.yml
vendored
14
.github/workflows/release.yml
vendored
@ -62,20 +62,6 @@ jobs:
|
|||||||
target: ${{ matrix.target }}
|
target: ${{ matrix.target }}
|
||||||
override: true
|
override: true
|
||||||
|
|
||||||
- name: Fetch tree-sitter grammars
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
use-cross: ${{ matrix.cross }}
|
|
||||||
command: run
|
|
||||||
args: --release --locked --target ${{ matrix.target }} -- --fetch-grammars
|
|
||||||
|
|
||||||
- name: Build tree-sitter grammars
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
use-cross: ${{ matrix.cross }}
|
|
||||||
command: run
|
|
||||||
args: --release --locked --target ${{ matrix.target }} -- --build-grammars
|
|
||||||
|
|
||||||
- name: Run cargo test
|
- name: Run cargo test
|
||||||
uses: actions-rs/cargo@v1
|
uses: actions-rs/cargo@v1
|
||||||
with:
|
with:
|
||||||
|
@ -35,6 +35,8 @@
|
|||||||
overrides = {
|
overrides = {
|
||||||
crateOverrides = common: _: rec {
|
crateOverrides = common: _: rec {
|
||||||
helix-term = prev: {
|
helix-term = prev: {
|
||||||
|
# disable fetching and building of tree-sitter grammars in the helix-term build.rs
|
||||||
|
HELIX_DISABLE_AUTO_GRAMMAR_BUILD = "1";
|
||||||
buildInputs = (prev.buildInputs or [ ]) ++ [ common.cCompiler.cc.lib ];
|
buildInputs = (prev.buildInputs or [ ]) ++ [ common.cCompiler.cc.lib ];
|
||||||
nativeBuildInputs = (prev.nativeBuildInputs or [ ]) ++ [ common.pkgs.makeWrapper ];
|
nativeBuildInputs = (prev.nativeBuildInputs or [ ]) ++ [ common.pkgs.makeWrapper ];
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
@ -67,9 +67,8 @@ grep-searcher = "0.1.8"
|
|||||||
# Remove once retain_mut lands in stable rust
|
# Remove once retain_mut lands in stable rust
|
||||||
retain_mut = "0.1.7"
|
retain_mut = "0.1.7"
|
||||||
|
|
||||||
# compiling grammars
|
|
||||||
cc = { version = "1" }
|
|
||||||
threadpool = { version = "1.0" }
|
|
||||||
|
|
||||||
[target.'cfg(not(windows))'.dependencies] # https://github.com/vorner/signal-hook/issues/100
|
[target.'cfg(not(windows))'.dependencies] # https://github.com/vorner/signal-hook/issues/100
|
||||||
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"] }
|
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"] }
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
helix-loader = { version = "0.6", path = "../helix-loader" }
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
use helix_loader::grammar::{build_grammars, fetch_grammars};
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
|
|
||||||
@ -14,5 +15,12 @@ fn main() {
|
|||||||
None => env!("CARGO_PKG_VERSION").into(),
|
None => env!("CARGO_PKG_VERSION").into(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if std::env::var("HELIX_DISABLE_AUTO_GRAMMAR_BUILD").is_err() {
|
||||||
|
fetch_grammars().expect("Failed to fetch tree-sitter grammars");
|
||||||
|
build_grammars().expect("Failed to compile tree-sitter grammars");
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("cargo:rerun-if-changed=../runtime/grammars/");
|
||||||
|
|
||||||
println!("cargo:rustc-env=VERSION_AND_GIT_HASH={}", version);
|
println!("cargo:rustc-env=VERSION_AND_GIT_HASH={}", version);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user