mirror of https://github.com/helix-editor/helix
feat: Remove `:tree-sitter-injections`
This would fit in a different PR.pull/12759/head
parent
76fb79e4c1
commit
d6d7a3c9e2
|
@ -2801,6 +2801,7 @@ checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076"
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tree-house"
|
name = "tree-house"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/nik-rev/tree-house?rev=a6c231c7f935eed9015ae7ef500dc99e4fa15c93#a6c231c7f935eed9015ae7ef500dc99e4fa15c93"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arc-swap",
|
"arc-swap",
|
||||||
"hashbrown 0.15.2",
|
"hashbrown 0.15.2",
|
||||||
|
@ -2816,6 +2817,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tree-house-bindings"
|
name = "tree-house-bindings"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/nik-rev/tree-house?rev=a6c231c7f935eed9015ae7ef500dc99e4fa15c93#a6c231c7f935eed9015ae7ef500dc99e4fa15c93"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"libloading",
|
"libloading",
|
||||||
|
|
|
@ -56,7 +56,6 @@
|
||||||
| `:lsp-stop` | Stops the given language servers, or all language servers that are used by the current file if no arguments are supplied |
|
| `:lsp-stop` | Stops the given language servers, or all language servers that are used by the current file if no arguments are supplied |
|
||||||
| `:tree-sitter-scopes` | Display tree sitter scopes, primarily for theming and development. |
|
| `:tree-sitter-scopes` | Display tree sitter scopes, primarily for theming and development. |
|
||||||
| `:tree-sitter-highlight-name` | Display name of tree-sitter highlight scope under the cursor. |
|
| `:tree-sitter-highlight-name` | Display name of tree-sitter highlight scope under the cursor. |
|
||||||
| `:tree-sitter-injections` | Display injected languages for the file. |
|
|
||||||
| `:debug-start`, `:dbg` | Start a debug session from a given template with given parameters. |
|
| `:debug-start`, `:dbg` | Start a debug session from a given template with given parameters. |
|
||||||
| `:debug-remote`, `:dbg-tcp` | Connect to a debug adapter by TCP address and start a debugging session from a given template with given parameters. |
|
| `:debug-remote`, `:dbg-tcp` | Connect to a debug adapter by TCP address and start a debugging session from a given template with given parameters. |
|
||||||
| `:debug-eval` | Evaluate expression in current debug context. |
|
| `:debug-eval` | Evaluate expression in current debug context. |
|
||||||
|
|
|
@ -1667,106 +1667,6 @@ fn tree_sitter_scopes(
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn tree_sitter_injections(
|
|
||||||
_cx: &mut compositor::Context,
|
|
||||||
_args: Args,
|
|
||||||
_event: PromptEvent,
|
|
||||||
) -> anyhow::Result<()> {
|
|
||||||
unimplemented!()
|
|
||||||
// if event != PromptEvent::Validate {
|
|
||||||
// return Ok(());
|
|
||||||
// }
|
|
||||||
|
|
||||||
// let doc = doc!(cx.editor);
|
|
||||||
|
|
||||||
// let syntax = doc
|
|
||||||
// .syntax()
|
|
||||||
// .context("No tree-sitter grammar found for this file.")?;
|
|
||||||
|
|
||||||
// let mut ranges = vec![];
|
|
||||||
|
|
||||||
// for (language_id, layer) in syntax.layers() {
|
|
||||||
// let language_name = &syntax.layer_config(language_id).language_name;
|
|
||||||
// for range in &layer.ranges {
|
|
||||||
// ranges.push((range, language_name.clone()));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ranges.sort_unstable_by(|(range_a, _), (range_b, _)| {
|
|
||||||
// range_a
|
|
||||||
// .start_byte
|
|
||||||
// .cmp(&range_b.start_byte)
|
|
||||||
// .then(range_a.end_byte.cmp(&range_b.end_byte))
|
|
||||||
// });
|
|
||||||
|
|
||||||
// let char_count = doc.text().len_chars();
|
|
||||||
|
|
||||||
// let mut contents = String::new();
|
|
||||||
|
|
||||||
// let mut stack = Vec::new();
|
|
||||||
|
|
||||||
// let mut ranges = ranges.iter().peekable();
|
|
||||||
|
|
||||||
// while let Some((range, language_name)) = ranges.next() {
|
|
||||||
// while let Some((prev_start, prev_end)) = stack.last() {
|
|
||||||
// let is_contained = range.end_byte < *prev_end && range.start_byte > *prev_start;
|
|
||||||
// if is_contained {
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// stack.pop();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// let language_range = if range.end_byte < char_count {
|
|
||||||
// format!("[{}, {}]", range.start_byte, range.end_byte)
|
|
||||||
// } else {
|
|
||||||
// format!("[0, {}]", char_count)
|
|
||||||
// };
|
|
||||||
|
|
||||||
// let indent = stack.len() * 4;
|
|
||||||
// let indent = format!("{:indent$}", "");
|
|
||||||
|
|
||||||
// let next_is_contained = ranges.peek().as_ref().is_some_and(|(next, _)| {
|
|
||||||
// range.end_byte > next.end_byte && range.start_byte < next.start_byte
|
|
||||||
// });
|
|
||||||
|
|
||||||
// let children = if next_is_contained {
|
|
||||||
// format!("\n{indent} injections:")
|
|
||||||
// } else {
|
|
||||||
// "".into()
|
|
||||||
// };
|
|
||||||
|
|
||||||
// let dash = if !indent.is_empty() {
|
|
||||||
// format!("{}- ", &indent)
|
|
||||||
// } else {
|
|
||||||
// "- ".into()
|
|
||||||
// };
|
|
||||||
|
|
||||||
// writeln!(
|
|
||||||
// contents,
|
|
||||||
// "{dash}language: {language_name}
|
|
||||||
// {indent} range: {language_range}{children}",
|
|
||||||
// )?;
|
|
||||||
|
|
||||||
// stack.push((range.start_byte, range.end_byte));
|
|
||||||
// }
|
|
||||||
|
|
||||||
// let callback = async move {
|
|
||||||
// let call: job::Callback = Callback::EditorCompositor(Box::new(
|
|
||||||
// move |editor: &mut Editor, compositor: &mut Compositor| {
|
|
||||||
// let contents =
|
|
||||||
// ui::Markdown::new(format!("```yaml\n{contents}```"), editor.syn_loader.clone());
|
|
||||||
// let popup = Popup::new("hover", contents).auto_close(true);
|
|
||||||
// compositor.replace_or_push("hover", popup);
|
|
||||||
// },
|
|
||||||
// ));
|
|
||||||
// Ok(call)
|
|
||||||
// };
|
|
||||||
|
|
||||||
// cx.jobs.callback(callback);
|
|
||||||
|
|
||||||
// Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn tree_sitter_highlight_name(
|
fn tree_sitter_highlight_name(
|
||||||
cx: &mut compositor::Context,
|
cx: &mut compositor::Context,
|
||||||
_args: Args,
|
_args: Args,
|
||||||
|
@ -3302,17 +3202,6 @@ pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
|
||||||
..Signature::DEFAULT
|
..Signature::DEFAULT
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
TypableCommand {
|
|
||||||
name: "tree-sitter-injections",
|
|
||||||
aliases: &[],
|
|
||||||
doc: "Display injected languages for the file.",
|
|
||||||
fun: tree_sitter_injections,
|
|
||||||
completer: CommandCompleter::none(),
|
|
||||||
signature: Signature {
|
|
||||||
positionals: (0, Some(0)),
|
|
||||||
..Signature::DEFAULT
|
|
||||||
},
|
|
||||||
},
|
|
||||||
TypableCommand {
|
TypableCommand {
|
||||||
name: "debug-start",
|
name: "debug-start",
|
||||||
aliases: &["dbg"],
|
aliases: &["dbg"],
|
||||||
|
|
Loading…
Reference in New Issue