Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ Verify your Juvix installation with:
juvix --version
```



## Usage

This extension provides semantic syntax highlighting for Juvix files and multiple commands accessible through the Command Palette. Note that you need to edit Juvix files within a workspace folder for the extension to function correctly.
Expand Down Expand Up @@ -93,6 +95,18 @@ Some common settings you can tweak include:

Make sure to reload the window if prompted for some changes to take effect.


## Walkthrough

This extension includes a walkthrough to help you get started with Juvix development in VSCode. To access the walkthrough:

1. Open the Command Palette (Ctrl+Shift+P or Cmd+Shift+P on Mac).
2. Type "Get Started: Open Walkthrough" and select it.
3. Choose "Get Started with Juvix" from the list of walkthroughs.

Follow the steps in the walkthrough to learn how to use the main features of the Juvix extension.


## Features

- **Type-checking, Compilation, and Execution** of Juvix code.
Expand Down
Binary file added assets/compile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/install-juvix.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/open-juvix-file.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/open-juvix-markdown-file.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/repl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/typecheck.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
89 changes: 88 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,87 @@
"editor.semanticHighlighting.enabled": true,
"editor.autoDetect": true,
"contributes": {
"walkthroughs": [
{
"id": "juvixWalkthrough",
"title": "Get Started with Juvix",
"description": "Learn how to use the Juvix extension for VSCode",
"steps": [
{
"id": "installJuvix",
"title": "Install Juvix",
"description": "Make sure you have Juvix installed on your system.",
"media": {
"image": "assets/install-juvix.png",
"altText": "Juvix installation"
},
"completionEvents": [
"onCommand:juvix-mode.installJuvixBinary"
]
},
{
"id": "openJuvixFile",
"title": "Open a Juvix File",
"description": "Open or create a new Juvix file to start coding.",
"media": {
"image": "assets/open-juvix-file.png",
"altText": "Open Juvix file"
},
"completionEvents": [
"onLanguage:Juvix"
]
},
{
"id": "openJuvixMarkdownFile",
"title": "Open a Juvix Markdown File",
"description": "Open or create a new Juvix Markdown file to start coding.",
"media": {
"image": "assets/open-juvix-markdown-file.png",
"altText": "Open Juvix Markdown file"
},
"completionEvents": [
"onLanguage:JuvixMarkdown"
]
},
{
"id": "typecheck",
"title": "Typecheck Your Code",
"description": "Use the typecheck command to verify your Juvix code.",
"media": {
"image": "assets/typecheck.png",
"altText": "Typecheck Juvix code"
},
"completionEvents": [
"onCommand:juvix-mode.typecheck"
]
},
{
"id": "compile",
"title": "Compile Your Code",
"description": "Compile your Juvix code using the compile command.",
"media": {
"image": "assets/compile.png",
"altText": "Compile Juvix code"
},
"completionEvents": [
"onCommand:juvix-mode.compile"
]
},
{
"id": "useRepl",
"title": "Use the Juvix REPL",
"description": "Open the Juvix REPL to interactively work with your code.",
"media": {
"image": "assets/repl.png",
"altText": "Juvix REPL"
},
"completionEvents": [
"onCommand:juvix-mode.openRepl"
]
}
]
}
],
"configurationDefaults": {
"[Juvix]": {
"editor.insertSpaces": true,
Expand Down Expand Up @@ -461,7 +542,13 @@
]
}
],

"commands": [
{
"command": "juvix-mode.openWalkthrough",
"title": "Open Juvix Walkthrough",
"category": "Juvix"
},
{
"command": "juvix-mode.installJuvixBinary",
"title": "Install Juvix Binary",
Expand Down Expand Up @@ -889,4 +976,4 @@
"webpack": "^5.92.1",
"webpack-cli": "^5.1.4"
}
}
}
6 changes: 6 additions & 0 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,12 @@ export async function activate(context: vscode.ExtensionContext) {
check.activate(context, juvixDiagnosticCollection);
context.subscriptions.push(juvixDiagnosticCollection);

context.subscriptions.push(
vscode.commands.registerCommand('juvix-mode.openWalkthrough', () => {
vscode.commands.executeCommand('workbench.action.openWalkthrough', 'Heliax.juvix-mode#juvixWalkthrough');
})
);

vscode.commands.executeCommand('setContext', 'juvix-mode:ready', true);
}
}