mirror of
https://github.com/dwinkler1/np.git
synced 2026-05-22 21:23:31 -04:00
simplified
This commit is contained in:
parent
5c851aecba
commit
e814d2c04c
3 changed files with 254 additions and 103 deletions
73
templates/ed/README.md
Normal file
73
templates/ed/README.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# Project Editor
|
||||
|
||||
A per-project Neovim wrapper built with [nix-wrapper-modules](https://birdeehub.github.io/nix-wrapper-modules/) and [nvimConfig](https://github.com/dwinkler1/nvimConfig).
|
||||
|
||||
## Setup
|
||||
|
||||
The flake provides two entry points:
|
||||
|
||||
| Command | What you get |
|
||||
|---|---|
|
||||
| `direnv allow` / `nix develop` | **(Recommended)** A shell with `nv` and all enabled language toolchains (R, Python, Julia, Quarto) on `PATH`. |
|
||||
| `nix run` | Launches only the `nv` editor. Language toolchains (R, Python, etc.) are **not** on `PATH`. |
|
||||
|
||||
### With direnv (recommended)
|
||||
|
||||
```bash
|
||||
direnv allow # enter the devShell automatically
|
||||
nv # launch the pre-configured Neovim
|
||||
R # R REPL is available (if enabled in flake.nix)
|
||||
```
|
||||
|
||||
### Without direnv
|
||||
|
||||
```bash
|
||||
nix develop # enter the devShell manually
|
||||
nv # launch Neovim
|
||||
R # R REPL is available (if enabled in flake.nix)
|
||||
```
|
||||
|
||||
> **Why `nix run` only gives the editor:** The flake's `packages.default` is the wrapped Neovim binary. Language toolchains (R, radian, quarto, etc.) live in `devShells.default`. Use `nix develop` (or `direnv allow`) to get the full environment.
|
||||
|
||||
## Configuration
|
||||
|
||||
The `flake.nix` is the single source of truth. Key knobs:
|
||||
|
||||
| Option | What it controls |
|
||||
|---|---|
|
||||
| `cats` | Toggle language support (nix, r, python, julia, etc.) |
|
||||
| `settings.lang_packages.<lang>` | Language-specific packages installed in the wrapper |
|
||||
| `settings.colorscheme` | Neovim colorscheme |
|
||||
| `settings.background` | `"dark"` or `"light"` |
|
||||
| `settings.wrapRc` | When `true`, init.lua is embedded (rebuild to change); when `false`, init.lua is external (reload without rebuild) |
|
||||
| `binName` | The wrapper binary name (`nv` by default) |
|
||||
| `env` | Environment variables set in the wrapper |
|
||||
| `extraPackages` | Extra system packages available in the wrapper's PATH |
|
||||
| `specs.extraLua` | Inject lazy.nvim plugin specs |
|
||||
|
||||
### Adding packages without editing flake.nix
|
||||
|
||||
Create any of these optional files in the project root to add dependencies without modifying `flake.nix`:
|
||||
|
||||
- **`python-packages.nix`** — receives `python3Packages`, return a list of packages:
|
||||
```nix
|
||||
p: with p; [ numpy scipy ]
|
||||
```
|
||||
|
||||
- **`r-packages.nix`** — receives `rpkgs` (includes `rPackages`), return a list:
|
||||
```nix
|
||||
p: with p.rPackages; [ ggplot2 data.table ]
|
||||
```
|
||||
|
||||
- **`julia-packages.nix`** — no arguments, return a list of package name strings:
|
||||
```nix
|
||||
[ "DataFrames" "Plots" ]
|
||||
```
|
||||
|
||||
## Formatting
|
||||
|
||||
```bash
|
||||
nix fmt
|
||||
```
|
||||
|
||||
Uses `nixfmt-rfc-style` pinned via the flake's `formatter` output.
|
||||
Loading…
Add table
Add a link
Reference in a new issue