Skip to content

Test notebooks #93742

@jrieken

Description

@jrieken

Refs: #91987

Complexity: 5

Authors: @rebornix, @roblourens, @jrieken


We are adding native support for notebooks. This item covers notebooks themselves and the GH issue notebook extensions.

  1. First, install the GH issue notebook extension:
    👉 https://github.com/microsoft/vscode-github-issue-notebooks/releases
  2. Then create <XYZ>.github-issues files which open in notebook editors

GitHub Issue Query Language

Make yourself familiar with the query syntax here https://github.com/microsoft/vscode-github-issue-notebooks#query-syntax and test that

  • you get syntax highlighting
  • you get validation for
    • unknown keys, e.g fabel:bug instead of label
    • unknown values, e.g. is:PR instead of is:pr
    • conflicting key-value-pairs, like is:open is:closed
    • unknown variables
    • not being able to use OR or sort-by when defining variables
  • you can expand and shrink selection along the syntax tree
  • you can reveal an error from the markers panel and it reveal the corresponding cell
  • you can go to variables definition and that multiple definitions of the same variable is supported
  • you go the definition of a variable in another cell
  • the actual value of a variable is defined by the most recent cell (recent = edited or executed)
  • you can find references of variables either using peek or the references viewlet
  • you can rename variables but you cannot rename to an invalid name
  • you can hover over variable names to see their values
  • (when being logged in) you get IntelliSense for repositories, organisations, labels, milestones, and users
  • you get IntelliSense for known keys like is, author etc and know values like open, closed etc
  • you get IntelliSense for sort-by like so foo sort|

Running Queries

You can execute a GH issue query and it renders all results similar to the how the web client does it. Test that

  • It renders the results properly, esp that you cannot make it execute code
  • You can toggle between html, markdown, and plain-text output
  • Html-rendered items have links for the item itself and for its assignees
  • the html output shows show more/less button at the bottom when having more than 13 results
  • You can cancel execution of a query

Generic notebook features

Just in case they are not covered by above items.

  • You can use the toolbar on each cell
    • move cells
    • add/delete cells
    • lock cells (in GitHub issue notebook case, locking cells means you can't edit the content)
  • You can do cross cell find and replace in a notebook editor (CMD+F)
  • After making cell edits with above operations, you can undo/redo.
  • Navigation
    • When the focus is on cell container (not inside an editor), you can use arrow keys to navigate through cells in the editor
    • When the focus is inside an editor in a cell, you can use arrows key to navigate between editors of each cell

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions