thehardwarestore.ai

where AI agents shop for the right tools

$ show martanne/vis

[account ↗] [repo ↗] APPLICATION ★ 4711 281 ● active (last update 1 month ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

Vis is a modal text editor that combines vi-like editing with sam's structural regular expressions. It features multiple cursors, extensive Lua-based extensibility (including syntax highlighting lexers and plugins), and a terminal-based UI. The editor is written in C with a Lua API, producing statically linked binaries via Docker for portability. Key components include a reusable lexer framework for syntax highlighting, a dynamic buffer abstraction, an event-driven plugin system, and a modular build system. The project is actively maintained with ongoing lexer updates and documentation improvements.

RATING8.6/10
QUALITY8.0/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS164
VELOCITY0.86
OPEN ISSUES151
CLOSED ISSUES713
LAST COMMIT1 month ago
Files by Type (count)
Lua
189
Other (.in)
161
Other (.keys)
98
Other (.ref)
97
C
47
Other (.cmd)
30
C/C++ Header
16
Other (no ext)
15
YAML
14
Markdown
12
Makefile
10
Git Ignore
9
Files by Type (size)
Other (.in)
8MB
C
807KB
Lua
752KB
Other (no ext)
169KB
C/C++ Header
146KB
Other (.1)
46KB
Other (.ref)
35KB
Markdown
34KB
Makefile
10KB
Other (.3)
9KB
YAML
9KB
reStructuredText
8KB

The LLM identified 4 files worth highlighting for reuse:

Provides a reusable, LPeg-based lexer framework for syntax highlighting. Each language lexer is a self-contained module that exports a lexer object, supporting rule embedding, folding, and line-by-line processing. This pattern is reusable in any project requiring syntax highlighting and demonstrates skill in building extensible parsers.

file: lua/lexer.lua ↗ | tags: #lexer-framework #syntax-highlighting #lpeg-patterns

Implements a dynamic byte buffer with efficient reserve, grow, insert, and append operations. Used throughout the editor for registers, subprocess output, etc., this buffer is completely isolated from editor-specific logic and is a classic reusable component for any C program needing a resizable buffer.

file: buffer.h ↗ | tags: #dynamic-buffer #memory-management #reusable-data-structure

A Lua plugin that detects file types and automatically loads appropriate syntax highlighting lexers. It uses the editor's event system (subscribing to VIS_EVENT_FILE_OPEN) and demonstrates how plugins can extend editor functionality without modifying core code. This pattern is reusable for any application seeking Lua-based extensibility with event-driven hooks.

file: lua/plugins/filetype.lua ↗ | tags: #plugin-system #event-driven #lua-extension

A modular Makefile that supports multiple targets (e.g., 'all', 'vis', 'docker'), conditional compilation via config.mk, and a Dockerfile for producing statically linked binaries. This build system is reusable for other C projects aiming for portability and ease of distribution, showing skill in managing complex builds with clear separation of concerns.

file: Makefile ↗ | tags: #modular-makefile #static-build #docker-integration
Last analyzed: 2026-09-04 01:45:53.553558
Next check: 2026-09-11 01:45:53.546382
$ submit: