Skip to content

Verify jaw cell support in Jupyter / .NET Interactive notebooks #53

Description

@dishmint

Background

Split off from #41 (linting in markdown code blocks). Notebooks have a different technical path than raw markdown:

  • Raw markdown ```jaw blocks: hard problem. The host file is markdown, the LSP is registered for jaw, so diagnostics never fire. Solving it requires either embedded-LSP work in the extension or making jaw-lsp accept markdown documents and scan for fences. (Tracked in No linting in markdown code blocks #41.)
  • Notebook cells: VS Code's notebook API treats each cell as its own virtual document with its own language id. A cell whose language is jaw should already get full LSP support — diagnostics, hover, completion, goto-def — for free, without code changes.

Goal

Verify the second claim empirically and document what works.

Tasks

  • Open VS Code with the jaw extension active. Create a .ipynb and add a cell with language jaw. Confirm:
    • Syntax highlighting fires
    • LSP diagnostics fire (write a bare function ref to trigger the "did you mean /func?" warning)
    • Hover, goto-definition, and variable completion work
  • Repeat in .dib (.NET Interactive / Polyglot Notebooks) if the extension is installed.
  • If anything's broken, file specific follow-up issues.
  • If everything works, add a docs section ("Using jaw in notebooks") with a one-paragraph explanation and screenshots.

Out of scope

Markdown cells containing ```jaw fences inside notebooks — that's the same hard problem as #41 and should be tracked there, not here.

Why split

The technical solutions are different. Notebook cells likely need zero code; raw markdown needs significant LSP/extension work. Sizing them as one issue obscures that the easier win is probably a 30-minute investigation and a docs page.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions