55 | Diff 📖
56 |
57 |
58 | ${{ steps.diff.outputs.body }}
59 |
60 |
61 |
62 |
63 | - uses: marocchino/sticky-pull-request-comment@v2
64 | if: github.event_name == 'pull_request' && steps.diff.outputs.exitcode == '0'
65 | with:
66 | header: sticky-comment-for-git-diff
67 | hide: true
68 | hide_classify: "OUTDATED"
69 |
--------------------------------------------------------------------------------
/.github/workflows/commit-message-lint.yml:
--------------------------------------------------------------------------------
1 | name: commit-message-lint
2 |
3 | on:
4 | push:
5 | branches: [main]
6 | pull_request:
7 | branches: [main]
8 |
9 | jobs:
10 | commitlint:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v3
14 | with:
15 | fetch-depth: 0
16 | - uses: wagoid/commitlint-github-action@v5
17 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: release
2 |
3 | on:
4 | workflow_dispatch:
5 | inputs:
6 | release_name:
7 | required: true
8 | type: string
9 | default: "wit-idl: v0.0.1"
10 | tag_name:
11 | required: true
12 | type: string
13 | default: "wit-idl-v0.0.1"
14 | release:
15 | types:
16 | - released
17 |
18 | concurrency:
19 | group: ${{ github.workflow }}-${{ github.ref }}
20 | cancel-in-progress: false
21 |
22 | jobs:
23 | publish:
24 | runs-on: ubuntu-latest
25 | permissions:
26 | contents: write
27 | outputs:
28 | release_name: ${{ steps.event_details.outputs.release_name }}
29 | tag_name: ${{ steps.event_details.outputs.tag_name }}
30 | version: ${{ steps.event_details.outputs.version }}
31 | steps:
32 | - name: Check event details
33 | id: event_details
34 | env:
35 | RELEASE_NAME: ${{ github.event.release.name || inputs.release_name }}
36 | TAG_NAME: ${{ github.event.release.tag_name || inputs.tag_name }}
37 | run: |
38 | echo "release_name=${RELEASE_NAME}" >> $GITHUB_OUTPUT
39 | echo "tag_name=${TAG_NAME}" >> $GITHUB_OUTPUT
40 | echo "version=${TAG_NAME##*-v}" >> $GITHUB_OUTPUT
41 | echo "package_name=${RELEASE_NAME%:*}" >> $GITHUB_OUTPUT
42 | - uses: actions/checkout@v3
43 | with:
44 | ref: ${{ steps.event_details.outputs.tag_name }}
45 | - name: Add files and publish release
46 | env:
47 | GITHUB_TOKEN: ${{ github.token }}
48 | VSCE_PAT: ${{ secrets.PAT_VSCE }}
49 | TAG_NAME: ${{ steps.event_details.outputs.tag_name }}
50 | run: |
51 | npm ci
52 | npm run package
53 | mv wit-idl.vsix ${TAG_NAME}.vsix
54 | gh release upload ${TAG_NAME} ${TAG_NAME}.vsix
55 | npx vsce publish --packagePath ${TAG_NAME}.vsix
56 |
57 | label:
58 | needs: [publish]
59 | runs-on: ubuntu-latest
60 | permissions:
61 | contents: read
62 | issues: write
63 | pull-requests: write
64 | repository-projects: read
65 | steps:
66 | - uses: actions/checkout@v3
67 |
68 | - name: Add label to PR
69 | env:
70 | GITHUB_TOKEN: ${{ github.token }}
71 | run: |
72 | PR_NUMBER=$(gh pr list --state merged --label 'autorelease: tagged' --json number --jq '.[0].number')
73 | gh pr edit ${PR_NUMBER} --add-label 'autorelease: published'
74 |
75 | comments:
76 | needs: [publish]
77 | runs-on: ubuntu-latest
78 | permissions:
79 | contents: write
80 | issues: write
81 | pull-requests: write
82 | steps:
83 | - uses: apexskier/github-release-commenter@v1
84 | with:
85 | GITHUB_TOKEN: ${{ github.token }}
86 | comment-template: |
87 | :tada: This change has been included in ${{ needs.publish.outputs.tag_name }} :tada:
88 |
89 | The release is available on:
90 | - GitHub releases: {release_link}
91 |
92 | Your **[release-please](https://github.com/googleapis/release-please)** bot :rocket::pray:
93 |
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | name: 'Close stale issues and PRs (stale.yml)'
2 | on:
3 | schedule:
4 | - cron: '30 1 * * *'
5 |
6 | jobs:
7 | stale:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/stale@v9
11 | with:
12 | stale-issue-message: >
13 | This issue has been marked as stale because it has been open for 60 days with no activity.
14 | It will be closed in 7 days unless there is further activity. To keep it open, add a comment or remove the stale label.
15 |
16 | stale-pr-message: >
17 | This pull request has been marked as stale because it has been open for 60 days with no activity.
18 | It will be closed in 10 days unless there is further activity. To keep it open, add a comment or remove the stale label.
19 |
20 | close-issue-message: >
21 | This issue was closed because it has been inactive for 7 days after being marked as stale.
22 |
23 | close-pr-message: >
24 | This pull request was closed because it has been inactive for 10 days after being marked as stale.
25 |
26 | days-before-issue-stale: 60
27 | days-before-pr-stale: 60
28 | days-before-issue-close: 7
29 | days-before-pr-close: 10
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # node-waf configuration
29 | .lock-wscript
30 |
31 | # Compiled binary addons (https://nodejs.org/api/addons.html)
32 | build/Release
33 |
34 | # Dependency directories
35 | node_modules/
36 | jspm_packages/
37 |
38 | # TypeScript v1 declaration files
39 | typings/
40 |
41 | # TypeScript cache
42 | *.tsbuildinfo
43 |
44 | # Optional npm cache directory
45 | .npm
46 |
47 | # Optional eslint cache
48 | .eslintcache
49 |
50 | # Microbundle cache
51 | .rpt2_cache/
52 | .rts2_cache_cjs/
53 | .rts2_cache_es/
54 | .rts2_cache_umd/
55 |
56 | # Optional REPL history
57 | .node_repl_history
58 |
59 | # Output of 'npm pack'
60 | *.tgz
61 |
62 | # Yarn Integrity file
63 | .yarn-integrity
64 |
65 | # dotenv environment variables file
66 | .env
67 | .env.test
68 |
69 | # parcel-bundler cache (https://parceljs.org/)
70 | .cache
71 |
72 | # Typescript Output
73 | dist/
74 |
75 | # VSCode extension development
76 | .vscode-test/
77 | *.vsix
78 | *.tmLanguage.json
79 | !/syntaxes/*.tmLanguage.json
80 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Files to exclude from Prettier formatting
2 |
3 | # Keep existing exclusions
4 | *.md
5 | *.yml
6 | *.yaml
7 |
8 | # WIT files (custom syntax, not supported by Prettier)
9 | *.wit
10 |
11 | # Dependencies
12 | node_modules/
13 |
14 | # Build outputs
15 | dist/
16 | *.vsix
17 |
18 | # Test snapshots (these are auto-generated and shouldn't be manually formatted)
19 | *.snap
20 |
21 | # Binary files
22 | *.png
23 | *.jpg
24 | *.jpeg
25 | *.gif
26 | *.ico
27 | *.pdf
28 |
29 | # Package lock files
30 | package-lock.json
31 |
32 | # Git
33 | .git/
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"]
3 | }
4 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that launches the extension inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [
8 | {
9 | "name": "Extension",
10 | "type": "extensionHost",
11 | "request": "launch",
12 | "runtimeExecutable": "${execPath}",
13 | "args": [
14 | "--disable-extensions",
15 | "--extensionDevelopmentPath=${workspaceFolder}",
16 | "${workspaceRoot}/tests/grammar"
17 | ]
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.formatOnSave": true,
3 | "editor.defaultFormatter": "esbenp.prettier-vscode",
4 | "editor.codeActionsOnSave": {
5 | "source.fixAll.eslint": "explicit"
6 | },
7 | "[typescript]": {
8 | "editor.defaultFormatter": "esbenp.prettier-vscode",
9 | "editor.formatOnSave": true
10 | },
11 | "[javascript]": {
12 | "editor.defaultFormatter": "esbenp.prettier-vscode",
13 | "editor.formatOnSave": true
14 | },
15 | "[json]": {
16 | "editor.defaultFormatter": "esbenp.prettier-vscode",
17 | "editor.formatOnSave": true
18 | },
19 | "[jsonc]": {
20 | "editor.defaultFormatter": "esbenp.prettier-vscode",
21 | "editor.formatOnSave": true
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.0",
3 | "tasks": [
4 | {
5 | "label": "watch",
6 | "type": "npm",
7 | "script": "watch",
8 | "problemMatcher": [],
9 | "presentation": {
10 | "group": "build"
11 | }
12 | },
13 | {
14 | "label": "build",
15 | "dependsOn": ["watch"],
16 | "group": {
17 | "kind": "build",
18 | "isDefault": true
19 | },
20 | "problemMatcher": []
21 | }
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | .github/
4 | .gitignore
5 | tests/
6 | commitlint.config.js
7 | src/**
8 | .yarnrc
9 | **/tsconfig.json
10 | **/.eslintrc.json
11 | **/*.map
12 | **/*.ts
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## [0.3.4](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.3.3...wit-idl-v0.3.4) (2025-05-29)
4 |
5 |
6 | ### Features
7 |
8 | * add support for feature gates ([8624eb4](https://github.com/bytecodealliance/vscode-wit/commit/8624eb4af5f291bd6952a210966ff3f4865c52c5)), closes [#34](https://github.com/bytecodealliance/vscode-wit/issues/34)
9 |
10 | ## [0.3.3](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.3.2...wit-idl-v0.3.3) (2025-05-17)
11 |
12 |
13 | ### Bug Fixes
14 |
15 | * sync vscode types and engine ([482fd7d](https://github.com/bytecodealliance/vscode-wit/commit/482fd7d6b4a33ba8440560c4a9644c784fcd2ca6))
16 |
17 | ## [0.3.2](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.3.1...wit-idl-v0.3.2) (2025-05-12)
18 |
19 |
20 | ### Bug Fixes
21 |
22 | * comments on type aliases are now recognized as comments ([80c21d1](https://github.com/bytecodealliance/vscode-wit/commit/80c21d19ee4004bbcccf68c71ed13ceba6c4e7f6))
23 | * separate rules for `result` keyword with and without <> ([cf87929](https://github.com/bytecodealliance/vscode-wit/commit/cf8792998880407f31399418a964bfe43454c54f))
24 |
25 | ## [0.3.1](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.3.0...wit-idl-v0.3.1) (2023-09-05)
26 |
27 |
28 | ### Bug Fixes
29 |
30 | * missing resource methods ([#31](https://github.com/bytecodealliance/vscode-wit/issues/31)) ([36d0ceb](https://github.com/bytecodealliance/vscode-wit/commit/36d0ceb7a565b3b7e48b696c6322ffb88ea6e3c0))
31 |
32 | ## [0.3.0](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.2.3...wit-idl-v0.3.0) (2023-09-04)
33 |
34 |
35 | ### ⚠ BREAKING CHANGES
36 |
37 | * The `union` type has been removed from the WIT grammar.
38 |
39 | ### Bug Fixes
40 |
41 | * remove union typedef ([#28](https://github.com/bytecodealliance/vscode-wit/issues/28)) ([8b97b47](https://github.com/bytecodealliance/vscode-wit/commit/8b97b47b98a9fcf018cc5a879c0f30b44866d911))
42 |
43 | ## [0.2.3](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.2.2...wit-idl-v0.2.3) (2023-09-03)
44 |
45 |
46 | ### Features
47 |
48 | * add basic markdown highlighting in doc-comments ([e64075b](https://github.com/bytecodealliance/vscode-wit/commit/e64075b4c76041e3262f690b1e8f918bc69b74b6))
49 | * add simple auto-complete for keywords and built-in types ([7bb2014](https://github.com/bytecodealliance/vscode-wit/commit/7bb2014f3d08b3d5a7084008163b2580d758366f))
50 | * automatically continue doc-comments (`///`, `/**`) on next line ([b037f85](https://github.com/bytecodealliance/vscode-wit/commit/b037f853533db8323dd988f98afe0951440b7bf6))
51 | * configure wordPattern to improve word highlighting and autocomplete suggestions ([7e887c6](https://github.com/bytecodealliance/vscode-wit/commit/7e887c6e50ff76576abc4d7ef45cc61e626124fc))
52 |
53 |
54 | ### Bug Fixes
55 |
56 | * target newer VSCode to enable extension activation ([5c80b4a](https://github.com/bytecodealliance/vscode-wit/commit/5c80b4ad730f79100ced29970e963d034ff09dc6))
57 |
58 | ## [0.2.2](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.2.1...wit-idl-v0.2.2) (2023-09-03)
59 |
60 |
61 | ### Features
62 |
63 | * add toplevel use keyword to wit grammar ([#26](https://github.com/bytecodealliance/vscode-wit/issues/26)) ([8990d18](https://github.com/bytecodealliance/vscode-wit/commit/8990d1836f2eb9e03de2fad0cb1d7acd1e7e61cb))
64 |
65 | ## [0.2.1](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.2.0...wit-idl-v0.2.1) (2023-09-02)
66 |
67 |
68 | ### Bug Fixes
69 |
70 | * remove commitlint config file from extension package ([#23](https://github.com/bytecodealliance/vscode-wit/issues/23)) ([b75af2d](https://github.com/bytecodealliance/vscode-wit/commit/b75af2d050344f545f6c7dc848a6cd8a01160517))
71 |
72 | ## [0.2.0](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.1.2...wit-idl-v0.2.0) (2023-07-08)
73 |
74 |
75 | ### ⚠ BREAKING CHANGES
76 |
77 | * The `default`, `self`, `pkg` keywords have been removed from the grammar.
78 |
79 | ### Features
80 |
81 | * add package keyword to wit grammar ([#19](https://github.com/bytecodealliance/vscode-wit/issues/19)) ([8c9acc7](https://github.com/bytecodealliance/vscode-wit/commit/8c9acc7cb65b2dec1f15f2de8557c2e2f21e347c))
82 |
83 | ## [0.1.2](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.1.1...wit-idl-v0.1.2) (2023-07-03)
84 |
85 |
86 | ### Features
87 |
88 | * add include keyword to wit grammar ([#17](https://github.com/bytecodealliance/vscode-wit/issues/17)) ([dcc5a30](https://github.com/bytecodealliance/vscode-wit/commit/dcc5a30d300146eac0ee5fac8287a4d30ce6106f))
89 |
90 | ## [0.1.1](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.1.0...wit-idl-v0.1.1) (2023-04-15)
91 |
92 |
93 | ### Bug Fixes
94 |
95 | * lookbehind assertion with malformed regex ([#11](https://github.com/bytecodealliance/vscode-wit/issues/11)) ([8787a0a](https://github.com/bytecodealliance/vscode-wit/commit/8787a0a9c283249448f07a7ee97d2a9e7365e4ac))
96 | * move repository fields to top-level object ([#13](https://github.com/bytecodealliance/vscode-wit/issues/13)) ([74f1ffc](https://github.com/bytecodealliance/vscode-wit/commit/74f1ffcf9ed0bd700066e51721bff042a1589c93))
97 |
98 | ## [0.1.0](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.0.3...wit-idl-v0.1.0) (2023-04-14)
99 |
100 |
101 | ### Miscellaneous Chores
102 |
103 | * release 0.1.0 ([e50fec0](https://github.com/bytecodealliance/vscode-wit/commit/e50fec096a700b25b98570381eb77f2be9962ab2))
104 |
105 | ## [0.0.3](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.0.2...wit-idl-v0.0.3) (2023-04-12)
106 |
107 |
108 | ### Bug Fixes
109 |
110 | * ensure kebab case for identifiers ([#5](https://github.com/bytecodealliance/vscode-wit/issues/5)) ([7ec3057](https://github.com/bytecodealliance/vscode-wit/commit/7ec30578ba6257669a40fa757688a82eebcef992))
111 |
112 | ## [0.0.2](https://github.com/bytecodealliance/vscode-wit/compare/wit-idl-v0.0.1...wit-idl-v0.0.2) (2023-04-10)
113 |
114 |
115 | ### Features
116 |
117 | * add wit idl support for vscode ([b24abb8](https://github.com/bytecodealliance/vscode-wit/commit/b24abb873864a3d1fae838f101b7e3a06183e6a2))
118 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WIT IDL for VSCode
2 |
3 | This package is a Visual Studio Code extension to recognize and highlight the WebAssembly Interface Type (WIT) Interface Definition Language (IDL). It can also be used as a bundle in TextMate.
4 |
5 | The description of the WIT format can be found at: https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md
6 |
7 |
8 | ## Features
9 |
10 | 
11 |
12 | This extension provides:
13 | - Basic syntax highlighting of ".wit" files.
14 | - [Snippets](https://code.visualstudio.com/docs/editor/userdefinedsnippets) for worlds and interfaces.
15 | - Basic markdown highlighting in comments.
16 | - Simple list-based autocomplete.
17 |
18 | ## Installation
19 |
20 | To install from source, follow these steps:
21 | * Clone the repository: `git clone https://github.com/bytecodealliance/vscode-wit.git && cd vscode-wit`
22 | * Run npm commands to install:
23 | `npm ci && npm run install-plugin`
24 |
--------------------------------------------------------------------------------
/commitlint.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: ["@commitlint/config-conventional"],
3 | rules: {
4 | "type-enum": [2, "always", ["build", "chore", "docs", "feat", "fix", "refactor", "style", "test"]],
5 | "body-max-line-length": [0, "always"],
6 | "footer-max-line-length": [0, "always"],
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/esbuild.mjs:
--------------------------------------------------------------------------------
1 | // ESBuild configuration for building the VSCode extension (sample-based)
2 | // See: https://github.com/microsoft/vscode-extension-samples/blob/main/esbuild-sample/esbuild.js
3 |
4 | import * as esbuild from "esbuild";
5 |
6 | const production = process.argv.includes("--production");
7 | const watch = process.argv.includes("--watch");
8 |
9 | /**
10 | * @type {import('esbuild').Plugin}
11 | */
12 | const esbuildProblemMatcherPlugin = {
13 | name: "esbuild-problem-matcher",
14 | setup(build) {
15 | build.onStart(() => {
16 | console.log("[watch] build started");
17 | });
18 | build.onEnd((result) => {
19 | result.errors.forEach(({ text, location }) => {
20 | console.error(`✘ [ERROR] ${text}`);
21 | if (location) {
22 | console.error(` ${location.file}:${location.line}:${location.column}:`);
23 | }
24 | });
25 | console.log("[watch] build finished");
26 | });
27 | },
28 | };
29 |
30 | async function main() {
31 | const ctx = await esbuild.context({
32 | entryPoints: ["src/extension.ts"],
33 | bundle: true,
34 | format: "cjs",
35 | minify: production,
36 | sourcemap: !production,
37 | sourcesContent: false,
38 | platform: "node",
39 | outfile: "dist/extension.js",
40 | external: ["vscode"],
41 | logLevel: "silent",
42 | plugins: [esbuildProblemMatcherPlugin],
43 | });
44 | if (watch) {
45 | await ctx.watch();
46 | } else {
47 | await ctx.rebuild();
48 | await ctx.dispose();
49 | }
50 | }
51 |
52 | main().catch((e) => {
53 | console.error(e);
54 | process.exit(1);
55 | });
56 |
--------------------------------------------------------------------------------
/eslint.config.mjs:
--------------------------------------------------------------------------------
1 | import globals from "globals";
2 | import js from "@eslint/js";
3 | import tseslint from "typescript-eslint";
4 | import css from "@eslint/css";
5 | import prettier from "eslint-plugin-prettier";
6 |
7 | export default [
8 | // Base JavaScript configuration
9 | js.configs.recommended,
10 |
11 | // TypeScript configuration
12 | ...tseslint.configs.recommended,
13 |
14 | // General configuration for JS/TS files
15 | {
16 | files: ["**/*.{js,mjs,cjs,ts,mts,cts}"],
17 | languageOptions: {
18 | globals: { ...globals.browser, ...globals.node },
19 | },
20 | },
21 |
22 | // TypeScript and Prettier rules
23 | {
24 | files: ["**/*.{ts,tsx,js,jsx}"],
25 | plugins: {
26 | prettier,
27 | },
28 | rules: {
29 | // TypeScript rules
30 | "@typescript-eslint/no-unused-vars": "off",
31 |
32 | // Prettier rules
33 | "prettier/prettier": "warn",
34 |
35 | // Style rules
36 | quotes: ["warn", "double"],
37 | },
38 | },
39 |
40 | // CSS configuration
41 | {
42 | files: ["**/*.css"],
43 | plugins: {
44 | css,
45 | },
46 | language: "css/css",
47 | rules: {
48 | ...css.configs.recommended.rules,
49 | },
50 | },
51 | ];
52 |
--------------------------------------------------------------------------------
/images/LICENSE:
--------------------------------------------------------------------------------
1 | # Creative Commons CC0 1.0 Universal
2 |
3 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER.
4 |
5 | ## Statement of Purpose
6 |
7 | The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work").
8 |
9 | Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.
10 |
11 | For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.
12 |
13 | 1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following:
14 |
15 | i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;
16 |
17 | ii. moral rights retained by the original author(s) and/or performer(s);
18 |
19 | iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work;
20 |
21 | iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below;
22 |
23 | v. rights protecting the extraction, dissemination, use and reuse of data in a Work;
24 |
25 | vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and
26 |
27 | vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.
28 |
29 | 2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose.
30 |
31 | 3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose.
32 |
33 | 4. __Limitations and Disclaimers.__
34 |
35 | a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.
36 |
37 | b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.
38 |
39 | c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.
40 |
41 | d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.
--------------------------------------------------------------------------------
/images/README.md:
--------------------------------------------------------------------------------
1 | # Licensing for Images
2 |
3 | All image assets are under the CC0 LICENSE and in the public domain unless specified otherwise.
4 |
5 | 
6 |
7 | To the extent possible under law, the [Bytecode Alliance](bytecodealliance.org) has waived all copyright and related or neighboring rights to WIT Icon.
8 |
--------------------------------------------------------------------------------
/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytecodealliance/vscode-wit/e32c8a6b311cb96f936bfa945b2fa8c2710fa4e9/images/screenshot.png
--------------------------------------------------------------------------------
/images/wit-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytecodealliance/vscode-wit/e32c8a6b311cb96f936bfa945b2fa8c2710fa4e9/images/wit-icon.png
--------------------------------------------------------------------------------
/info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |