Noogle: Difference between revisions
added link to noogle.dev |
m Fix grammar and slight rewording for clarity |
||
| Line 1: | Line 1: | ||
= Noogle = | = Noogle = | ||
[https://noogle.dev Noogle] is a community maintained search page designed specifically for NixOS users and maintainers. It knows about all standard nix functions | [https://noogle.dev Noogle] is a community maintained search page designed specifically for NixOS users and maintainers. It knows about all standard nix functions which are typically used via the <code>builtins</code>, <code>lib</code> and <code>pkgs</code> attributes. | ||
Noogle.dev is especially useful when: | Noogle.dev is especially useful when: | ||
| Line 7: | Line 7: | ||
* you are looking for a function doing a certain transformation. For example: [https://noogle.dev/q?from=list&to=attrset List -> AttributeSet] [https://noogle.dev/q?from=list&to=string List -> String] [https://noogle.dev/q?from=attrset&to=list AttributeSet -> List] | * you are looking for a function doing a certain transformation. For example: [https://noogle.dev/q?from=list&to=attrset List -> AttributeSet] [https://noogle.dev/q?from=list&to=string List -> String] [https://noogle.dev/q?from=attrset&to=list AttributeSet -> List] | ||
* quick companion looking up how to use a certain function. | * quick companion for looking up how to use a certain function. | ||
* fuzzy searching within all the functions | * fuzzy searching within all the functions | ||
* finding the source position of functions | * finding the source position of functions | ||
| Line 13: | Line 13: | ||
== Discoverability == | == Discoverability == | ||
Functions are indexed via tree-traversal of the nix attribute sets. | |||
Nix's position tracking is used in conjunction with static analysis based on the rnix AST to backtrace each function to its declaration in the source code. | Nix's position tracking is used in conjunction with static analysis based on the rnix AST to backtrace each function to its declaration in the source code. | ||
| Line 24: | Line 24: | ||
Noogle uses internal function characteristics and properties of the nix evaluator to detect aliases. | Noogle uses internal function characteristics and properties of the nix evaluator to detect aliases. | ||
For example: <code>lib.lists.concatLists</code> is the same as calling <code>lib.concatLists</code> or <code> builtins.concatLists</code> | For example: <code>lib.lists.concatLists</code> is the same as calling <code>lib.concatLists</code> or <code>builtins.concatLists</code> | ||
== Updates == | == Updates == | ||
Noogle is updated daily against the master branch of nix (builtins) and nixpkgs (lib,pkgs,...) | Noogle is updated daily against the master branch of nix (builtins) and nixpkgs (lib, pkgs,...) | ||
== API == | == API == | ||