This is a Nix Flake that provides utilities for building extensions for the Nova editor:
- provides a Nix function to compile Tree Sitter grammars for use with Nova
- lets you define configuration items that can be set globally while being overridable per workspace
- provides JS utilities to reduce boilerplate code in your extension concerning language servers and fetching configuration items
- Nix Flakes allow you to easily depend on external tree sitter grammars without
git submoduleor copying the grammar source.
The general workflow for a Nova extension built with nova-extension-utils is as follows:
- You create a
flake.nixin your repository and referencenova-extension-utilsthere. - In
flake.nix, you can instruct nix to compile tree sitter grammars (optional). - Also in
flake.nix, you define the contents of your extension'sextension.json. - nova-extension-utils will automatically recognize relevant folders in your repository (
Syntaxes,Scripts,Images, …).Readme-user.mdor, if this doesn't exist,Readme.md, are copied into the generated extension as Readme file. - Via
nix build, you can build your extension, giving youresult/<name>.novaextension. - For testing, you can open
result/<name>.novaextensionin a separate Nova window and enable it locally from there. - Also from there, you can publish your extension.
See Documentation.