Skip to content
Merged
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
Original file line number Diff line number Diff line change
@@ -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) => <Language key={languageId} languageId={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 (
<>
<h3>{languageId}</h3>
{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})
<ul>
{scopes.map((scope) => {
return <li key={scope}>{scope}</li>;
})}
</ul>
</>
);
}

function serializeScopeType(
scopeType: SimpleScopeTypeType | ScopeType,
): string {
if (typeof scopeType === "string") {
return scopeType;
}
return scopeType.type;
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,5 @@ import { Language } from "./components/Language";

# Java

<Language languageId="java"></Language>
<Language languageId="java" />
```
Original file line number Diff line number Diff line change
@@ -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)

<MissingLanguageScopes />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# C

<Language languageId="c"></Language>
<Language languageId="c" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Clojure

<Language languageId="clojure"></Language>
<Language languageId="clojure" />
Original file line number Diff line number Diff line change
Expand Up @@ -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,
);

Expand All @@ -32,20 +32,20 @@ export function ScopeSupport({ languageId }: Props): React.JSX.Element {
<h2>Scopes</h2>

<ScopeSupportForLevel
facets={supportedScopes}
facets={supportedFacets}
title="Supported facets"
subtitle="These facets are supported"
open
/>

<ScopeSupportForLevel
facets={supportedLegacyScopes}
facets={supportedLegacyFacets}
title="Supported Legacy facets"
subtitle="These facets are supported with the legacy implementation and should be migrated to the new implementation"
/>

<ScopeSupportForLevel
facets={unsupportedScopes}
facets={unsupportedFacets}
title="Unsupported facets"
subtitle="These facets are not supported yet and needs a developer to implement them"
description={
Expand All @@ -59,7 +59,7 @@ export function ScopeSupport({ languageId }: Props): React.JSX.Element {
/>

<ScopeSupportForLevel
facets={unspecifiedScopes}
facets={unspecifiedFacets}
title="Unspecified facets"
subtitle="These facets are unspecified"
description={
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# C++

<Language languageId="cpp"></Language>
<Language languageId="cpp" />
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ import { Language } from "./components/Language";

# C#

<Language languageId="csharp"></Language>
<Language languageId="csharp" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# CSS

<Language languageId="css"></Language>
<Language languageId="css" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Dart

<Language languageId="dart"></Language>
<Language languageId="dart" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Go

<Language languageId="go"></Language>
<Language languageId="go" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# HTML

<Language languageId="html"></Language>
<Language languageId="html" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Java

<Language languageId="java"></Language>
<Language languageId="java" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Javascript

<Language languageId="javascript"></Language>
<Language languageId="javascript" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Javascript react

<Language languageId="javascriptreact"></Language>
<Language languageId="javascriptreact" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# JSON

<Language languageId="json"></Language>
<Language languageId="json" />
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ import { Language } from "./components/Language";

# JSON with comments (JSONC)

<Language languageId="jsonc"></Language>
<Language languageId="jsonc" />
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ import { Language } from "./components/Language";

# JSON lines (JSONL)

<Language languageId="jsonl"></Language>
<Language languageId="jsonl" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Latex

<Language languageId="latex"></Language>
<Language languageId="latex" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Lua

<Language languageId="lua"></Language>
<Language languageId="lua" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Markdown

<Language languageId="markdown"></Language>
<Language languageId="markdown" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# PHP

<Language languageId="php"></Language>
<Language languageId="php" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Python

<Language languageId="python"></Language>
<Language languageId="python" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# R

<Language languageId="r"></Language>
<Language languageId="r" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Ruby

<Language languageId="ruby"></Language>
<Language languageId="ruby" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Rust

<Language languageId="rust"></Language>
<Language languageId="rust" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Scala

<Language languageId="scala"></Language>
<Language languageId="scala" />
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ import { Language } from "./components/Language";

# Tree sitter query language (scm)

<Language languageId="scm"></Language>
<Language languageId="scm" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# SCSS

<Language languageId="scss"></Language>
<Language languageId="scss" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Talon

<Language languageId="talon"></Language>
<Language languageId="talon" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Typescript

<Language languageId="typescript"></Language>
<Language languageId="typescript" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Typescript react

<Language languageId="typescriptreact"></Language>
<Language languageId="typescriptreact" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# XML

<Language languageId="xml"></Language>
<Language languageId="xml" />
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ import { Language } from "./components/Language";

# Yaml

<Language languageId="yaml"></Language>
<Language languageId="yaml" />
Loading