Repository Analysis

helix-editor/helix

A post-modern modal text editor.

1.5 Likely human-written View on GitHub
1.5
Adjusted Score
1.5
Raw Score
100%
Time Factor
2026-05-30
Last Push
44,570
Stars
Rust
Language
508,412
Lines of Code
565
Files
532
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 1HIGH 0MEDIUM 113LOW 418

Pattern Findings

532 matches across 6 categories. Click a row to expand file-level details.

Over-Commented Block416 hits · 378 pts
SeverityFileLineSnippet
LOWhelix-vcs/src/diff/line_cache.rs1//! This modules encapsulates a tiny bit of unsafe code that
LOWhelix-vcs/src/git/test.rs101/// Test that `get_diff_base` resolves symlinks so that the same diff base is
LOWhelix-loader/src/lib.rs181/// all keys in `left`'s table unioned with all keys in `right` with the values
LOWhelix-view/src/graphics.rs41 // we could split this in 2 `if`s,
LOWhelix-view/src/graphics.rs221 }
LOWhelix-view/src/graphics.rs241 Rect {
LOWhelix-view/src/graphics.rs321 }
LOWhelix-view/src/graphics.rs521/// Style let you control the main characteristics of the displayed elements.
LOWhelix-view/src/graphics.rs541/// Style::default().fg(Color::Yellow).remove_modifier(Modifier::ITALIC),
LOWhelix-view/src/graphics.rs561/// reset all properties until that point use [`Style::reset`].
LOWhelix-view/src/graphics.rs641 /// Changes the background color.
LOWhelix-view/src/graphics.rs661 /// # use helix_view::graphics::{Color, Style};
LOWhelix-view/src/graphics.rs681 pub const fn underline_style(mut self, style: UnderlineStyle) -> Style {
LOWhelix-view/src/graphics.rs701 self.sub_modifier.remove(modifier);
LOWhelix-view/src/graphics.rs721 self.add_modifier.remove(modifier);
LOWhelix-view/src/tree.rs481 // A child is not found. This could be because of either two scenarios
LOWhelix-view/src/keyboard.rs381 /// Page down key.
LOWhelix-view/src/editor.rs181pub struct FilePickerConfig {
LOWhelix-view/src/editor.rs301 /// Mouse support. Defaults to true.
LOWhelix-view/src/editor.rs321 /// Automatic auto-completion, automatically pop up without user trigger. Defaults to true.
LOWhelix-view/src/editor.rs401 /// confuse some file watching/hot reloading programs. Defaults to `true`.
LOWhelix-view/src/editor.rs1241
LOWhelix-view/src/document.rs241}
LOWhelix-view/src/document.rs261///
LOWhelix-view/src/document.rs481 // not that happened. The contents of `buf_str` is appended to
LOWhelix-view/src/document.rs621 Ok((encoding, has_bom, decoder, read))
LOWhelix-view/src/input.rs81 /// of keys can be read easily.
LOWhelix-view/src/macros.rs1//! These are macros to make getting very nested fields in the `Editor` struct easier
LOWhelix-view/src/expansion.rs1use std::borrow::Cow;
LOWhelix-view/src/expansion.rs21#[derive(Debug, Clone, Copy, PartialEq, Eq)]
LOWhelix-view/src/view.rs141 // two last modified docs which we need to manually keep track of
LOWhelix-view/src/view.rs641 // F: Fn(usize, usize),
LOWhelix-lsp-types/src/folding_range.rs61pub struct FoldingRangeCapability {
LOWhelix-lsp-types/src/folding_range.rs81 #[serde(skip_serializing_if = "Option::is_none")]
LOWhelix-lsp-types/src/folding_range.rs121 /// The zero-based character offset from where the folded range starts. If not defined, defaults to the length of th
LOWhelix-lsp-types/src/request.rs261
LOWhelix-lsp-types/src/request.rs481/// The configuration section ask for is defined by the server and doesn’t necessarily need to correspond to
LOWhelix-lsp-types/src/lsif.rs61#[serde(rename_all = "camelCase")]
LOWhelix-lsp-types/src/lsif.rs81 full_range: Range,
LOWhelix-lsp-types/src/document_diagnostic.rs121/// A diagnostic report with a full set of problems.
LOWhelix-lsp-types/src/document_diagnostic.rs181 /// diagnostics in a file B which A depends on. An example of such a language is C/C++ where
LOWhelix-lsp-types/src/document_diagnostic.rs201 ///
LOWhelix-lsp-types/src/document_diagnostic.rs241 }
LOWhelix-lsp-types/src/document_link.rs41 pub partial_result_params: PartialResultParams,
LOWhelix-lsp-types/src/color.rs101 pub partial_result_params: PartialResultParams,
LOWhelix-lsp-types/src/lib.rs221
LOWhelix-lsp-types/src/lib.rs361 /// The range at which the message applies.
LOWhelix-lsp-types/src/lib.rs381 #[serde(skip_serializing_if = "Option::is_none")]
LOWhelix-lsp-types/src/lib.rs481lsp_enum! {
LOWhelix-lsp-types/src/lib.rs521/// A textual edit applicable to a text document.
LOWhelix-lsp-types/src/lib.rs541}
LOWhelix-lsp-types/src/lib.rs561
LOWhelix-lsp-types/src/lib.rs581///
LOWhelix-lsp-types/src/lib.rs601#[derive(Debug, Eq, PartialEq, Clone, Default, Deserialize, Serialize)]
LOWhelix-lsp-types/src/lib.rs621}
LOWhelix-lsp-types/src/lib.rs641#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
LOWhelix-lsp-types/src/lib.rs661 #[serde(skip_serializing_if = "Option::is_none")]
LOWhelix-lsp-types/src/lib.rs681
LOWhelix-lsp-types/src/lib.rs701/// The edit should either provide `changes` or `documentChanges`.
LOWhelix-lsp-types/src/lib.rs721 /// If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
356 more matches not shown…
Decorative Section Separators112 hits · 366 pts
SeverityFileLineSnippet
MEDIUMruntime/themes/modus_vivendi.toml7# -------------------
MEDIUMruntime/themes/modus_vivendi.toml60# --------------
MEDIUMruntime/themes/ashen.toml2# -------------------
MEDIUMruntime/themes/ashen.toml6# -------------------
MEDIUMruntime/themes/ashen.toml13# -------------------
MEDIUMruntime/themes/ashen.toml84# --------------
MEDIUMruntime/themes/neonotte84.toml10# ---------------------------
MEDIUMruntime/themes/neonotte84.toml14# -----------------
MEDIUMruntime/themes/ataraxia.toml4# -------------------
MEDIUMruntime/themes/ataraxia.toml6# -------------------
MEDIUMruntime/themes/ataraxia.toml8# -------------------
MEDIUMruntime/themes/catppuccin_mocha.toml3# -------------------
MEDIUMruntime/themes/catppuccin_mocha.toml68# --------------
MEDIUMruntime/themes/sidra.toml9# ===========================
MEDIUMruntime/themes/sidra.toml11# ===========================
MEDIUMruntime/themes/sidra.toml93# ===========================
MEDIUMruntime/themes/sidra.toml95# ===========================
MEDIUMruntime/themes/sidra.toml161# ===========================
MEDIUMruntime/themes/sidra.toml163# ===========================
MEDIUMruntime/themes/modus_operandi.toml7# -------------------
MEDIUMruntime/themes/modus_operandi.toml60# --------------
MEDIUMruntime/themes/neonotte.toml7# -------------------
MEDIUMruntime/themes/neonotte.toml58# --------------
MEDIUMruntime/themes/sunset.toml6# ----------------------------------------------------------------
MEDIUMruntime/themes/sunset.toml56# ----------------------------------------------------------------
MEDIUMruntime/themes/sunset.toml84# ----------------------------------------------------------------
MEDIUMbook/src/guides/indent.md44// ╰───────────────────────────────────────────────╯
MEDIUMbook/src/guides/indent.md110 // ├───────────────────────╮ indent level
MEDIUMbook/src/guides/indent.md111 // @indent ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄
MEDIUMbook/src/guides/indent.md115 // ├───────────────────────┼─────┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄
MEDIUMbook/src/guides/indent.md158 # │ ╰──────╯ │ │
MEDIUMbook/src/guides/indent.md159 # ╰─────────────────────╯ │
MEDIUMbook/src/guides/indent.md198 # │ ╰──────╯ │
MEDIUMbook/src/guides/indent.md199 # ╰─────────────────────╯
MEDIUMbook/src/guides/indent.md266# │ ╰─────────────── start of map
MEDIUMbook/src/guides/indent.md267# ╰───────────────── start of list element
MEDIUMbook/src/guides/indent.md269 # ←───────────── where the cursor should go on a new line
MEDIUMbook/src/guides/indent.md37 matches!(some_hero, Hero { // ←─────────────────╮
MEDIUMbook/src/guides/indent.md40 sure: true, // │ ╰───── cursor ├─ traversal
MEDIUMbook/src/guides/indent.md41 soon: true, // ╰──────── new line inserted │ start node
MEDIUMbook/src/guides/indent.md119 })}; // ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄
MEDIUMbook/src/guides/indent.md121} //╰┼┴──────────────────────────────────────────────┴┄┄┄┄┄┄┄┄┄┄┄┄┄┄
MEDIUMbook/src/guides/indent.md168 ) # ←─────────────────────────────────────────╯
MEDIUMbook/src/guides/indent.md196 self.is_soon = soon # │ │ ←───────────────╯
MEDIUMbook/src/guides/indent.md230 #←────────── where cursor should go on new line
MEDIUMbook/src/guides/indent.md352fn aha() { // ←─────────────────────────────────────╮
MEDIUMbook/src/guides/indent.md353 let take = "on me"; // ←──────────────╮ scope: │
MEDIUMbook/src/guides/indent.md356} // ←───────────────────────────────────┴──────────┴─ "}" @outdent
MEDIUMbook/src/guides/indent.md61} // ←──────────────────────────────────────────────╯
MEDIUMhelix-tui/tests/widgets_block.rs39// "└──────┘ ",
MEDIUMhelix-tui/tests/widgets_table.rs44// "┌────────────────────────────┐",
MEDIUMhelix-tui/tests/widgets_table.rs53// "└────────────────────────────┘",
MEDIUMhelix-tui/tests/widgets_table.rs61// "┌────────────────────────────┐",
MEDIUMhelix-tui/tests/widgets_table.rs70// "└────────────────────────────┘",
MEDIUMhelix-tui/tests/widgets_table.rs78// "┌────────────────────────────┐",
MEDIUMhelix-tui/tests/widgets_table.rs87// "└────────────────────────────┘",
MEDIUMhelix-tui/tests/widgets_table.rs95// "┌────────────────────────────┐",
MEDIUMhelix-tui/tests/widgets_table.rs104// "└────────────────────────────┘",
MEDIUMhelix-tui/tests/widgets_table.rs272// "┌────────────────────────────┐",
MEDIUMhelix-tui/tests/widgets_table.rs281// "└────────────────────────────┘",
52 more matches not shown…
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippet
CRITICALhelix-term/src/handlers/completion.rs186 let handle = cx.editor.handlers.completions.request_controller.restart();
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippet
MEDIUM.cargo/config.toml6# specifying flags this way is more robust as they get merged
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippet
LOWruntime/themes/cyan_light.toml3# This theme has moved to jetbrains_cyan_light, make sure to update your configuration accordingly.
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippet
LOWhelix-tui/src/backend/termina.rs329 // Then request the current flags. We need to check if the terminal enabled