From a214cc4b255b326bfeba86c9157c316ff2768153 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Sat, 14 Jun 2025 11:14:32 +0200 Subject: [PATCH] Added contributer docs components to show missing language scopes --- .../contributing/MissingLanguageScopes.tsx | 80 +++++++++++++++++++ .../contributing/adding-a-new-language.md | 2 +- .../contributing/missing_language_scopes.mdx | 9 +++ .../src/docs/user/languages/c.mdx | 2 +- .../src/docs/user/languages/clojure.mdx | 2 +- .../languages/components/ScopeSupport.tsx | 18 ++--- .../src/docs/user/languages/cpp.mdx | 2 +- .../src/docs/user/languages/csharp.mdx | 2 +- .../src/docs/user/languages/css.mdx | 2 +- .../src/docs/user/languages/dart.mdx | 2 +- .../src/docs/user/languages/go.mdx | 2 +- .../src/docs/user/languages/html.mdx | 2 +- .../src/docs/user/languages/java.mdx | 2 +- .../src/docs/user/languages/javascript.mdx | 2 +- .../docs/user/languages/javascriptreact.mdx | 2 +- .../src/docs/user/languages/json.mdx | 2 +- .../src/docs/user/languages/jsonc.mdx | 2 +- .../src/docs/user/languages/jsonl.mdx | 2 +- .../src/docs/user/languages/latex.mdx | 2 +- .../src/docs/user/languages/lua.mdx | 2 +- .../src/docs/user/languages/markdown.mdx | 2 +- .../src/docs/user/languages/php.mdx | 2 +- .../src/docs/user/languages/python.mdx | 2 +- .../src/docs/user/languages/r.mdx | 2 +- .../src/docs/user/languages/ruby.mdx | 2 +- .../src/docs/user/languages/rust.mdx | 2 +- .../src/docs/user/languages/scala.mdx | 2 +- .../src/docs/user/languages/scm.mdx | 2 +- .../src/docs/user/languages/scss.mdx | 2 +- .../src/docs/user/languages/talon.mdx | 2 +- .../src/docs/user/languages/typescript.mdx | 2 +- .../docs/user/languages/typescriptreact.mdx | 2 +- .../src/docs/user/languages/xml.mdx | 2 +- .../src/docs/user/languages/yaml.mdx | 2 +- 34 files changed, 129 insertions(+), 40 deletions(-) create mode 100644 packages/cursorless-org-docs/src/docs/contributing/MissingLanguageScopes.tsx create mode 100644 packages/cursorless-org-docs/src/docs/contributing/missing_language_scopes.mdx diff --git a/packages/cursorless-org-docs/src/docs/contributing/MissingLanguageScopes.tsx b/packages/cursorless-org-docs/src/docs/contributing/MissingLanguageScopes.tsx new file mode 100644 index 0000000000..1afbd9467f --- /dev/null +++ b/packages/cursorless-org-docs/src/docs/contributing/MissingLanguageScopes.tsx @@ -0,0 +1,80 @@ +import { + languageScopeSupport, + scopeSupportFacetInfos, + ScopeSupportFacetLevel, + scopeSupportFacets, + type ScopeSupportFacet, + type ScopeType, + type SimpleScopeTypeType, +} from "@cursorless/common"; +import React from "react"; + +export function MissingLanguageScopes(): React.JSX.Element[] { + return Object.keys(languageScopeSupport) + .sort() + .map((languageId) => ); +} + +function Language({ + languageId, +}: { + languageId: string; +}): React.JSX.Element | null { + const scopeSupport = languageScopeSupport[languageId] ?? {}; + + const unsupportedFacets = scopeSupportFacets.filter( + (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.unsupported, + ); + const unspecifiedFacets = scopeSupportFacets.filter( + (facet) => scopeSupport[facet] == null, + ); + + if (unsupportedFacets.length === 0 && unspecifiedFacets.length === 0) { + return null; + } + + return ( + <> +

{languageId}

+ {renderFacets("Unsupported", unsupportedFacets)} + {renderFacets("Unspecified", unspecifiedFacets)} + + ); +} + +function renderFacets( + title: string, + facets: ScopeSupportFacet[], +): React.JSX.Element | null { + const scopes = Array.from( + new Set( + facets.map((f) => + serializeScopeType(scopeSupportFacetInfos[f].scopeType), + ), + ), + ).sort(); + + if (scopes.length === 0) { + return null; + } + + return ( + <> + {title} ({scopes.length}) + + + ); +} + +function serializeScopeType( + scopeType: SimpleScopeTypeType | ScopeType, +): string { + if (typeof scopeType === "string") { + return scopeType; + } + return scopeType.type; +} diff --git a/packages/cursorless-org-docs/src/docs/contributing/adding-a-new-language.md b/packages/cursorless-org-docs/src/docs/contributing/adding-a-new-language.md index c1a18a917f..e204c754a7 100644 --- a/packages/cursorless-org-docs/src/docs/contributing/adding-a-new-language.md +++ b/packages/cursorless-org-docs/src/docs/contributing/adding-a-new-language.md @@ -48,5 +48,5 @@ import { Language } from "./components/Language"; # Java - + ``` diff --git a/packages/cursorless-org-docs/src/docs/contributing/missing_language_scopes.mdx b/packages/cursorless-org-docs/src/docs/contributing/missing_language_scopes.mdx new file mode 100644 index 0000000000..37f72a1de5 --- /dev/null +++ b/packages/cursorless-org-docs/src/docs/contributing/missing_language_scopes.mdx @@ -0,0 +1,9 @@ +import { MissingLanguageScopes } from "./MissingLanguageScopes"; + +# Missing language scopes + +The following languages have one or more missing (unsupported or not specified) scope facets and need a developer to have a look at them. + +[Adding a new scope](./adding-a-new-scope.md) + + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/c.mdx b/packages/cursorless-org-docs/src/docs/user/languages/c.mdx index ce075f921b..971c64b843 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/c.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/c.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # C - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/clojure.mdx b/packages/cursorless-org-docs/src/docs/user/languages/clojure.mdx index 55c123d0c4..fbb26d7c1d 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/clojure.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/clojure.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Clojure - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupport.tsx b/packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupport.tsx index c09a9e0887..bafebf11f1 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupport.tsx +++ b/packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupport.tsx @@ -11,19 +11,19 @@ interface Props { } export function ScopeSupport({ languageId }: Props): React.JSX.Element { - const scopesSorted = [...scopeSupportFacets].sort(); + const facetsSorted = [...scopeSupportFacets].sort(); const scopeSupport = languageScopeSupport[languageId] ?? {}; - const supportedScopes = scopesSorted.filter( + const supportedFacets = facetsSorted.filter( (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.supported, ); - const supportedLegacyScopes = scopesSorted.filter( + const supportedLegacyFacets = facetsSorted.filter( (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.supportedLegacy, ); - const unsupportedScopes = scopesSorted.filter( + const unsupportedFacets = facetsSorted.filter( (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.unsupported, ); - const unspecifiedScopes = scopesSorted.filter( + const unspecifiedFacets = facetsSorted.filter( (facet) => scopeSupport[facet] == null, ); @@ -32,20 +32,20 @@ export function ScopeSupport({ languageId }: Props): React.JSX.Element {

Scopes

+ diff --git a/packages/cursorless-org-docs/src/docs/user/languages/csharp.mdx b/packages/cursorless-org-docs/src/docs/user/languages/csharp.mdx index 5f1f9f2ad8..650f388e75 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/csharp.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/csharp.mdx @@ -6,4 +6,4 @@ import { Language } from "./components/Language"; # C# - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/css.mdx b/packages/cursorless-org-docs/src/docs/user/languages/css.mdx index cb6de3f8a9..75f2025d6f 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/css.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/css.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # CSS - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/dart.mdx b/packages/cursorless-org-docs/src/docs/user/languages/dart.mdx index 7b18b06670..f39dd7259e 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/dart.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/dart.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Dart - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/go.mdx b/packages/cursorless-org-docs/src/docs/user/languages/go.mdx index 3c0b9c041e..d5129adc72 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/go.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/go.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Go - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/html.mdx b/packages/cursorless-org-docs/src/docs/user/languages/html.mdx index 34304c31e1..b34fb62d4c 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/html.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/html.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # HTML - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/java.mdx b/packages/cursorless-org-docs/src/docs/user/languages/java.mdx index 77d64f7276..ac34160487 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/java.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/java.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Java - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/javascript.mdx b/packages/cursorless-org-docs/src/docs/user/languages/javascript.mdx index 4a86aa892d..225d0c3f38 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/javascript.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/javascript.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Javascript - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/javascriptreact.mdx b/packages/cursorless-org-docs/src/docs/user/languages/javascriptreact.mdx index 72272270cc..d347f1a350 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/javascriptreact.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/javascriptreact.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Javascript react - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/json.mdx b/packages/cursorless-org-docs/src/docs/user/languages/json.mdx index 076ad1aebb..7a15abe8b6 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/json.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/json.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # JSON - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/jsonc.mdx b/packages/cursorless-org-docs/src/docs/user/languages/jsonc.mdx index 87cff84c02..70de3cb1d2 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/jsonc.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/jsonc.mdx @@ -6,4 +6,4 @@ import { Language } from "./components/Language"; # JSON with comments (JSONC) - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/jsonl.mdx b/packages/cursorless-org-docs/src/docs/user/languages/jsonl.mdx index 04e94e284d..e508178163 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/jsonl.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/jsonl.mdx @@ -6,4 +6,4 @@ import { Language } from "./components/Language"; # JSON lines (JSONL) - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/latex.mdx b/packages/cursorless-org-docs/src/docs/user/languages/latex.mdx index 2122e8b23b..c0e80dd492 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/latex.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/latex.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Latex - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/lua.mdx b/packages/cursorless-org-docs/src/docs/user/languages/lua.mdx index f76d593649..c6bcf6a234 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/lua.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/lua.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Lua - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/markdown.mdx b/packages/cursorless-org-docs/src/docs/user/languages/markdown.mdx index e6a256e223..6336721323 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/markdown.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/markdown.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Markdown - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/php.mdx b/packages/cursorless-org-docs/src/docs/user/languages/php.mdx index 9551cb922e..82dd70efd1 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/php.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/php.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # PHP - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/python.mdx b/packages/cursorless-org-docs/src/docs/user/languages/python.mdx index 250536d69d..3b62a38834 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/python.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/python.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Python - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/r.mdx b/packages/cursorless-org-docs/src/docs/user/languages/r.mdx index cc692d622a..816cd4b9e0 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/r.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/r.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # R - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/ruby.mdx b/packages/cursorless-org-docs/src/docs/user/languages/ruby.mdx index 9f9215458b..1ff711b831 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/ruby.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/ruby.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Ruby - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/rust.mdx b/packages/cursorless-org-docs/src/docs/user/languages/rust.mdx index d0b1f73959..1aa6990171 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/rust.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/rust.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Rust - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/scala.mdx b/packages/cursorless-org-docs/src/docs/user/languages/scala.mdx index ffba794182..09a4ead8f8 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/scala.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/scala.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Scala - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/scm.mdx b/packages/cursorless-org-docs/src/docs/user/languages/scm.mdx index af11ee541b..bc89b63ffa 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/scm.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/scm.mdx @@ -6,4 +6,4 @@ import { Language } from "./components/Language"; # Tree sitter query language (scm) - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/scss.mdx b/packages/cursorless-org-docs/src/docs/user/languages/scss.mdx index e86ec7e2a3..e2fc684299 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/scss.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/scss.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # SCSS - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/talon.mdx b/packages/cursorless-org-docs/src/docs/user/languages/talon.mdx index 47c6cc1c98..69209c6ab7 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/talon.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/talon.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Talon - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/typescript.mdx b/packages/cursorless-org-docs/src/docs/user/languages/typescript.mdx index c8588b5f63..1f40bf6516 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/typescript.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/typescript.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Typescript - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/typescriptreact.mdx b/packages/cursorless-org-docs/src/docs/user/languages/typescriptreact.mdx index fe16d1c820..72eb31379b 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/typescriptreact.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/typescriptreact.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Typescript react - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/xml.mdx b/packages/cursorless-org-docs/src/docs/user/languages/xml.mdx index b61d67a423..405b5f6fec 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/xml.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/xml.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # XML - + diff --git a/packages/cursorless-org-docs/src/docs/user/languages/yaml.mdx b/packages/cursorless-org-docs/src/docs/user/languages/yaml.mdx index 9ba23a4a87..b6eb6db912 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/yaml.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/yaml.mdx @@ -2,4 +2,4 @@ import { Language } from "./components/Language"; # Yaml - +