shipwithjev

Catalog / Tools & apps

0367GitHub

jev.nvim

Neovim plugin that splits the buffer into functions with Treesitter, scores each against a plain-language question with Jev, and ranks answers by probability in the quickfix…

valentynkit/jev.nvimREADME ↗
# jev.nvim

[](https://github.com/valentynkit/jev.nvim/actions/workflows/ci.yml)



Ask the buffer a question in plain language. Every function in it gets judged, and the
answers land in quickfix ranked by probability.

```vim
:Jev builds a SQL query by string concatenation
```



## What the clip shows

It opens on the grep you write when you go looking for SQL injection:

```console
$ rg -n 'SELECT.*\+' fixtures/corpus/
5 matches
```

Five, and every one of them is a `+`. There are twelve. Lua concatenates with `..`, Rust
with `format!`, Python with an f-string, TypeScript with a template literal. One idea,
five syntaxes, and the regex that catches one catches none of the rest. That is not noise,
it is a false negative: you searched, you got five, you stopped.

Then the same question in English, over the same twelve files:

```
errors.rs |14 col 1| 0.98  find_user
errors.ts |14 col 1| 0.97  findUser
errors.py |20 col 1| 0.96  find_user
errors.js |13 col 1| 0.95  findUser
report.rs |15 col 1| 0.95  report_query
errors.go |20 col 1| 0.94  findUser
errors.lua|14 col 1| 0.93  M.find_user
report.py |14 col 1| 0.93  report_query
```

grep is shaped like the language. The question is not.

The clip is rendered against the plugin's test fake so it runs from a clean clone, which
means the probabilities in it are fixtures rather than measurements. `demo/README.md` lists
exactly what is staged for the camera and what is not.

## Why

grep needs the pattern, and half the searches worth running have no pattern. "Where do we
retry without a backoff." "Which handlers touch the database before checking auth." "What
swallows an exception and returns a default." You know the shape of the answer, not the
string.

jev.nvim splits the buffer with treesitter and sends one question per func

Also filed under Tools & apps

  1. 0616

    Jevstiller: distill Jev calls into a local model

    A self-hosted proxy that trains a local model on Jev's answers. It served 72% of Banking77 locally at 15 ms, with a 2% audit and a bound on disagreement.

    tomerglick57 · Tools & apps · 15 ms local

  2. 0611

    Scruple: code checks for what linters miss

    Semantic-aware linting with System One models: rules you can state in a sentence, checked against your code by Jev.

    @nalexpeae · Tools & apps

  3. 0606

    Algolia-style Postgres search with a Jev reranker

    Typo tolerance, typeahead, barcodes and facet counts in plain Postgres SQL, plus an optional Jev step that asks one question per top-10 result.

    @alex_forman1 · Tools & apps

  4. 0604

    Virtual Closet: outfits from closet videos

    built a virtual closet & outfit generator from raw closet videos. classification + semantic search thanks to jev 🥰. clueless closet dreams finally coming to life

    @maitreemervana · Tools & apps