diff --git a/changelog/2025-02-addedLanguagesToDocs.md b/changelog/2025-02-addedLanguagesToDocs.md new file mode 100644 index 0000000000..f94812f99c --- /dev/null +++ b/changelog/2025-02-addedLanguagesToDocs.md @@ -0,0 +1,6 @@ +--- +tags: [documentation] +pullRequest: 2859 +--- + +- Added languages sidebar to documents page. Here you can see the supported scope facets for each language. diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index 49599e44f2..488f87ce3f 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -93,6 +93,7 @@ export * from "./types/TreeSitter"; export * from "./types/tutorial.types"; export * from "./util"; export * from "./util/camelCaseToAllDown"; +export * from "./util/capitalize"; export * from "./util/clientSupportsFallback"; export * from "./util/CompositeKeyDefaultMap"; export * from "./util/CompositeKeyMap"; diff --git a/packages/common/src/util/capitalize.ts b/packages/common/src/util/capitalize.ts new file mode 100644 index 0000000000..7519095d07 --- /dev/null +++ b/packages/common/src/util/capitalize.ts @@ -0,0 +1,3 @@ +export function capitalize(str: string) { + return str.charAt(0).toUpperCase() + str.slice(1); +} diff --git a/packages/cursorless-org-docs/src/css/custom.css b/packages/cursorless-org-docs/src/css/custom.css index f6b6fa3065..e85ded5046 100644 --- a/packages/cursorless-org-docs/src/css/custom.css +++ b/packages/cursorless-org-docs/src/css/custom.css @@ -28,3 +28,23 @@ .hidden { display: none; } + +.card { + border: 1px solid rgba(0, 0, 0, 0.175); + margin-bottom: 1rem; +} + +.card-header { + background-color: #f8f9fa; + border-bottom: 1px solid rgba(0, 0, 0, 0.125); + padding: 0.5rem 1rem; + cursor: pointer; +} + +.card-body { + padding: 1rem; +} + +.facet-name { + font-weight: 600; +} diff --git a/packages/cursorless-org-docs/src/docs/user/languages/ScopeSupport.tsx b/packages/cursorless-org-docs/src/docs/user/languages/ScopeSupport.tsx deleted file mode 100644 index d291f722d1..0000000000 --- a/packages/cursorless-org-docs/src/docs/user/languages/ScopeSupport.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { - ScopeSupportFacetLevel, - languageScopeSupport, - scopeSupportFacets, - type ScopeSupportFacet, -} from "@cursorless/common"; -import React from "react"; - -interface Props { - languageId: string; -} - -export default function ScopeSupport({ languageId }: Props) { - const scopesSorted = [...scopeSupportFacets].sort(); - const scopeSupport = languageScopeSupport[languageId] ?? {}; - - const supportedScopes = scopesSorted.filter( - (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.supported, - ); - const supportedLegacyScopes = scopesSorted.filter( - (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.supportedLegacy, - ); - const unsupportedScopes = scopesSorted.filter( - (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.unsupported, - ); - const unspecifiedScopes = scopesSorted.filter( - (facet) => scopeSupport[facet] == null, - ); - - return ( - <> - {getContentForSupportLevel( - supportedScopes, - "Supported facets", - "These facets are supported", - )} - {getContentForSupportLevel( - supportedLegacyScopes, - "Supported Legacy facets", - "These facets are supported with the legacy implementation and should be migrated to the new implementation", - )} - {getContentForSupportLevel( - unsupportedScopes, - "Unsupported facets", - "These facets are not supported yet and needs a developer to implement them", - )} - {getContentForSupportLevel( - unspecifiedScopes, - "Unspecified facets", - <> - These facets are unspecified <br /> - <i> - Note that in many instances we actually do support these scopes, but - we have not yet updated `languageScopeSupport` to reflect this fact - </i> - </>, - )} - </> - ); -} - -function getContentForSupportLevel( - facets: ScopeSupportFacet[], - title: string, - description: React.ReactNode, -) { - if (facets.length === 0) { - return null; - } - return ( - <div> - <h3>{title}</h3> - <p>{description}</p> - - <ul> - {facets.map((facet) => ( - <li>{facet}</li> - ))} - </ul> - </div> - ); -} diff --git a/packages/cursorless-org-docs/src/docs/user/languages/_category_.json b/packages/cursorless-org-docs/src/docs/user/languages/_category_.json deleted file mode 100644 index e7b327b868..0000000000 --- a/packages/cursorless-org-docs/src/docs/user/languages/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "className": "hidden" -} 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 561b32b48f..ce075f921b 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/c.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/c.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 a430ed47e4..55c123d0c4 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/clojure.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/clojure.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +import { Language } from "./components/Language"; # Clojure diff --git a/packages/cursorless-org-docs/src/docs/user/languages/Language.tsx b/packages/cursorless-org-docs/src/docs/user/languages/components/Language.tsx similarity index 55% rename from packages/cursorless-org-docs/src/docs/user/languages/Language.tsx rename to packages/cursorless-org-docs/src/docs/user/languages/components/Language.tsx index 811d3377ee..1fa19d671d 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/Language.tsx +++ b/packages/cursorless-org-docs/src/docs/user/languages/components/Language.tsx @@ -1,10 +1,10 @@ import React from "react"; -import ScopeSupport from "./ScopeSupport"; +import { ScopeSupport } from "./ScopeSupport"; interface Props { languageId: string; } -export default function Language({ languageId }: Props) { +export function Language({ languageId }: Props) { return <ScopeSupport languageId={languageId} />; } 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 new file mode 100644 index 0000000000..fc344857a4 --- /dev/null +++ b/packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupport.tsx @@ -0,0 +1,80 @@ +import { + ScopeSupportFacetLevel, + languageScopeSupport, + scopeSupportFacets, +} from "@cursorless/common"; +import React from "react"; +import { ScopeSupportForLevel } from "./ScopeSupportForLevel"; + +interface Props { + languageId: string; +} + +export function ScopeSupport({ languageId }: Props): JSX.Element { + const scopesSorted = [...scopeSupportFacets].sort(); + const scopeSupport = languageScopeSupport[languageId] ?? {}; + + const supportedScopes = scopesSorted.filter( + (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.supported, + ); + const supportedLegacyScopes = scopesSorted.filter( + (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.supportedLegacy, + ); + const unsupportedScopes = scopesSorted.filter( + (facet) => scopeSupport[facet] === ScopeSupportFacetLevel.unsupported, + ); + const unspecifiedScopes = scopesSorted.filter( + (facet) => scopeSupport[facet] == null, + ); + + return ( + <> + <h2>Scopes</h2> + + <ScopeSupportForLevel + facets={supportedScopes} + title="Supported facets" + subtitle="These facets are supported" + expanded + /> + + <ScopeSupportForLevel + facets={supportedLegacyScopes} + title="Supported Legacy facets" + subtitle="These facets are supported with the legacy implementation and should be migrated to the new implementation" + /> + + <ScopeSupportForLevel + facets={unsupportedScopes} + title="Unsupported facets" + subtitle="These facets are not supported yet and needs a developer to implement them" + description={ + <> + We would happily accept{" "} + <a href="https://www.cursorless.org/docs/contributing/adding-a-new-scope"> + contributions + </a> + </> + } + /> + + <ScopeSupportForLevel + facets={unspecifiedScopes} + title="Unspecified facets" + subtitle="These facets are unspecified" + description={ + <> + Note that in many instances we actually do support these scopes and + facets, but we have not yet updated 'languageScopeSupport' to + reflect this fact. + <br /> + We would happily accept{" "} + <a href="https://www.cursorless.org/docs/contributing/adding-a-new-scope"> + contributions + </a> + </> + } + /> + </> + ); +} diff --git a/packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupportForLevel.tsx b/packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupportForLevel.tsx new file mode 100644 index 0000000000..1026ea64d9 --- /dev/null +++ b/packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupportForLevel.tsx @@ -0,0 +1,119 @@ +import { + camelCaseToAllDown, + capitalize, + groupBy, + type ScopeSupportFacet, + type ScopeSupportFacetInfo, + scopeSupportFacetInfos, + type ScopeType, + type SimpleScopeTypeType, +} from "@cursorless/common"; +import React, { useState } from "react"; + +interface Props { + facets: ScopeSupportFacet[]; + title: string; + subtitle: string; + description?: React.ReactNode; + expanded?: boolean; +} + +export function ScopeSupportForLevel({ + facets, + title, + subtitle, + description, + expanded: expandedProp, +}: Props): JSX.Element | null { + const [expanded, setExpanded] = useState(expandedProp ?? false); + + if (facets.length === 0) { + return null; + } + + const renderBody = () => { + if (!expanded) { + return null; + } + + const facetInfos = facets.map( + (facet): AugmentedFacetInfo => ({ + facet, + ...scopeSupportFacetInfos[facet], + }), + ); + const scopeGroups: Map<string, AugmentedFacetInfo[]> = groupBy( + facetInfos, + (facetInfo) => serializeScopeType(facetInfo.scopeType), + ); + const scopeTypes = Array.from(scopeGroups.keys()).sort(); + + return ( + <div className="card-body"> + {description && <p>{description}</p>} + + {scopeTypes.map((scopeType) => { + const facetInfos = scopeGroups.get(scopeType) ?? []; + return ( + <div key={scopeType}> + <h4>{prettifyScopeType(scopeType)}</h4> + <ul> + {facetInfos.map((facetInfo) => { + return ( + <li key={facetInfo.facet}> + <span className="facet-name" title={facetInfo.facet}> + {prettifyFacet(facetInfo.facet)} + </span> + : {facetInfo.description} + </li> + ); + })} + </ul> + </div> + ); + })} + </div> + ); + }; + + return ( + <div className="card"> + <div className="card-header" onClick={() => setExpanded(!expanded)}> + <h3>{title}</h3> + {subtitle} + </div> + + {renderBody()} + </div> + ); +} + +interface AugmentedFacetInfo extends ScopeSupportFacetInfo { + facet: ScopeSupportFacet; +} + +function prettifyScopeType(scopeType: string): string { + return capitalize(camelCaseToAllDown(scopeType)); +} + +function prettifyFacet(facet: ScopeSupportFacet): string { + const parts = facet.split(".").map(camelCaseToAllDown); + if (parts.length === 1) { + return capitalize(parts[0]); + } + const isIteration = parts[parts.length - 1] === "iteration"; + if (isIteration) { + parts.pop(); + } + const name = capitalize(parts.slice(1).join(" ")); + return isIteration ? `${name} (iteration)` : name; +} + +function serializeScopeType( + scopeType: SimpleScopeTypeType | ScopeType, +): string { + if (typeof scopeType === "string") { + return scopeType; + } + return scopeType.type; +} diff --git a/packages/cursorless-org-docs/src/docs/user/languages/cpp.mdx b/packages/cursorless-org-docs/src/docs/user/languages/cpp.mdx index f4fd89dd05..86f2175a9d 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/cpp.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/cpp.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +import { Language } from "./components/Language"; # C++ 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 2352ae98c8..64cbda64f4 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/csharp.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/csharp.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 c68e63f9cd..cb6de3f8a9 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/css.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/css.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 fe37a25c4f..7b18b06670 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/dart.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/dart.mdx @@ -1,5 +1,5 @@ -import Language from "./Language"; +import { Language } from "./components/Language"; -# dart +# Dart <Language languageId="dart"></Language> 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 f4da2f5dec..3c0b9c041e 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/go.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/go.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 603c34f00d..34304c31e1 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/html.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/html.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 bc895469cb..77d64f7276 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/java.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/java.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 66b80498ab..4a86aa892d 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/javascript.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/javascript.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 6f9b4b8779..72272270cc 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/javascriptreact.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/javascriptreact.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 732709bfe9..076ad1aebb 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/json.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/json.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 a83af5d7bd..d9d32c3ac5 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/jsonc.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/jsonc.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 03614b7850..5e5cb9851a 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/jsonl.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/jsonl.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 c56cfbccfa..2122e8b23b 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/latex.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/latex.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 f0722123cf..f76d593649 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/lua.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/lua.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 4b53715921..e6a256e223 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/markdown.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/markdown.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 f46cb45e51..9551cb922e 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/php.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/php.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 f84d93f9b2..250536d69d 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/python.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/python.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +import { Language } from "./components/Language"; # Python 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 434490a711..9f9215458b 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/ruby.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/ruby.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 f4bd8d55ab..d0b1f73959 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/rust.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/rust.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 921ad69194..ffba794182 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/scala.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/scala.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 2c6e3d7a44..cca1d1e187 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/scm.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/scm.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 44891422a4..e86ec7e2a3 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/scss.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/scss.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 9072d500ed..47c6cc1c98 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/talon.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/talon.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 855dfa95f1..c8588b5f63 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/typescript.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/typescript.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 e8af5501f9..fe16d1c820 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/typescriptreact.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/typescriptreact.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 a6176bec74..b61d67a423 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/xml.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/xml.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +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 b44892f5ac..9ba23a4a87 100644 --- a/packages/cursorless-org-docs/src/docs/user/languages/yaml.mdx +++ b/packages/cursorless-org-docs/src/docs/user/languages/yaml.mdx @@ -1,4 +1,4 @@ -import Language from "./Language"; +import { Language } from "./components/Language"; # Yaml diff --git a/packages/meta-updater/src/updateLanguageScopeSupportConfig.ts b/packages/meta-updater/src/updateLanguageScopeSupportConfig.ts index e20fbe3649..57c3b6e82c 100644 --- a/packages/meta-updater/src/updateLanguageScopeSupportConfig.ts +++ b/packages/meta-updater/src/updateLanguageScopeSupportConfig.ts @@ -14,7 +14,7 @@ export function updateLanguageMdxConfig( } const expected = ` -import Language from "./Language"; +import { Language } from "./components/Language"; # ${languageId} diff --git a/packages/test-case-recorder/src/TestCaseRecorder.ts b/packages/test-case-recorder/src/TestCaseRecorder.ts index d70ace7e79..fb6dd24c6b 100644 --- a/packages/test-case-recorder/src/TestCaseRecorder.ts +++ b/packages/test-case-recorder/src/TestCaseRecorder.ts @@ -12,6 +12,7 @@ import type { TextEditorOptions, } from "@cursorless/common"; import { + capitalize, DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST, extractTargetedMarks, getKey, @@ -507,10 +508,6 @@ function camelize(str: string) { .join(""); } -function capitalize(str: string) { - return str.charAt(0).toUpperCase() + str.slice(1); -} - async function readJsonIfExists( path: string, ): Promise<RecordTestCaseCommandOptions> {