Fetching the latest programs, projects, and workspace data.

hyperextensible Vim-based text editor
Showing 5 of 10 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Rawan Khalid
Neovim currently cannot run natively in web browsers because its build systems and dependencies, such as libuv rely on OS-level features unavailable in WebAssembly (WASM). This project aims to enable Neovim as a WASM build target by adapting its build systems, creating a WASM compatibility layer to stub or replace unsupported OS features, and integrating a browser frontend. It involves compiling Neovim’s core editing engine, Lua 5.1 interpreter, and runtime files into WASM, adapting asynchronous event loops, handling virtual filesystems via Emscripten, and providing replacements for system calls like signals, threads, and process management. The deliverables include a fully functional nvim.wasm binary with embedded runtime files, a browser frontend capable of rendering the UI and handling input via Neovim’s RPC protocol. This will allow Neovim to operate within the browser which increases accessibility, enables integration with online IDEs and educational platforms, and expands Neovim’s ecosystem to new users and contributors.
Mentors: Student: Willaaaaaaa
Neovim embeds a VT220/xterm terminal emulator based on libvterm, which lets us work with the terminal right inside Neovim. However, `:terminal` buffers currently lose all their content when Neovim restarts, the buffer is closed, or a session is reloaded. My proposal aims to close this gap by preserving terminal history and bringing it back when users need it.
Mentors: Student: Siddhant Agarwal
A much wanted and highly requested feature for neovim is the ability to edit remote files over ssh seamlessly. There is no native way of doing so and plugins do not feel as polished as expected. The aim of this project is to add such a feature to neovim.
Mentors: Student: Shadman Saleh
Neovim currently lacks built-in support for AI features. As a result, plugin developers need to reimplement the same core functionalities again and again. This leads to duplication and inconsistencies in the plugin ecosystem. This project aims to introduce AI-friendly primitives to streamline AI plugin development. It should add support for inline completion, buffer status indicators, a standardized progress API, and enhance prompt buffers with multiline support to be more friendly toward building AI-assisted workflows. These improvements should make it easy to integrate AI capabilities in Neovim while keeping Neovim performant, lightweight, and extensible as always.
Mentors: Student: Yi Ming
This proposal aims to enhance Neovim’s API to support AI-powered features, while also bringing broader improvements to the editor's functionality. While Neovim can provide some AI capabilities, current APIs are not convenient enough for handling complex tasks like streaming results or customizing AI interactions. To solve this, the proposal focuses on three main areas: 1. Enhanced LSP Support: Adding support for AI-related methods such as `textDocument/inlineCompletion` and improving LSP's handling of partial results with `PartialResultParam`. 2. Progress Interface: Introducing a built-in progress interface (`vim.ui.progress`) to track and display long-running tasks, improving user experience during AI interactions. 3. Prompt Buffer Improvements: Creating a new Lua API for multi-line and editable prompt buffers to facilitate interactive AI chats or REPL-like environments. By addressing these areas, this project will provide a foundation for integrating AI into Neovim while offering general usability and extensibility improvements for all users.