‹ Reports
The Dispatch

OSS Report: helix-editor/helix


Helix Editor Development Faces Critical Performance Issues Amidst Active Feature Expansion

Helix, a modern modal text editor inspired by Kakoune and Neovim, continues to evolve with active development focusing on performance and usability enhancements. However, recent reports of high CPU usage and lag during operations highlight significant performance challenges that need addressing.

Recent Activity

Recent issues and pull requests (PRs) suggest a dual focus on expanding features and addressing critical bugs. Notable issues include #11667, reporting excessive CPU usage even when the editor is closed, and #11057, concerning syntax highlighting problems. These indicate urgent performance-related concerns that could impact user experience negatively. Concurrently, enhancement requests like #11660 for spellchecking integration show a drive to broaden the editor's capabilities.

Development Team and Recent Contributions

  1. Skyler Hawthorne (dead10ck)

    • Commit: cargo update in Cargo.lock (+257, -444).
  2. RoloEdits

    • Commits: Fixes for Clippy warnings and command view initiation.
  3. dependabot[bot]

    • Commits: Dependency updates across libraries.
  4. viyic

    • Commit: Changed primary selection cursor color for a theme.
  5. Lennard Hofmann (Ordoviz)

    • Commit: Ignored invalid diagnostic severity in LSP.
  6. Yavorski (yavorski)

    • Commit: Added support for .cshtml file types.
  7. 0rphee

    • Commits: Updated color themes.
  8. nryz

    • Commit: Copied shell completion to Nix output.
  9. Jaakko Paju (jpaju)

    • Commit: Improved text object queries for multiple languages.
  10. Per-Gunnar Eriksson (pergeri)

    • Commit: Clarified wording in documentation.
  11. Frans Skarman (TheZoq2)

    • Commit: Added highlights for Rust builtins.

Of Note

  1. High CPU Usage Issue (#11667): A critical bug causing excessive CPU usage when Helix is not in use, demanding immediate attention.

  2. Spellchecking Integration (#11660): An enhancement proposal indicating a push towards more comprehensive language support features.

  3. Dependency Management: Frequent updates by dependabot[bot] highlight a proactive approach to maintaining security and performance.

  4. UI/UX Improvements: Several PRs focus on aesthetic enhancements, showing an emphasis on improving user interaction.

  5. Documentation Enhancements: Ongoing efforts to improve documentation reflect an understanding of its importance in user onboarding and retention.

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 21 14 33 7 1
30 Days 86 61 120 16 2
90 Days 284 198 417 51 2
1 Year 394 200 778 53 2
All Time 4441 3847 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Skyler Hawthorne 1 1/1/0 1 1 701
dependabot[bot] 2 6/5/0 6 9 387
Jaakko Paju 1 1/1/0 1 11 79
Frans Skarman 1 0/0/0 1 1 49
Pascal Kuthe 1 0/0/0 1 4 36
Lennard Hofmann 1 1/1/0 1 1 15
0rphee 1 1/2/0 2 3 8
RoloEdits 1 3/3/0 3 3 7
Per-Gunnar 1 1/1/0 1 1 4
viyic 1 1/1/0 1 1 3
nryz 1 1/1/0 1 1 2
Yavorski 1 1/1/0 1 1 2
Michael Davis (the-mikedavis) 1 2/0/0 1 1 2
Deleted user (ghost) 0 0/0/1 0 0 0
Rob Duarte (rahji) 0 0/0/1 0 0 0
James Munger (bajuba) 0 1/0/0 0 0 0
None (chtenb) 0 2/0/0 0 0 0
Heath Stewart (heaths) 0 1/0/0 0 0 0
Max (mkorje) 0 1/0/0 0 0 0
Nicolas Karolak (nikaro) 0 2/0/1 0 0 0
ves (vesdev) 0 1/0/0 0 0 0
Eamon Caton (ETCaton) 0 1/0/0 0 0 0
Vulpesx (Vulpesx) 0 1/0/0 0 0 0
Eve (eve2023) 0 1/0/1 0 0 0
Louis FANCELLI (fonskip) 0 1/0/0 0 0 0
Hugo (hugoake) 0 1/0/0 0 0 0
sunshine (armonjam) 0 1/0/0 0 0 0
Jesús González (jesusmgg) 0 1/0/0 0 0 0
eh (EricHenry) 0 1/0/0 0 0 0
Milo Moisson (mrnossiom) 0 1/0/1 0 0 0
Oren Mittman (nihil2501) 0 1/0/0 0 0 0
Nils Tonnätt (ntonnaett) 0 1/0/0 0 0 0
sergiu128 (sergiu128) 0 1/0/1 0 0 0
David Else (David-Else) 0 1/0/0 0 0 0
Fabian (fabian1409) 0 1/0/0 0 0 0
Jon Wallace (jonmon6691) 0 1/0/0 0 0 0
None (offsetcyan) 0 1/0/0 0 0 0
None (cedricbuild) 0 1/0/0 0 0 0
David Crespo (david-crespo) 0 1/0/0 0 0 0
Poliorcetics (poliorcetics) 0 1/0/0 0 0 0
Tim (sarsapar1lla) 0 1/0/0 0 0 0
None (TheZombie1999) 0 1/0/0 0 0 0
None (TiredTumblrina) 0 1/0/0 0 0 0
Pontus Laestadius (pontuslaestadius) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Helix editor repository has seen significant recent activity, with 594 open issues currently logged. Notably, several issues highlight performance concerns, particularly with CPU usage and lag during operations. A common theme among recent issues is the integration of new features and enhancements, such as spellchecking and language server support, which may introduce complexity and potential bugs.

Several issues indicate critical bugs that could affect user experience, such as high CPU usage when the editor is not in use (#11667), and problems with syntax highlighting in specific contexts (#11057). The presence of multiple enhancement requests also suggests a growing interest in expanding the editor's capabilities, particularly regarding language support and usability improvements.

Issue Details

Recently Created Issues

  1. #11670: shell_replace_with_output action

    • Priority: Normal
    • Status: Open
    • Created: 0 days ago
    • Description: Proposal for a new feature to replace selections with shell command output directly.
  2. #11667: 100% CPU usage when helix shouldn't even be open

    • Priority: High
    • Status: Open
    • Created: 1 day ago
    • Description: Report of excessive CPU usage after exiting the editor, affecting system performance.
  3. #11666: comment-tokens in languages.toml clashes with comment-token

    • Priority: Normal
    • Status: Open
    • Created: 1 day ago
    • Description: Conflict in configuration leading to parsing errors due to duplicate fields.
  4. #11660: Spellchecking integration

    • Priority: Enhancement
    • Status: Open
    • Created: 2 days ago
    • Description: Discussion on integrating a spellchecking library into Helix.
  5. #11656: Textobject selection doesn't expand from cursor position when it's on a bracket

    • Priority: Bug
    • Status: Open
    • Created: 2 days ago
    • Description: Issue with text selection behavior when cursor is positioned on brackets.

Recently Updated Issues

  1. #11592: Document the different diagnostic levels

    • Priority: Documentation
    • Status: Open
    • Last Updated: 9 days ago
    • Description: Request for clearer documentation regarding diagnostic levels in the editor.
  2. #11591: Invalid key code 'diagnostics' when trying to set end-of-line-diagnostics

    • Priority: Documentation
    • Status: Open
    • Last Updated: 9 days ago
    • Description: Error encountered while configuring diagnostics settings in the config file.
  3. #11571: certain indentations break the "formatting" in Odin

    • Priority: Bug
    • Status: Open
    • Last Updated: 14 days ago
    • Description: Formatting issues related to indentation styles in the Odin programming language.
  4. #11520: Weird syntax highlight issue with Odin language map[string]bool

    • Priority: Bug
    • Status: Open
    • Last Updated: 20 days ago
    • Description: Syntax highlighting inconsistencies observed in the Odin language.
  5. #11458: CTRL+c causes Helix to crash after Nushell LSP crashes

    • Priority: Bug
    • Status: Open
    • Last Updated: 28 days ago
    • Description: Crash reported when attempting to use CTRL+C after an LSP crash.

Summary of Observations

  • The recent activity indicates a mix of enhancement requests and critical bug reports, particularly concerning performance and usability.
  • There are ongoing discussions around integrating new features like spellchecking and improving existing functionalities.
  • The community appears engaged, with multiple contributors actively participating in discussions and issue resolutions.
  • Performance-related issues, especially those affecting CPU usage and lag during operations, are a priority for resolution to enhance user experience.

Report On: Fetch pull requests



Report on Pull Requests

Overview

The Helix Editor repository has a total of 263 open pull requests, showcasing a diverse range of contributions and ongoing development efforts. The pull requests span various topics, including dependency updates, feature enhancements, bug fixes, and documentation improvements.

Summary of Pull Requests

  1. PR #11669: build(deps): bump the rust-dependencies group with 4 updates

    • State: Open
    • Significance: Updates four Rust dependencies, ensuring the project remains up-to-date with the latest improvements and bug fixes from libraries like globset, ignore, grep-regex, and grep-searcher.
  2. PR #11665: Update README.md

    • State: Open
    • Significance: Enhances the readability of the README file, clarifying the description of the editor's capabilities.
  3. PR #11663: Improve tree-sitter-subtree

    • State: Open
    • Significance: Improves visibility of unnamed nodes in the subtree view, aiding debugging efforts related to tree-sitter trees.
  4. PR #11662: [Documentation] Add undocumented keybindings to book

    • State: Open
    • Significance: Expands documentation by adding previously undocumented keybindings, enhancing user experience and accessibility.
  5. PR #11649: Stylize horizon-dark picker v2 columns

    • State: Open
    • Significance: Aesthetic improvements to the UI of the horizon-dark theme, enhancing user interaction with visual elements.
  6. PR #11636: Add vale language server

    • State: Open
    • Significance: Introduces support for the Vale language server, providing better spelling and grammar checking capabilities compared to existing options.
  7. PR #11630: chore: add ruff and jedi lsp servers

    • State: Open
    • Significance: Adds support for two Python language servers, enhancing Python development capabilities within Helix.
  8. PR #11627: Add validation of bundled themes in build workflow

    • State: Open
    • Significance: Implements a validation step in CI to ensure that bundled themes do not introduce errors during builds.
  9. PR #11620: Update picker headers styling in Darcula themes

    • State: Open
    • Significance: Improves visual consistency in theme styling for picker headers in Darcula themes.
  10. PR #11618: Improvement to search ordering for :open

    • State: Open
    • Significance: Enhances the usability of the :open command by implementing input prefix match-based ordering.

Analysis of Pull Requests

Themes and Commonalities

The recent pull requests indicate a strong focus on improving user experience through both aesthetic enhancements and functional improvements. Notably, there is a consistent effort to refine documentation and clarify usage instructions, as seen in PRs like #11665 and #11662. This suggests that contributors are keenly aware of the importance of usability and accessibility for new users.

Dependency Management

Several pull requests (#11669, #11540) are dedicated to updating dependencies, which is crucial for maintaining security and performance standards within the project. The reliance on tools like Dependabot for automated dependency management demonstrates a proactive approach to keeping the codebase modernized without introducing breaking changes.

Language Support Expansion

The addition of new language servers (#11636, #11630) reflects an ongoing commitment to expanding Helix's capabilities across various programming languages. This trend aligns with community feedback regarding support for more languages and tools, indicating that contributors are responsive to user needs.

UI/UX Improvements

Multiple pull requests focus on UI enhancements (e.g., PRs #11649, #11620). These changes aim to improve visual clarity and user interaction within the editor. Such efforts are essential for retaining users who may be transitioning from other editors with established UI paradigms.

Documentation Enhancements

The emphasis on improving documentation (e.g., PRs #11662, #11665) highlights a recognition that clear guidance is vital for user onboarding and retention. Contributors are actively working to ensure that users can easily understand how to leverage Helix's features effectively.

Anomalies and Concerns

While the volume of open pull requests indicates active development, it also raises concerns about potential bottlenecks in review processes or merging activities. Some older pull requests have not seen recent activity, which could lead to fragmentation if contributors lose interest or shift focus elsewhere.

Additionally, there are instances where discussions around certain features (e.g., PRs related to LSP support) reveal differing opinions among contributors regarding implementation strategies or default settings. This divergence could lead to conflicts if not managed through clear communication and consensus-building practices within the community.

Conclusion

Overall, the current state of pull requests in the Helix Editor repository reflects a vibrant community dedicated to continuous improvement. The focus on user experience enhancements, robust language support, and thorough documentation positions Helix as a competitive option among modern text editors. However, attention should be given to managing review processes effectively to maintain momentum and contributor engagement moving forward.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Recent Contributions

  1. Skyler Hawthorne (dead10ck)

    • Recent Activity:
    • 1 commit in the last 30 days, focusing on a cargo update which involved changes to Cargo.lock (+257, -444).
    • Collaborations: None noted.
  2. RoloEdits

    • Recent Activity:
    • 3 commits addressing various issues including fixes for Clippy warnings and ensuring view initiation for commands.
    • Collaborations: Worked with other contributors on multiple PRs.
  3. dependabot[bot]

    • Recent Activity:
    • 6 commits focused on dependency updates across various libraries.
    • Collaborations: Co-authored several updates with other contributors.
  4. viyic

    • Recent Activity:
    • 1 commit changing the primary selection cursor color for a theme.
    • Collaborations: None noted.
  5. Lennard Hofmann (Ordoviz)

    • Recent Activity:
    • 1 commit to gracefully ignore invalid diagnostic severity in LSP.
    • Collaborations: None noted.
  6. Yavorski (yavorski)

    • Recent Activity:
    • 1 commit adding support for .cshtml file types.
    • Collaborations: None noted.
  7. 0rphee

    • Recent Activity:
    • 2 commits updating color themes.
    • Collaborations: Co-authored one of the updates.
  8. nryz

    • Recent Activity:
    • 1 commit copying shell completion to Nix output.
    • Collaborations: None noted.
  9. Jaakko Paju (jpaju)

    • Recent Activity:
    • 1 commit adding/improving text object queries for multiple languages.
    • Collaborations: None noted.
  10. Per-Gunnar Eriksson (pergeri)

    • Recent Activity:
    • 1 commit clarifying wording in documentation.
    • Collaborations: Co-authored with another contributor.
  11. Frans Skarman (TheZoq2)

    • Recent Activity:
    • 1 commit adding highlights for Rust builtins.
    • Collaborations: None noted.

Patterns and Themes

  • Dependency Management: A significant number of recent commits are related to dependency updates, primarily by dependabot[bot]. This indicates a proactive approach to maintaining up-to-date libraries, which is crucial for security and performance.

  • Feature Enhancements: Several contributors are focused on enhancing the editor's capabilities, such as adding support for new file types and improving language server interactions, reflecting ongoing development aimed at expanding functionality.

  • Collaborative Efforts: Many contributions involve collaboration among team members, particularly in addressing issues and implementing features, suggesting a cohesive team dynamic.

  • Theming and UI Improvements: There is a noticeable focus on theming and user interface enhancements, indicating an effort to improve user experience visually and functionally.

Conclusion

The development team is actively engaged in maintaining and enhancing the Helix editor, with a balanced focus on dependency management, feature expansion, and user interface improvements. The collaborative nature of recent contributions suggests a strong team dynamic that is conducive to ongoing project success.