char/avril

(wip) why'd you have to go and make things so complicaaaaated?

git clone https://git.t4t.associates/char/avril

Charlotte Somrearrange libs into lib and extensions into extsf4a0f5b

main
2.1 KiB41 linesraw

Editor integration

Live language server

avril lsp --typescript=PATH [--project=DIR] provides unsaved source overlays, diagnostics, basic hover, definition navigation, and conservative completion through unmodified native TypeScript. It uses avril's real configuration, per-referrer resolution, package/declaration graph, cache, lock, vendor, and acquisition policy. Open local documents are graph roots; unsaved import changes and filesystem/config changes refresh the graph without generating snapshots. Editor refreshes never write lockfiles, tsconfigs, or application sources.

The separate avril-lsp crate accepts immutable generations from the runtime project service. The VS Code client launches Rust directly. This remains an early implementation: generations are rebuilt rather than incrementally updated, and the crate documentation lists the remaining checking/discovery limitations.

VS Code

Install the extension from editors/vscode, configure avril.lsp.backend and avril.lsp.executable, and trust the workspace. The client automatically starts when the first workspace folder is local and contains an avril.conf directly at its root; nested configurations do not trigger startup. Otherwise, use avril: Start Language Server. Keep VS Code's built-in TypeScript extension enabled: avril suppresses its competing results for the active folder while the server runs and restores them when it stops. Other workspace folders retain their own language features. Set avril.lsp.autoStart to false to opt out.

No generated tsconfig, snapshot, project-local npm installation, or legacy manifest is required. Backend installation and the remaining feature limits are covered in the LSP documentation.

avril.conf highlighting

The standalone extension includes avril.conf highlighting for comments, quoted strings, unquoted keys, and nested containers. Its source grammar lives in editors/vscode/. This does not make avril.conf JSON or executable JS; avril's custom parser remains authoritative.

1# Editor integration
2
3## Live language server
4
5`avril lsp --typescript=PATH [--project=DIR]` provides unsaved source overlays,
6diagnostics, basic hover, definition navigation, and conservative completion
7through unmodified native TypeScript. It uses avril's real configuration,
8per-referrer resolution,
9package/declaration graph, cache, lock, vendor, and acquisition policy. Open
10local documents are graph roots; unsaved import changes and filesystem/config
11changes refresh the graph without generating snapshots. Editor refreshes never
12write lockfiles, tsconfigs, or application sources.
13
14The separate [`avril-lsp` crate](../lib/lsp/README.md) accepts immutable generations
15from the runtime project service. The [VS Code client](../editors/vscode/README.md)
16launches Rust directly. This remains
17an early implementation: generations are rebuilt rather than incrementally
18updated, and the crate documentation lists the remaining checking/discovery
19limitations.
20
21## VS Code
22
23Install the extension from [`editors/vscode`](../editors/vscode/README.md), configure
24`avril.lsp.backend` and `avril.lsp.executable`, and trust the workspace. The client
25automatically starts when the first workspace folder is local and contains an
26`avril.conf` directly at its root; nested configurations do not trigger startup.
27Otherwise, use **avril: Start Language Server**. Keep VS Code's built-in TypeScript
28extension enabled: avril suppresses its competing results for the active folder
29while the server runs and restores them when it stops. Other workspace folders
30retain their own language features. Set `avril.lsp.autoStart` to `false` to opt out.
31
32No generated tsconfig, snapshot, project-local npm installation, or legacy
33manifest is required. Backend installation and the remaining feature limits are
34covered in the [LSP documentation](../lib/lsp/README.md).
35
36## `avril.conf` highlighting
37
38The standalone extension includes `avril.conf` highlighting for comments, quoted
39strings, unquoted keys, and nested containers. Its source grammar lives in
40`editors/vscode/`. This does not make `avril.conf` JSON or executable JS;
41avril's custom parser remains authoritative.