bootstrap: Add support for ./x setup helix

This commit is contained in:
Kajetan Puchalski 2024-09-30 22:26:22 +01:00
parent c53d4c78ad
commit dfc7e396a6
No known key found for this signature in database
GPG Key ID: 324AF44011D9FFE3
4 changed files with 13 additions and 3 deletions

View File

@ -523,6 +523,7 @@ fn install_git_hook_maybe(builder: &Builder<'_>, config: &Config) -> io::Result<
enum EditorKind {
Vscode,
Emacs,
Helix,
}
impl EditorKind {
@ -545,6 +546,9 @@ fn hashes(&self) -> Vec<&str> {
"51068d4747a13732440d1a8b8f432603badb1864fa431d83d0fd4f8fa57039e0",
"d29af4d949bbe2371eac928a3c31cf9496b1701aa1c45f11cd6c759865ad5c45",
],
EditorKind::Helix => vec![
"2d3069b8cf1b977e5d4023965eb6199597755e6c96c185ed5f2854f98b83d233"
]
}
}
@ -556,6 +560,7 @@ fn settings_short_path(&self) -> PathBuf {
self.settings_folder().join(match self {
EditorKind::Vscode => "settings.json",
EditorKind::Emacs => ".dir-locals.el",
EditorKind::Helix => "languages.toml",
})
}
@ -563,6 +568,7 @@ fn settings_folder(&self) -> PathBuf {
match self {
EditorKind::Vscode => PathBuf::new().join(".vscode"),
EditorKind::Emacs => PathBuf::new(),
EditorKind::Helix => PathBuf::new().join(".helix"),
}
}
@ -570,6 +576,7 @@ fn settings_template(&self) -> &str {
match self {
EditorKind::Vscode => include_str!("../../../../etc/rust_analyzer_settings.json"),
EditorKind::Emacs => include_str!("../../../../etc/rust_analyzer_eglot.el"),
EditorKind::Helix => include_str!("../../../../etc/rust_analyzer_helix.toml"),
}
}
@ -577,6 +584,7 @@ fn backup_extension(&self) -> &str {
match self {
EditorKind::Vscode => "json.bak",
EditorKind::Emacs => "el.bak",
EditorKind::Helix => "toml.bak",
}
}
}
@ -620,6 +628,7 @@ fn run(self, builder: &Builder<'_>) -> Self::Output {
impl_editor_support!(vscode, Vscode);
impl_editor_support!(emacs, Emacs);
impl_editor_support!(helix, Helix);
/// Create the recommended editor LSP config file for rustc development, or just print it
/// If this method should be re-called, it returns `false`.

View File

@ -1001,7 +1001,7 @@ macro_rules! describe {
run::GenerateCompletions,
),
Kind::Setup => {
describe!(setup::Profile, setup::Hook, setup::Link, setup::Vscode, setup::Emacs)
describe!(setup::Profile, setup::Hook, setup::Link, setup::Vscode, setup::Emacs, setup::Helix)
}
Kind::Clean => describe!(clean::CleanAll, clean::Rustc, clean::Std),
Kind::Vendor => describe!(vendor::Vendor),

View File

@ -451,11 +451,12 @@ pub enum Subcommand {
./x.py setup hook
./x.py setup vscode
./x.py setup emacs
./x.py setup helix
./x.py setup link", Profile::all_for_help(" ").trim_end()))]
Setup {
/// Either the profile for `config.toml` or another setup action.
/// May be omitted to set up interactively
#[arg(value_name = "<PROFILE>|hook|vscode|emacs|link")]
#[arg(value_name = "<PROFILE>|hook|vscode|emacs|helix|link")]
profile: Option<PathBuf>,
},
/// Suggest a subset of tests to run, based on modified files

View File

@ -2741,7 +2741,7 @@ _x.py() {
return 0
;;
x.py__setup)
opts="-v -i -j -h --verbose --incremental --config --build-dir --build --host --target --exclude --skip --include-default-paths --rustc-error-format --on-fail --dry-run --dump-bootstrap-shims --stage --keep-stage --keep-stage-std --src --jobs --warnings --error-format --json-output --color --bypass-bootstrap-lock --rust-profile-generate --rust-profile-use --llvm-profile-use --llvm-profile-generate --enable-bolt-settings --skip-stage0-validation --reproducible-artifact --set --help [<PROFILE>|hook|vscode|emacs|link] [PATHS]... [ARGS]..."
opts="-v -i -j -h --verbose --incremental --config --build-dir --build --host --target --exclude --skip --include-default-paths --rustc-error-format --on-fail --dry-run --dump-bootstrap-shims --stage --keep-stage --keep-stage-std --src --jobs --warnings --error-format --json-output --color --bypass-bootstrap-lock --rust-profile-generate --rust-profile-use --llvm-profile-use --llvm-profile-generate --enable-bolt-settings --skip-stage0-validation --reproducible-artifact --set --help [<PROFILE>|hook|vscode|emacs|helix|link] [PATHS]... [ARGS]..."
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0