https://noogle.dev - nix function exploring.
Go to file
2022-12-09 16:51:33 +01:00
.github/workflows add nix-unstable 2022-12-03 15:36:54 +01:00
components fix: typo in type 2022-12-09 16:51:33 +01:00
models add builtins & markdown highlighting 2022-12-09 16:41:59 +01:00
pages add builtins & markdown highlighting 2022-12-09 16:41:59 +01:00
public ux: improve lists and mobile 2022-12-03 17:38:50 +01:00
scripts add builtins & markdown highlighting 2022-12-09 16:41:59 +01:00
styles darkMode: improve color scheme 2022-11-30 16:45:12 +01:00
types ux: improve lists and mobile 2022-12-03 17:38:50 +01:00
.envrc INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
.eslintrc.json INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
.gitignore INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
createEmotionCache.ts INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
flake.lock improve type proto 2022-12-07 23:10:58 +01:00
flake.nix add real nixpkgs metadata from enhanced nixdoc 2022-12-03 15:25:32 +01:00
next.config.js add real nixpkgs metadata from enhanced nixdoc 2022-12-03 15:25:32 +01:00
nix_systems INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
package-lock.json add builtins & markdown highlighting 2022-12-09 16:41:59 +01:00
package.json add builtins & markdown highlighting 2022-12-09 16:41:59 +01:00
README.md update link to prototype 2022-12-07 21:14:55 +01:00
tsconfig.json INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00

🚧 under construction 🚧

Any contributions are welcome

Noogle

Noogle is a Nix API search engine. It allows you to search functions based on their types and other attributes in nix projects. In nixpkgs especially the builtins and lib attributes.

  • Beginners-friendly search for nix and nix-related functions
  • Expert search with directly typing type signatures
  • Search functions based on:
    • type
    • signature
    • name
  • tree-search from one type to another

How it works

The idea is to use a fork of nixdocto generate json data from all functions. That have the Type field which is currently supported from nixdoc.

View the prototype here

We need your help / what is missing

  • Parsing Types: into a real type signature tree
  • Upstream missing type informations (like in /lib/attrsets.nix)
  • Write type signatures for the builtins in json
  • Add path, where each function can be imported from. e.g. lib.makeOverridable or lib.customisation.makeOverridable (it is available in both sets)
  • Website
    • Make sure functions with missing type signatures can be found too
    • Add filter by tags e.g. lib.lists
    • Mobile optimization for reading on the go
  • Clean up / enhance my nixdoc fork.
    • Make the sloppy parser more error resistant
    • Some valueable information can be used from the rnix AST ?

Contribute

Contributions are very welcome just file a PR or issue

Build this page

nix build .#

Develop

nix develop

This command creates the node_modules folder with all needed dependencies based on dream2nix.