yatli/fvim
44.4
Weak · 22 September 2026
7.2k
lines of production code
F#
primary language
6
measurements over time
What this system is
This system is a cross-platform, GUI-based implementation of the Neovim editor, built on the .NET 6 and Avalonia frameworks. It provides a modern, MVVM-structured user interface featuring a custom grid renderer, autocomplete completion menu, and crash reporting. The application supports multiple operating systems through platform-specific launchers and app bundle configurations, while also including performance profiling tools for development.
Features
Add macOS app bundle metadata and cross-platform launchers
The macOS application bundle now includes an Info.plist defining file associations for Vim, BibTeX, Haskell, MediaWiki, PostScript, Scheme, SQL, Tcl, GTD, reStructuredText, Vimball, VHDL, and Lua files, along with high-resolution display support. Additionally, new launcher scripts are introduced for Linux (fvim-linux-launcher) and macOS (fvim-osx-launcher) to handle environment variables and executable paths, while a .desktop file is added for Linux desktop integration.
lib · high confidence
Added design-time sample data for UI components
New sample data classes have been introduced for the main window, title bar, and grid components, providing mock data for design-time preview. Additionally, a new CrashReportSampleData class was added to support error reporting features.
DesignTime · medium confidence
Initial project scaffolding and configuration
The repository was initialized with essential configuration and metadata files. This includes \.vimspector.json\ for debugging setup, \App.xaml\ and \App.xaml.fs\ for the Avalonia application entry point, \GitVersion.yml\ for versioning, \NuGet.config\ for package sources, and various documentation files (\README.md\, \PACKAGING.md\, \LATENCY.md\). Additionally, build and CI/CD infrastructure was added, including \azure-pipelines.yml\ for multi-platform builds, \add\_nuget\_source.ps1\ for dependency management, and \calc\_version.ps1\ for version calculation. The project also includes resource files like \emoji.tsv\ for character support, \fsharp.svg\ for branding, and \app.manifest\ for Windows compatibility.
(repo-wide) · high confidence
New MVVM architecture for UI components
The application introduces a new Model-View-ViewModel (MVVM) architecture for the user interface. A new \ViewModelBase\ class provides the foundation for all view models, managing position, size, and rendering ticks. Specific view models have been added to handle distinct UI elements: \FrameViewModel\ manages top-level windows and background images; \GridViewModel\ handles the main editor grid, scrollbars, and extmarks; \CursorViewModel\ tracks cursor state and styling; \PopupMenuViewModel\ manages the completion menu; \CompletionItemViewModel\ represents individual completion suggestions with icons; \TitleBarViewModel\ controls the title bar state; and \CrashReportViewModel\ formats crash reports. These components collectively replace the previous rendering logic, enabling better state management and theming support.
ViewModels · high confidence
New UI components for completion list, crash reporting, cursor rendering, and window frame
Added several new view components to the Views directory: a CompletionItem user control for displaying autocomplete suggestions with icons and text; a CrashReport window for handling unexpected exits; a Cursor user control for rendering the editor cursor with animation and opacity controls; a Frame window for the main application layout including title bar and grid hosting; a Grid canvas for rendering text and popups; a PopupMenu user control for the completion list with virtualized items and styled scrollbars; a TitleBar user control for window title and minimize/maximize/close buttons; and a generic ViewBase base class to simplify ViewModel binding and render tick observation.
Views · high confidence
Behavioural changes
1 commit (0 fixes) modifying icons-icns
A change to existing behaviour in icons-icns — 1 commit, 130 files.
icons-icns · medium confidence · unverified
6 commits (0 fixes) modifying Assets
A change to existing behaviour in Assets — 6 commits, 29 files.
Assets, images · medium confidence · unverified
Added profiling data for FVim.exe
A new speedscope JSON file has been added to the profiling directory, capturing a performance trace of the FVim.exe process. This data records the call stack and timing of various components including Avalonia UI rendering, input event handling, and Neovim communication, enabling users and developers to analyze application performance and identify bottlenecks.
profiling · high confidence
Dependencies
Upgrade to .NET 6 and Avalonia 0.10.19
The application has been upgraded to target .NET 6.0, replacing the previous .NET Core 2.1/3.1/5.0 targets. Additionally, the Avalonia UI framework has been updated to version 0.10.19, and related packages like FSharp.Data and MessagePack have been upgraded to their latest compatible versions.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 47 → 44 (-2.3)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 84 → 86 (+1.4)
- Architecture 100 → 99 (-0.6)
- Maturity 45 → 45 (+0.0)
- Readiness 30 → 30 (+0.0)
- Security 67 → 50 (-16.7)
Resolved (7)
- Dependency hygiene not measured — no packages were read
- Duplicated block (7 lines × 2) (common.fs)
- Duplicated block (7 lines × 2) (def.fs)
- FileTooLong: ./wcwidth.fs (wcwidth.fs)
- No exposed public API
- TooManyMethods: def (def.fs)
- dormant codebase — no living knowledge left to concentrate
New (11)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (8 lines × 2) (common.fs)
- Duplicated block (8–11 lines × 2) (def.fs)
- End-of-life runtime: .NET net6.0
- End-of-life runtime: .NET netcoreapp3.1
- No ADRs found
- No dependency advisory monitoring
- Rotate the exposed credentials — git history can't be un-committed
- Secret: crypto-key-passphrase (profiling/FVim.exe_20210924_180242.speedscope.json)
- Secret: crypto-key-passphrase (profiling/FVim.exe_20210924_192551.speedscope.json)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
yatli/fvim was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ee4316c505072cd22ec41f62f1b3081399bf308a — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.