mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-10 07:04:22 +00:00
Merge #7832
7832: Axe pre-commit r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
commit
9860a39603
3 changed files with 0 additions and 55 deletions
|
@ -58,8 +58,6 @@ Use `env RUN_SLOW_TESTS=1 cargo test` to run the full suite.
|
||||||
|
|
||||||
We use bors-ng to enforce the [not rocket science](https://graydon2.dreamwidth.org/1597.html) rule.
|
We use bors-ng to enforce the [not rocket science](https://graydon2.dreamwidth.org/1597.html) rule.
|
||||||
|
|
||||||
You can run `cargo xtask install-pre-commit-hook` to install git-hook to run rustfmt on commit.
|
|
||||||
|
|
||||||
# Launching rust-analyzer
|
# Launching rust-analyzer
|
||||||
|
|
||||||
Debugging the language server can be tricky.
|
Debugging the language server can be tricky.
|
||||||
|
|
|
@ -15,7 +15,6 @@ mod tidy;
|
||||||
mod install;
|
mod install;
|
||||||
mod release;
|
mod release;
|
||||||
mod dist;
|
mod dist;
|
||||||
mod pre_commit;
|
|
||||||
mod metrics;
|
mod metrics;
|
||||||
mod pre_cache;
|
mod pre_cache;
|
||||||
|
|
||||||
|
@ -39,10 +38,6 @@ use crate::{
|
||||||
};
|
};
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
if env::args().next().map(|it| it.contains("pre-commit")) == Some(true) {
|
|
||||||
return pre_commit::run_hook();
|
|
||||||
}
|
|
||||||
|
|
||||||
let _d = pushd(project_root())?;
|
let _d = pushd(project_root())?;
|
||||||
|
|
||||||
let mut args = Arguments::from_env();
|
let mut args = Arguments::from_env();
|
||||||
|
@ -103,14 +98,6 @@ FLAGS:
|
||||||
finish_args(args)?;
|
finish_args(args)?;
|
||||||
CodegenCmd { features }.run()
|
CodegenCmd { features }.run()
|
||||||
}
|
}
|
||||||
"format" => {
|
|
||||||
finish_args(args)?;
|
|
||||||
run_rustfmt(Mode::Overwrite)
|
|
||||||
}
|
|
||||||
"install-pre-commit-hook" => {
|
|
||||||
finish_args(args)?;
|
|
||||||
pre_commit::install_hook()
|
|
||||||
}
|
|
||||||
"lint" => {
|
"lint" => {
|
||||||
finish_args(args)?;
|
finish_args(args)?;
|
||||||
run_clippy()
|
run_clippy()
|
||||||
|
@ -164,8 +151,6 @@ USAGE:
|
||||||
cargo xtask <SUBCOMMAND>
|
cargo xtask <SUBCOMMAND>
|
||||||
|
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
format
|
|
||||||
install-pre-commit-hook
|
|
||||||
fuzz-tests
|
fuzz-tests
|
||||||
codegen
|
codegen
|
||||||
install
|
install
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
//! pre-commit hook for code formatting.
|
|
||||||
|
|
||||||
use std::{fs, path::PathBuf};
|
|
||||||
|
|
||||||
use anyhow::{bail, Result};
|
|
||||||
use xshell::cmd;
|
|
||||||
|
|
||||||
use crate::{project_root, run_rustfmt, Mode};
|
|
||||||
|
|
||||||
// FIXME: if there are changed `.ts` files, also reformat TypeScript (by
|
|
||||||
// shelling out to `npm fmt`).
|
|
||||||
pub(crate) fn run_hook() -> Result<()> {
|
|
||||||
run_rustfmt(Mode::Overwrite)?;
|
|
||||||
|
|
||||||
let diff = cmd!("git diff --diff-filter=MAR --name-only --cached").read()?;
|
|
||||||
|
|
||||||
let root = project_root();
|
|
||||||
for line in diff.lines() {
|
|
||||||
let file = root.join(line);
|
|
||||||
cmd!("git update-index --add {file}").run()?;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) fn install_hook() -> Result<()> {
|
|
||||||
let hook_path: PathBuf =
|
|
||||||
format!("./.git/hooks/pre-commit{}", std::env::consts::EXE_SUFFIX).into();
|
|
||||||
|
|
||||||
if hook_path.exists() {
|
|
||||||
bail!("Git hook already created");
|
|
||||||
}
|
|
||||||
|
|
||||||
let me = std::env::current_exe()?;
|
|
||||||
fs::copy(me, hook_path)?;
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
Loading…
Reference in a new issue