feat: add Vue support (#66)
Co-authored-by: Colby McHenry <me@colbymchenry.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Colby McHenry
Claude Opus 4.7
parent
804ab671d4
commit
5ab81746e8
@@ -10,7 +10,7 @@ import * as path from 'path';
|
||||
import { Parser, Language as WasmLanguage } from 'web-tree-sitter';
|
||||
import { Language } from '../types';
|
||||
|
||||
export type GrammarLanguage = Exclude<Language, 'svelte' | 'liquid' | 'unknown'>;
|
||||
export type GrammarLanguage = Exclude<Language, 'svelte' | 'vue' | 'liquid' | 'unknown'>;
|
||||
|
||||
/**
|
||||
* WASM filename map — maps each language to its .wasm grammar file
|
||||
@@ -68,6 +68,7 @@ export const EXTENSION_MAP: Record<string, Language> = {
|
||||
'.dart': 'dart',
|
||||
'.liquid': 'liquid',
|
||||
'.svelte': 'svelte',
|
||||
'.vue': 'vue',
|
||||
'.pas': 'pascal',
|
||||
'.dpr': 'pascal',
|
||||
'.dpk': 'pascal',
|
||||
@@ -201,6 +202,7 @@ function looksLikeCpp(source: string): boolean {
|
||||
*/
|
||||
export function isLanguageSupported(language: Language): boolean {
|
||||
if (language === 'svelte') return true; // custom extractor (script block delegation)
|
||||
if (language === 'vue') return true; // custom extractor (script block delegation)
|
||||
if (language === 'liquid') return true; // custom regex extractor
|
||||
if (language === 'unknown') return false;
|
||||
return language in WASM_GRAMMAR_FILES;
|
||||
@@ -210,7 +212,7 @@ export function isLanguageSupported(language: Language): boolean {
|
||||
* Check if a grammar has been loaded and is ready for parsing.
|
||||
*/
|
||||
export function isGrammarLoaded(language: Language): boolean {
|
||||
if (language === 'svelte' || language === 'liquid') return true;
|
||||
if (language === 'svelte' || language === 'vue' || language === 'liquid') return true;
|
||||
return languageCache.has(language);
|
||||
}
|
||||
|
||||
@@ -218,7 +220,7 @@ export function isGrammarLoaded(language: Language): boolean {
|
||||
* Get all supported languages (those with grammar definitions).
|
||||
*/
|
||||
export function getSupportedLanguages(): Language[] {
|
||||
return [...(Object.keys(WASM_GRAMMAR_FILES) as GrammarLanguage[]), 'svelte', 'liquid'];
|
||||
return [...(Object.keys(WASM_GRAMMAR_FILES) as GrammarLanguage[]), 'svelte', 'vue', 'liquid'];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -282,6 +284,7 @@ export function getLanguageDisplayName(language: Language): string {
|
||||
kotlin: 'Kotlin',
|
||||
dart: 'Dart',
|
||||
svelte: 'Svelte',
|
||||
vue: 'Vue',
|
||||
liquid: 'Liquid',
|
||||
pascal: 'Pascal / Delphi',
|
||||
unknown: 'Unknown',
|
||||
|
||||
Reference in New Issue
Block a user