Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 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
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
Sourcemeta Studio License
Sourcemeta JSON Schema Studio License

For licensing questions, contact: hello@sourcemeta.com

1. Grant of License

Sourcemeta ("Licensor") grants you ("Licensee") permission to use the
Sourcemeta Studio ("Software") source code under the conditions outlined below.
Sourcemeta JSON Schema Studio ("Software") source code under the conditions outlined below.

- Reviewing the source code for auditing purposes
- Contributing improvements back to the project
Expand Down
29 changes: 23 additions & 6 deletions README.markdown
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
Sourcemeta Studio
=================
Sourcemeta JSON Schema Studio
=============================

Professional JSON Schema tooling that brings real-time linting, metaschema
validation, and automatic formatting directly into your editor.

***

**[Install from the Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=sourcemeta.sourcemeta-studio)**
**[Install in Visual Studio Code](vscode:extension/sourcemeta.sourcemeta-studio)**

***

![Sourcemeta Studio Example](./screenshot.png)
![Sourcemeta JSON Schema Studio Example](./screenshot.png)

After installing the Sourcemeta Studio extension, issues are not displayed automatically when you open a JSON or YAML file. To view them, open the file and click the Sourcemeta Studio icon in the editor title bar to manually open the Sourcemeta Studio panel for the active file.
After installing the Sourcemeta JSON Schema Studio extension, issues are not displayed automatically when you open a JSON or YAML file. To view them, open the file and click the Sourcemeta JSON Schema Studio icon in the editor title bar to manually open the Sourcemeta JSON Schema Studio panel for the active file.

![Sourcemeta Studio Instructions](./instructions.png)
![Sourcemeta JSON Schema Studio Instructions](./instructions.png)

> [!TIP]
> Do you want to level up your JSON Schema skills? Check out
Expand All @@ -25,6 +25,23 @@ After installing the Sourcemeta Studio extension, issues are not displayed autom
> Data Products with JSON
> Schema](https://www.oreilly.com/library/view/unifying-business-data/9781098144999/).

Publisher & Verification Status
-------------------------------

Sourcemeta JSON Schema Studio is published and maintained by the **official Sourcemeta
organization**, the team behind open-source JSON Schema tooling used in
production by developers and companies worldwide.

At the time of writing, the Visual Studio Code Marketplace **Verified Publisher**
badge has not yet been applied to this extension. Publisher verification is a
Microsoft-managed, administrative process that is independent of an
extension’s code quality, security posture, or maintenance status, and can take
time even for established open-source organizations.

This extension is actively maintained by the Sourcemeta team, and all releases
are built from the same public repositories that power Sourcemeta’s other
open-source projects.

Features
--------

Expand Down
8 changes: 4 additions & 4 deletions test/vscode/extension.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ suite('Extension Test Suite', () => {
test('Should handle JSON file opening', async function() {
this.timeout(5000);

const extension = vscode.extensions.getExtension('sourcemeta.sourcemeta-studio');
const extension = vscode.extensions.getExtension('sourcemeta.sourcemeta-jsonschema-studio');
if (extension && !extension.isActive) {
await extension.activate();
}
Expand Down Expand Up @@ -170,7 +170,7 @@ suite('Extension Test Suite', () => {
assert.ok(diagnostics.length > 0);

const hasLintDiagnostic = diagnostics.some(diagnostic =>
diagnostic.source === 'Sourcemeta Studio (Lint)');
diagnostic.source === 'Sourcemeta JSON Schema Studio (Lint)');

assert.ok(hasLintDiagnostic);
});
Expand Down Expand Up @@ -202,9 +202,9 @@ suite('Extension Test Suite', () => {
'VS Code built-in JSON validation should be disabled');

const sourcemetaDiagnostics = diagnostics.filter(diagnostic =>
diagnostic.source && diagnostic.source.startsWith('Sourcemeta Studio'));
diagnostic.source && diagnostic.source.startsWith('Sourcemeta JSON Schema Studio'));

assert.ok(sourcemetaDiagnostics.length > 0,
'Sourcemeta Studio should still report metaschema errors');
'Sourcemeta JSON Schema Studio should still report metaschema errors');
});
});
2 changes: 1 addition & 1 deletion test/vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "@sourcemeta/studio-test-vscode",
"version": "0.0.0",
"private": true,
"description": "Tests for Sourcemeta Studio VSCode extension",
"description": "Tests for Sourcemeta JSON Schema Studio VSCode extension",
"scripts": {
"compile": "tsc -p ./",
"pretest": "npm run compile",
Expand Down
12 changes: 6 additions & 6 deletions vscode/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 33 additions & 7 deletions vscode/package.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
{
"name": "sourcemeta-studio",
"displayName": "Sourcemeta Studio",
"displayName": "Sourcemeta JSON Schema Studio",
"publisher": "sourcemeta",
"description": "JSON Schema inspection, formatting, and linting tools",
"version": "0.0.8",
"version": "1.0.0",
"icon": "logo.png",
"engines": {
"vscode": "^1.74.0"
},
"homepage": "https://www.sourcemeta.com/",
"categories": [
"Other"
"Linters",
"Formatters",
"Programming Languages",
"AI",
"Data Science",
"Testing",
"Visualization"
],
"repository": {
"type": "git",
Expand All @@ -21,7 +28,7 @@
"commands": [
{
"command": "sourcemeta-studio.openPanel",
"title": "Open Sourcemeta Studio",
"title": "Open Sourcemeta JSON Schema Studio",
"icon": {
"light": "./logo.png",
"dark": "./logo.png"
Expand All @@ -38,16 +45,35 @@
]
},
"configuration": {
"title": "Sourcemeta Studio",
"title": "Sourcemeta JSON Schema Studio",
"properties": {
"sourcemeta-studio.disableBuiltInValidation": {
"type": "boolean",
"default": true,
"description": "Disable VS Code's built-in JSON schema validation to prevent conflicts with Sourcemeta Studio"
"description": "Disable VS Code's built-in JSON schema validation to prevent conflicts with Sourcemeta JSON Schema Studio"
}
}
}
},
"keywords": [
"json",
"json schema",
"schema",
"validation",
"validator",
"lint",
"linter",
"linting",
"formatter",
"formatting",
"openapi",
"api",
"vscode",
"data",
"schema validation",
"json lint"
],
"qna": "marketplace",
"scripts": {
"compile": "node esbuild.js",
"watch": "node esbuild.js --watch",
Expand All @@ -56,7 +82,7 @@
"lint": "eslint src --ext ts"
},
"dependencies": {
"@sourcemeta/jsonschema": "^13.3.0"
"@sourcemeta/jsonschema": "^14.0.2"
},
"devDependencies": {
"@types/node": "24.x",
Expand Down
6 changes: 3 additions & 3 deletions vscode/src/diagnostics/DiagnosticManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ export class DiagnosticManager {

// Set the source
diagnostic.source = type === DiagnosticType.Lint
? 'Sourcemeta Studio (Lint)'
: 'Sourcemeta Studio (Metaschema)';
? 'Sourcemeta JSON Schema Studio (Lint)'
: 'Sourcemeta JSON Schema Studio (Metaschema)';

if (error.id) {
diagnostic.code = {
Expand Down Expand Up @@ -115,7 +115,7 @@ export class DiagnosticManager {
vscode.DiagnosticSeverity.Error
);

diagnostic.source = 'Sourcemeta Studio (Metaschema)';
diagnostic.source = 'Sourcemeta JSON Schema Studio (Metaschema)';

if (error.instanceLocation) {
diagnostic.code = error.instanceLocation;
Expand Down
2 changes: 1 addition & 1 deletion vscode/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
function handleWebviewMessage(message: WebviewToExtensionMessage): void {
if (message.command === 'ready') {
webviewReady = true;
console.log('[Sourcemeta Studio] Webview ready');
console.log('[Sourcemeta JSON Schema Studio] Webview ready');
return;
}

Expand Down
2 changes: 1 addition & 1 deletion vscode/src/panel/PanelManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export class PanelManager {

this.panel = vscode.window.createWebviewPanel(
'sourcemetaStudio',
'Sourcemeta Studio',
'Sourcemeta JSON Schema Studio',
{
viewColumn: columnToShowIn,
preserveFocus: false
Expand Down
2 changes: 1 addition & 1 deletion webview/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Sourcemeta Studio</title>
<title>Sourcemeta JSON Schema Studio</title>
</head>
<body>
<div id="root"></div>
Expand Down