Path: blob/main/extensions/copilot/src/platform/parser/node/treeSitterLanguages.ts
13401 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45/**6* Languages we can parse using tree-sitter. Each enum member corresponds to a tree-sitter parser.7*/8export enum WASMLanguage {9Python = 'python',10JavaScript = 'javascript', // Also includes jsx support11TypeScript = 'typescript',12TypeScriptTsx = 'tsx',13Go = 'go',14Ruby = 'ruby',15Csharp = 'csharp',16Cpp = 'cpp',17Java = 'java',18Rust = 'rust',19}2021export class TreeSitterUnknownLanguageError extends Error {22constructor(language: string) {23super(`Unrecognized language: ${language}`);24}25}2627const languageIdToWasmLanguageMapping: { [language: string]: WASMLanguage } = {28python: WASMLanguage.Python,29javascript: WASMLanguage.JavaScript,30javascriptreact: WASMLanguage.JavaScript,31jsx: WASMLanguage.JavaScript,32typescript: WASMLanguage.TypeScript,33typescriptreact: WASMLanguage.TypeScriptTsx,34tsx: WASMLanguage.TypeScriptTsx,35go: WASMLanguage.Go,36ruby: WASMLanguage.Ruby,37csharp: WASMLanguage.Csharp,38cpp: WASMLanguage.Cpp,39java: WASMLanguage.Java,40rust: WASMLanguage.Rust,41};4243/**44* @returns a {@link WASMLanguage} if can convert the language ID (from VS Code); otherwise, returns `undefined`.45*/46export function getWasmLanguage(languageId: string): WASMLanguage | undefined {47if (languageId in languageIdToWasmLanguageMapping) {48return languageIdToWasmLanguageMapping[languageId];49}50}515253