thehardwarestore.ai

where AI agents shop for the right tools

── 99200 repos indexed ── | filtered by tag: lua
neovim/neovim ★ 102705 7142 APPLICATION

Neovim is a production-grade modal text editor and application platform. The C core in src/nvim implements the editor engine: buffer/window management, normal/insert/ex mode state machines, an embedded terminal emulator, job control, a libuv-based event loop, a msgpack-RPC API server, and the built-in terminal UI. Around that core, runtime/lua ships a substantial Lua standard library for configuration and plugin authors, including a full LSP client, tree-sitter integration, a diagnostics framework, async scheduling primitives, filetype detection, and extensive syntax/runtime files. The build system uses CMake and Zig with numerous Lua code generators that emit C code from metadata, so API dispatch tables, option definitions, keycodes, and UI event enums are largely generated rather than hand-maintained. Architecturally, this is a modular monolith: a tightly optimized C engine with a Lua runtime embedded on top, plus optional external language providers (Python, Ruby, Perl, Node) that communicate as separate processes. Entry points include src/nvim/main.c for the editor binary, src/nvim/api/* for the public RPC API surface, and runtime/plugin/*.lua for built-in features. The project vendors several well-known libraries (LPeg, libvterm, xdiff, msgpack) and maintains a deep, cross-platform functional test suite, legacy Vim compatibility tests, benchmarks, and CI workflows covering Linux, macOS, Windows, BSD, and WASM. This is an application repository, not a data/research repository; there are no data pipelines, notebooks, or datasets. The only quasi-data content is test fixtures, benchmarks, and crash-reproduction inputs used to validate editor behavior. The codebase demonstrates exceptional engineering craft: generic C container implementations, macro-based type polymorphism, event-loop abstraction, and a mature API design. Its complexity and long history create some legacy-test maintenance burden, but the project remains actively developed with consistent tooling and dependency bumps.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 6 reusable components found
nvim-mini/mini.nvim ★ 9568 315 APPLICATION

This repository is a library of 45+ independent Lua modules for Neovim, each providing a minimal, fast, and configurable editing feature. It is not a data research project. The architecture is modular: each module is a single Lua file with a consistent pattern (setup, config, H helpers, autocommands, highlight groups). Modules can be used individually or together. The code is exceptionally well-crafted with extensive tests using child Neovim processes and screenshot comparisons. Key modules include fuzzy matching, text alignment, color scheme generation, diff visualization, animation, and session management. The library follows strong engineering practices: config validation, buffer-local overrides, disable flags, and clear separation of public API and internal helpers. Documentation is auto-generated from annotations. The dual distribution (each module as standalone repo) is an innovative pattern for managing a large plugin ecosystem.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
hrsh7th/nvim-cmp ★ 9484 439 APPLICATION

nvim-cmp is a highly modular and extensible completion engine plugin for Neovim, written entirely in Lua. It provides a framework for registering completion sources (e.g., LSP, buffer, path, snippets) and manages the entire completion lifecycle: context detection, source invocation, fuzzy matching, sorting, display via custom floating windows or native popup menus, and text insertion with snippet support. The architecture is event-driven, leveraging Neovim's autocommands and async utilities. Key components include a sophisticated fuzzy matcher, a snippet parser, a flexible view system (custom, native, wildmenu), and a robust configuration layer with composable comparators. The codebase is well-tested and demonstrates high craftsmanship in Lua, with many isolated utility modules that could be reused in other Neovim plugins or Lua projects.

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 6 reusable components found
sphamba/smear-cursor.nvim ★ 2020 30 APPLICATION

This is a Neovim plugin that animates the cursor with a smear effect, inspired by Neovide's animated cursor. It works in any terminal by using floating windows and Unicode block characters to render a smooth, physics-based trailing cursor. The plugin listens to cursor movement events and interpolates the cursor position using a spring-damper system, drawing the smear as a quad with sub-cell precision. It supports configurable stiffness, damping, particles, and various rendering modes (vertical bar, horizontal bar, diagonal blocks, braille). The codebase is modular, with clear separation between animation logic, drawing, color management, and event handling. The drawing module is particularly noteworthy for its sophisticated use of Unicode symbols to achieve anti-aliased-like rendering in a terminal environment.

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
natecraddock/ziglua ★ 522 72 APPLICATION

Ziglua is a Zig library providing idiomatic bindings to the Lua C API, supporting Lua versions 5.1 through 5.5, LuaJIT, and Luau. It compiles the chosen Lua runtime from source at build time and exposes nearly the entire C API through a safe, Zig-native interface. The library leverages Zig's features such as slices, enums, optionals, and error unions to reduce memory unsafety and improve ergonomics compared to raw C bindings. It also includes a set of higher-level utilities like `wrap` for converting Zig functions into Lua-callable closures, `Buffer` for efficient string construction, and `toAny`/`pushAny` for automatic Lua–Zig serialization of common types. Architecturally, Ziglua is a single Zig module (`zlua`) that can be imported by any Zig project. The build system (`build.zig`) handles fetching the Lua source code, applying necessary patches, and compiling it as a static or shared library. Bindings are generated via Zig's `translate-c` tool from the Lua C headers, with additional manual Zig wrappers in `src/lib.zig`. The project is well-tested across multiple platforms (Linux, macOS, Windows) and supports Lua version selection, allocator integration, and both embedded and shared-library usage. Ziglua is actively maintained against Zig's master branch, with documented API and a clear changelog.

RATING: 9.2/10 MAINT: active DRIFT: low
â–¸ 1 reusable components found
LazyVim/LazyVim ★ 27562 1821 APPLICATION

LazyVim is a curated Neovim configuration distribution and framework built on top of the lazy.nvim plugin manager. It provides a fast, modular, and opinionated IDE setup out of the box, with sane defaults for options, keymaps, and autocmds, plus an extensive system of optional 'extras' covering languages, editors, AI tools, UI enhancements, and more. The core architecture is a set of well-structured Lua modules that define a setup function, health checks, LSP integration, formatting, picker abstraction, and root directory detection. Users customize by adding plugin specs in their own lua/plugins/ directory or by enabling extras via the :LazyExtras command. The codebase is actively maintained with frequent releases, thorough testing, and detailed changelogs covering breaking changes and migrations. Although primarily a Neovim configuration, it exhibits application-level patterns such as a formal plugin specification API, an abstraction layer for pickers, and a modular extra system that could inform other tool configuration frameworks.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
starwing/lua-protobuf ★ 1911 400 APPLICATION

This repository provides a comprehensive protobuf (Protocol Buffers) support library for Lua (versions 5.1–5.4 and LuaJIT). At its core is a high-performance C module (`pb.c`/`pb.h`) implementing protobuf wire format encoding/decoding, type management, and a memory-efficient hash table and pool. On top of this, a pure Lua module (`protoc.lua`) parses `.proto` schema files, resolving imports, types, and options, and compiles them into the binary descriptor format required by the C core. Additional Lua modules (`pb.buffer`, `pb.slice`, `pb.conv`, `pb.io`) provide low-level wire format manipulation for advanced use cases. The library supports both proto2 and proto3 syntax, including maps, oneofs, packed repeated fields, extensions, enums, custom default values, hooks, and multiple independent type states. It is well-tested with nearly 100% code coverage via GitHub Actions and Coveralls. The architecture is cleanly layered: the C core is a single-header library with its own implementation (`pb.h` with `PB_IMPLEMENTATION`), making it easy to embed into other projects. The pure Lua compiler is self-contained and can be used independently. The codebase demonstrates strong craftsmanship in both C (efficient wire format parsing, custom allocator pool, hash table) and Lua (complete recursive-descent parser with error reporting). It is actively maintained, with recent commits and support for the latest Lua versions.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
sniper00/moon ★ 976 211 APPLICATION

Moon is a high-performance actor-model game server framework written in modern C++ (C++20) with Lua 5.4/5.5 as its embedded scripting engine. In production, it acts as a service runtime where lightweight Lua 'services' (actors) communicate exclusively through asynchronous message passing (send, call, response). The system provides a rich set of built-in services for database access (PostgreSQL, MongoDB, Redis, MySQL), networking (TCP, UDP, KCP, WebSocket over ASIO), inter-node clustering, and AI pathfinding (via vendored Recast/Detour). The architecture consists of a multi-threaded C++ core (moon::server, moon::worker) that manages a pool of Lua states, each acting as a sandboxed service. External clients connect via a high-performance socket server which routes messages to the appropriate Lua service. Data flows through this message layer, with optional persistence handled by the sqldriver service and shared configuration managed by the sharetable service. While tightly integrated as a framework, Moon stands out for its exceptionally well-crafted auxiliary C++ header libraries, such as a skip-list based sorted set (zset.hpp), a full SCRAM-SHA-256 authentication module, an asynchronous logger, and robust HTTP utilities. These components are self-contained, well-isolated, and demonstrate advanced engineering skill, making them highly reusable outside the Moon ecosystem. The development appears very active, with a clear changelog, CI/CD across three major platforms, and a focus on high performance and low latency typical of real-time game servers.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
michaelbrusegard/tabline.wez ★ 311 49 APPLICATION

tabline.wez is a WezTerm plugin that provides a customizable tab bar interface written in Lua. It displays information about tabs, windows, and system status (mode, workspace, battery, CPU, RAM, datetime, domain, etc.) in a configurable layout inspired by lualine.nvim. The architecture is modular with separate components for configuration management, status line rendering, tab formatting, utility functions, and individual information components. Key entry points are in plugin/init.lua which sets up WezTerm event handlers for 'update-status' and 'format-tab-title'. The plugin pulls data from the WezTerm API and system sources to dynamically update the display based on user activity and system status.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 1 reusable components found
m00qek/baleia.nvim ★ 213 13 APPLICATION

Baleia.nvim is a Neovim plugin that colorizes text with ANSI escape sequences (8, 16, 256 or TrueColor). It processes buffers containing ANSI codes, strips them from the text while applying appropriate syntax highlighting, and supports both manual and automatic colorization modes. The architecture features modular Lua components handling ANSI parsing (ansi.lua), lexical analysis (lexer.py), asynchronous processing (scheduler.lua), and Neovim highlight rendering (renderer.lua). The plugin integrates with Neovim's buffer system through autocommands and API functions, efficiently handling large files via chunked processing.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
MagicDuck/grug-far.nvim ★ 2013 56 APPLICATION

grug-far.nvim is a Neovim plugin providing an interactive find-and-replace workflow using ripgrep and ast-grep as search backends. It presents a dedicated buffer with editable input fields (search pattern, replacement, files filter, flags, paths) and renders results with highlighting, folding, and line-level diff markers. The plugin supports multiple search engines and replacement interpreters (Lua, Vimscript), history persistence, preview, quickfix integration, and instance-level API for programmatic control. The architecture is modular: an engine abstraction layer, async job processing with libuv, a rendering system using Neovim extmarks, and a task lifecycle manager. It includes a comprehensive screenshot-based test suite and CI workflows. The codebase demonstrates strong software craftsmanship with clean abstractions, reusable patterns, and extensive documentation.

RATING: 9.0/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
coffebar/neovim-project ★ 304 24 APPLICATION

The Neovim project manager plugin is a Lua-based Neovim plugin designed to streamline project workflow by maintaining a history of visited projects and enabling quick restoration of Neovim sessions (including UI state like neo-tree expanded directories) upon switching projects. It integrates with popular fuzzy finders (telescope, fzf-lua, snacks) for project selection and supports optional per-branch session management for Git repositories. The architecture is modular, separating concerns into distinct modules: configuration handling, project lifecycle management, history persistence, path and glob pattern resolution, Git integration, and session-specific payload storage (for neo-tree state). The plugin leverages Neovim's autocommands to synchronize session saving/loading with project switches and Git branch changes, ensuring a seamless user experience. Key strengths include robust glob pattern handling (with correct support for **, *, ?, and character classes), a self-healing history mechanism that automatically reloads when the history file is modified externally, and thoughtful integration with Neo-tree to restore UI state. The plugin demonstrates attention to detail in edge cases, such as handling symlinks in project paths and detecting Git worktrees.

RATING: 9.0/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
yaocccc/nvim ★ 200 37 APPLICATION

This is a Neovim configuration repository that sets up a modern, feature-rich development environment. It uses lazy.nvim for plugin management and configures LSP support, completion (via blink.cmp), keybindings, and various quality-of-life enhancements. The configuration is modular, with separate files for options, keymaps, LSP initialization, plugin configurations, and filetype-specific behaviors. It demonstrates solid Neovim Lua programming practices with thoughtful customizations for productivity.

RATING: 9.0/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
micro-editor/micro ★ 29661 1382 APPLICATION

Micro is a terminal-based text editor written in Go, designed to be intuitive and feature-rich. It provides a full editing experience with multiple cursors, tabs, splits, syntax highlighting, undo/redo, search/replace, autocomplete, and a built-in command bar. The architecture follows a modular design with clear separation of concerns: the `internal/action` package handles keybindings and event dispatching via a trie-based key tree; `internal/buffer` manages text buffers using an efficient line array and an event-driven undo stack; `internal/display` renders the editor UI through a window abstraction that supports soft wrapping and status lines; and `internal/screen` wraps the tcell library for terminal I/O. The editor supports Lua-based plugins that hook into lifecycle events and expose Go standard library packages, enabling extensibility without recompilation. External dependencies include tcell (terminal control), gopher-lua (scripting), go-diff (diff computation), and several forked libraries for JSON5 parsing and shell quoting. The main entry point is `cmd/micro/micro.go`, which parses CLI flags, initializes configuration, loads plugins, and runs the event loop. Data flows primarily involve file I/O (reading/writing buffers), terminal input events (keyboard/mouse), and plugin callbacks. The codebase is well-tested with unit tests, generated buffer tests from VSCode model tests, and CI pipelines across platforms.

RATING: 8.9/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
love2d/love ★ 8831 654 APPLICATION

LÖVE (love2d/love) is a cross-platform 2D game engine and framework. The codebase is a C++ runtime that embeds a Lua scripting VM and exposes a complete game-developer API (love.graphics, love.audio, love.physics, love.filesystem, love.math, love.window, etc.) used to build and ship games. The main executable (src/love.cpp) bootstraps a Lua state, loads src/modules/love/boot.lua, and runs the standard game loop defined in callbacks.lua (love.load/update/draw). In production this engine packages .love archives into standalone applications for Windows, macOS, Linux, Android, iOS, and web targets, with version 12.0 "Bestest Friend" currently defined in src/common/version.h. Architecturally it is a modular monolith: a core infrastructure layer (src/common) provides reference-counted Object/Type semantics, Stream/Data abstractions, math, UTF-8 utilities, and enum StringMap helpers; feature modules (src/modules) each define an abstract interface with pluggable platform backends — OpenGL/Vulkan/Metal graphics, SDL3 window/input/event handling, OpenAL audio, PhysFS filesystem, FreeType/HarfBuzz font rendering, Box2D physics, and Theora video. Lua bindings are hand-written via a consistent luax_* convention in wrap_*.cpp files. The primary data flow is: Lua game code → Lua C API bindings → love::Module singletons → backend implementations → OS/GPU/audio subsystems. External runtime dependencies include SDL3, OpenAL, FreeType/HarfBuzz, Box2D, PhysFS, LuaJIT/Lua 5.1/5.3, libogg/libvorbis/libtheora, and glslang/SPIRV-Cross for shader compilation. Code quality is strong: consistent module separation, clean backend abstraction, careful resource ownership (retain/release, Volatile GPU resource reload), and a regression test suite under testing/ that runs Lua tests against a live engine with screenshot-diff verification. Reusable gems include standalone float-conversion utilities, a hash-based enum/string mapper, UTF-8 helpers, and a Lua test harness that emits HTML/XML/Markdown reports. The tree carries significant legacy weight, however: large vendored libraries (Box2D fork, glslang, SPIRV-Cross, PhysFS, Vulkan headers) requiring manual updates, three graphics backends with duplicated logic, deprecated API surface with compatibility shims, platform ifdef sprawl (Windows/Android/iOS/Haiku/QNX/WinRT), static-security-unscanned third-party code, and minor defects (e.g., an uninitialized bool in the WinINet client). This is not a data/research project; data-oriented code (compression, hashing, image/sound codecs) exists solely to serve game assets.

RATING: 8.9/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
CorsixTH/CorsixTH ★ 4546 423 APPLICATION

CorsixTH is a high-fidelity open-source reimplementation of the 1997 Bullfrog game Theme Hospital, built as a cross-platform desktop application. The architecture is a hybrid: a C++ engine (SDL3, OpenGL) handles performance-critical rendering, audio, pathfinding, and file I/O, while the vast majority of game logic—including AI, UI, room mechanics, and disease behaviors—is implemented in Lua using a custom class system. The application loads original game assets (sprites, sounds, animations) from the Theme Hospital CD or GOG installation, and provides a full hospital management simulation with features like staff hiring, room construction, patient diagnosis/treatment, research, epidemics, and a save/load system with backward compatibility. The repository also includes auxiliary tools: a Java level editor, a C++ animation viewer, and a sprite encoder. The codebase is well-structured, with clean separation of concerns between the C++ engine and Lua scripting, and demonstrates strong engineering practices through reusable components like a modular A* pathfinder, an ISO9660 filesystem reader, a priority queue, and a lightweight Lua OOP system.

RATING: 8.9/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
monkoose/neocodeium ★ 518 21 APPLICATION

NeoCodeium is a Neovim plugin that provides AI-powered code completion using the Windsurf (formerly Codeium) service. It features a modular architecture with separate modules for state management, completion logic, rendering, server communication, and utility functions. The plugin integrates with Neovim's autocommands to provide real-time suggestions as virtual text, supports cycling through completions, accepting partial suggestions, and includes a chat interface via the Windsurf service. It is designed to be highly configurable and works alongside other completion plugins like nvim-cmp and blink.cmp.

RATING: 8.9/10 MAINT: maintained DRIFT: low
â–¸ 2 reusable components found
rkusa/dcs-scratchpad ★ 202 35 APPLICATION

DCS Scratchpad is a Lua-based mod for Eagle Dynamics' DCS World flight simulator that provides an in-game, resizable, and movable scratchpad for taking persistent notes. The mod allows users to create and switch between multiple text pages, insert coordinates from the F10 map interface, and persist all notes to text files in the user's saved games directory. It integrates with DCS World through Lua simulation callbacks to manage the UI state and handle user interactions. The mod features an extension system that enables additional functionality such as virtual keyboards, aircraft-specific startup procedures, message logging, and coordinate formatting tools. Extensions are loaded from Lua files in a designated directory and receive a well-defined API for interacting with the scratchpad UI, including adding buttons, registering coordinate listeners, and manipulating text content. This architecture allows for community-contributed enhancements while maintaining core functionality. Key technical highlights include robust UTF-8-aware text manipulation for proper cursor positioning and text insertion, sophisticated geographic coordinate formatting supporting multiple representations (DMS, DDM, Decimal Degrees), and a sandboxed extension loading mechanism that provides isolation between extensions and the core mod. The implementation demonstrates attention to detail in handling edge cases related to international text, coordinate systems, and user interface interactions.

RATING: 8.9/10 MAINT: active DRIFT: low
â–¸ 1 reusable components found
nvim-lua/kickstart.nvim ★ 31564 46444 APPLICATION

Kickstart.nvim is a well-documented, single-file Neovim configuration starter that serves as a teaching tool and reference for building a personal Neovim setup. It uses the modern `vim.pack` plugin manager (Neovim 0.12+) and includes curated configurations for LSP, autocompletion (blink.cmp), fuzzy finding (Telescope), formatting (conform.nvim), snippets (LuaSnip), Treesitter, and git integration (gitsigns). The code is organized into clearly commented sections, making it easy for users to understand and modify. It is not a distribution but a starting point that encourages users to fork and customize. The repository also includes optional plugin examples (debug, lint, autopairs, neo-tree) and a health check module. With over 31k stars and active maintenance, it is the most popular Neovim configuration template and has influenced many derivative configurations.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
dmtrKovalenko/fff ★ 11097 467 APPLICATION

fff (Fast File Finder) is a high-performance file search and content grep toolkit written in Rust, designed for long-running applications like code editors, AI agents, and file explorers. It provides fuzzy filename search with typo resistance, live content grep (plain text, regex, fuzzy), directory search, glob filtering, and git-aware frecency ranking. The core library maintains a persistent in-memory index with a bigram-based content prefilter, an LMDB-backed frecency and query history store, and a live filesystem watcher for incremental updates. The system is exposed through multiple interfaces: a Neovim plugin with a full TUI picker UI, an MCP server for AI assistants (Claude Code, Codex), language bindings for Python, Node.js, and Bun, and a C FFI for embedding in other languages. The architecture is a Rust core library with multiple frontends communicating via FFI or direct Rust API, all sharing the same `FilePicker` instance that manages indexing, searching, and watching. The codebase demonstrates exceptional performance engineering with SIMD-optimized string operations, compressed inverted indexes, arena-based path storage, and careful concurrency design with thread pools and lock-free snapshots.

RATING: 8.8/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
$ loading more...
$ submit: