Proposal: Noir Dev Snippets VS Code Extension #8680
Akshola00
started this conversation in
[NRG#4] Developer Tools
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This proposal outlines the development of a VS Code extension designed to significantly enhance the developer experience for Noir programmers. Inspired by popular code snippet extensions in other ecosystems (e.g., "rafce" in React), this tool will provide a suite of pre-defined code snippets and intelligent auto-completions for common Noir constructs, boilerplate, and more. The extension aims to reduce repetitive typing, minimize errors, and accelerate the development of ZK applications in Noir, making it easier for developers to get started and maintain their projects.
Motivation
The Noir language is rapidly emerging as a leading solution for general-purpose Zero-Knowledge Proofs. However, like any new language or specialized domain, developers often face a learning curve and the need to repeatedly type out common code patterns, especially for cryptographic operations or circuit definitions. This can lead to:
Based on observations within developer communities (e.g., Discord channels where developers frequently ask for boilerplate examples), a tool that streamlines code generation for common Noir patterns inside the code editor itself would be highly beneficial. This extension directly addresses the need for "robust developer tools" that make Noir "easy to develop, productize with and maintain." By abstracting away repetitive syntax, developers can focus more on the unique logic of their ZK circuits.
Methodology
The Noir Dev Snippets VS Code Extension will be developed using TypeScript and the VS Code Extension API. The development approach will involve:
Snippet Identification and Prioritization
Some Smart Snippets System We would be implementing
ncirc
→ Complete circuit template with proper imports and structurenfunc
→ Function template with parameter types and return valuesntest
→ Test function template with assertions and setupnconst
→ Constraint template with proper syntaxnproof
→ Proof generation and verification templatenimport
→ Smart import suggestions based on contextTesting
Thorough testing will be conducted to ensure snippets function correctly and integrate seamlessly with VS Code. This will include:
Documentation
Comprehensive documentation will be provided, detailing:
Business Model
As a fundamental developer tool, the Noir Dev Snippets VS Code Extension will be entirely open-sourced with a permissive license (MIT). Sustainable funding for further developments will primarily rely on:
Funding Strategies
The primary value proposition is to make Noir development more efficient and enjoyable, fostering broader adoption, which benefits the entire ecosystem.
Timeline and Deliverables
Month 1: Foundation & Core Snippets
Initial VS Code Extension project setup.
Implementation of core Noir language snippets.
Basic circuit-specific snippets (assert).
Initial documentation on GitHub.
Public alpha release for early feedback.
Month 2: Standard Library & Testing Snippets
Expansion of snippets to include commonly used Noir standard library functions (as relevant and stable).
Snippets for test boilerplate (#[test] functions).
Improved documentation with clear examples.
Thorough internal testing and bug fixing.
Month 3: Advanced Snippets & Community Integration
Integration of more advanced snippets for common cryptographic patterns (e.g., structure for common hash functions, or structures for future native cryptographic primitives if they are well-defined).
Establishment of a clear contribution guide.
Promotion within the Noir developer community to encourage contributions.
Public beta release and gathering community feedback for new snippet ideas.
Month 4-6: Refinement, Optimization & Maintenance
Continuous integration of community-contributed snippets.
Performance optimizations for the extension.
Ongoing maintenance and bug fixes based on user feedback.
Regular updates to documentation to reflect new features and snippets.
Exploration of deeper language integration features (e.g., basic linting or type hints if feasible without a full language server).
Deliverables:
Team
Lead Developer: Akinshola Akinniyi https://github.com/Akshola00 email [email protected]
Experience: A skilled smart contract developer with expertise in Solidity and a contributor to various open-source projects using Cairo. Currently developing a privacy-focused application with Noir Lang.
Full Stack Developer: Martin Machiebe https://github.com/martinvibes [email protected]
Martin is a full stack developer with a strong background in frontend development. He is a community expert and an active contributor to open-source projects. Recently, he began exploring Noir for privacy-preserving applications. His experience includes working with React, Tailwind, Solidity, and Cairo.
Frontend Developer: Yunus Abdulmajid https://github.com/Yunusabdul38 [email protected]
Yunus is an experienced frontend developer skilled in React and TypeScript. He has contributed to numerous open-source projects in both web2 and web3, developing various applications and software extensions. He is also involved in building applications using Noir language.
Start Date: 2 June 2025
Beta Was this translation helpful? Give feedback.
All reactions